오늘/Today I..
-
오늘, Redis가 죽었다.오늘/Today I.. 2024. 3. 23. 02:44
https://news.hada.io/topic?id=13942 Redis, 라이선스를 BSD 에서 듀얼 라이선스로 변경 | GeekNews Redis 가 기존 BSD 라이선스에서 Redis Source Available License (RSALv2) 과 Server Side Public License (SSPLv1) 의 듀얼 라이선스로 변경되었습니다.라이선스 변경으로 인해 Redis 이용자와 Redis 를 이용한 라이브러리 news.hada.io https://redis.com/blog/redis-adopts-dual-source-available-licensing/ Redis Adopts Dual Source-Available Licensing | Redis Beginning today, all fu..
-
데이터베이스 정규화 (기본 정규형)오늘/Today I.. 2024. 3. 6. 23:34
정규화(Normalization) 란? DB 설계에서 중복을 최소화하기 위해 데이터를 구조화하는 프로세스 이상현상이 있는 릴레이션을 분해하여 이상현상을 제거 이를 통해 중복된 데이터를 허용하지 않게하여 데이터 무결성을 유지하고, DB 저장 공간을 확보 가능 정규화의 장단점 장점 - DB에서 이상현상 제거 - 확장시 구조 변경 최소화 단점 - 릴레이션이 분해되므로 릴레이션 간의 JOIN 연산이 늘어남 정규화의 종류 제 1 정규형 1. 각 컬럼은 하나의 속성만 가져야한다. 2. 하나의 컬럼은 같은 종류나 타입의 값을 가져야 한다. 3. 각 컬럼이 유일한 이름을 가져야한다. 4. 컬럼의 순서가 상관없어야 한다. 제 2 정규형 제 1 정규형을 만족하는 경우 제 2 정규형을 적용할 수 있다. 1. 모든 컬럼이 부..
-
서버리스 (Serverless)오늘/Today I.. 2024. 2. 29. 17:33
서버리스란? 개발자가 직접 서버를 관리하지 않아도 되는 경우를 의미 사용량에 따라 백엔드 서비스를 제공 서버리스의 특징 특정 코드에 대한 요청이 올 경우 그에 필요한 리소스만 사용한 다음 그 부분에 대해서만 비용 청구 그렇기에 실제 사용량에 따라 요금을 청구받을 수 있다. 서버리스의 장점 1. 낮은 비용 실제 사용량에 따라 요금을 청구하기 때문에 효율적 2. 확장성 서버리스 업체가 트래픽에 맞춰 확장을 모두 처리해줌 서버리스의 단점 1. 단순작업에는 적합하나 긴 작업시간을 요하는 경우에는 비효율적임 2. 클라우드 플랫폼에 종속적임 서버리스를 사용해야 할 때 1. 빠른 출시가 필요할때 2. 사용량이 일정하지 않을 때 서버리스를 지양해야 할 때 1. 전용 서버를 사용하는 것이 비용 측면에서 더 합리적일 때 ..
-
Adapter Pattern오늘/Today I.. 2023. 12. 28. 17:59
공부하게 된 계기 프로젝트에서 커스텀 애너테이션을 수정해야 할 일이 생겼다. 전 프로젝트에서 쓰던 것을 그대로 쓰려하였으나, DB 테이블명이 바뀌어서 해당 코드 또한 수정이 불가피하였다. 어떤식으로 수정해야 정상적으로 동작하는지 확신이 들지 않아 여러 블로그를 찾아보고, 튜터님께 질문을 하는 등의 노력 끝에 해결방안을 찾아냈다. 그 과정에서 공부하게 된 것이 바로 어댑터 패턴이기에 TIL로 기록해보고자 한다. Adapt Pattern? 클래스의 인터페이스를 사용자가 기대하는 다른 인터페이스로 변환하는 패턴. 서로 호환되지 않는 두 클래스를 호환되도록 만들어준다. 소프트웨어 디자인 패턴에서 구조패턴에 속해있다. 종류 1. 클래스에 의한 Adapter (상속 사용) 어댑터 클래스가 실제 클래스를 상속받고, ..
-
23/12/21 레디스를 왜 도커에서 써야해?오늘/Today I.. 2023. 12. 21. 16:28
레디스를 왜 도커에서 써야해?? 레디스 사용방식은 어떤것을 선택해야해? 1. Embedded Redis provided by Spring 2. Install Redis by yourself. 3. Redis in Docker 그중에서 뭐가 좋아? The Best. Redis in Docker 도커는 환경변수로 세팅하기 때문에 레디스 추가가 필요하면 포트만 변경하고 도커를 또 띄우면 된다. The Worst. Embedded Redis provided by Spring 스프링 기본 제공 레디스는 정말 추천하지 않는 방식이다. 레디스를 사용해볼 거라면 레디스에 있는 모든 기능을 사용하는게 좋은데 기본으로 제공하는 레디스는 너무 컴팩트하고 기능이 부족하다. 그냥 H2를 쓰는것과 다를게 없는.. Second W..
-
23/12/20 쿠버네티스가 뭔데 씹덕아오늘/Today I.. 2023. 12. 20. 21:36
쿠버네티스란? 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 확장가능한 오픈소스 플랫폼이며 서비스에 고가용성이 필요할때 사용할 수 있는 도구이다. 컨테이너가 뭐길래? 컨테이너는 VM(가상시스템)과 유사하지만 격리 속성을 완화하여 어플리케이션 간 OS를 공유함. 그래서 컨테이너가 가볍다고 여겨지는 것 VM과 마찬가지로 컨테이너 또한 자체 파일 시스템, CPU점유율, 메모리, 프로세스 공간 등이 있다. 기본 인프라와의 종속성을 끊었기 때문에, 클라우드나 OS 배포본에 모두 이식할 수 있다. 컨테이너만의 추가적인 이점 VM보다 빠른 이미지 생성과 배포 지속적 개발, 통합, 배포 개발과 운영의 관심사 분리 : 배포시점이 아닌 빌드/릴리즈 시점에 어플리케이션 컨테이너 이미지를 만들기 때문에 어플리..
-
23/12/18 스프링 스케줄러와 크론잡오늘/Today I.. 2023. 12. 18. 20:03
스프링스케줄러 스프링 프레임워크에서 제공하는 스케줄링 기능 장점 1. 스프링 프레임워크에서 기본으로 제공하기 때문에 사용이 쉬움 2. 어플리케이션과 같은 JVM 환경에서 실행하기 때문에 어플리케이션의 데이터에 쉽게 접근가능 단점 1. 하나의 Thread pool만 사용하기 때문에 한 스케줄이 끝나야 다음 스케줄 실행가능 2. 어플리케이션과 함께 실행되기때문에 재시작시 스케줄링도 함께 재시작된다. 그래서 장기적인 스케줄링 작업이 어려울 수 있다. 크론잡 유닉스 계열에서 사용하는 스케줄링 도구 장점 1. 시스템 수준에서 관리하기 때문에 스프링 스케줄러의 단점이었던 어플리케이션에 종속된 문제를 해결하였음. 2. 복잡한 일정 설정이 가능함. 단점 1. 유닉스 계열 시스템에만 사용가능하며 윈도우 등 다른 운영체제..
-
23/12/15 CI/CD오늘/Today I.. 2023. 12. 15. 13:48
CI (Continuous Integration, 지속적 통합) CD (Continuous Delivery, 지속적 배포) CI . 지속적 통합 코드 변경사항을 레포지토리에 지속적으로 업로드하여 통합하는 것. 이 과정에서 발생할 수 있는 오류를 빠르게 수정하는 것이 중요하다. 테스트와 빌드 과정은 반복적이기 때문에 자동화할 수 있다. 그래서 자동화된 단위 테스트, 통합 테스트를 실행하여 변경 사항이 제대로 적용되었는지 확인한다. CI의 장점 1. 자동화된 빌드와 테스트를 통해 빠르게 에러를 잡아낼 수 있다. 2. 커밋을 자주하게 됨으로써 문제의 원인을 쉽게 찾아낼 수 있다. 3. 지속적으로 에러를 찾아내 수정함으로써 코드의 안정성이 높아져, 코드품질이 높아진다. 4. 팀의 모든 개발자가 같은 코드베이스를..