본문 바로가기

전체 글61

전략패턴(Strategy) 패턴 전략패턴이란?전략 패턴은 실행 중에 알고리즘 전략을 선택해서 객체 동작을 실시간으로 바뀌도록 할 수 있게 하는 행위 디자인 패턴이다.여기서 전략이란 일종의 알고리즘이 될 수도 있고, 기능이나 동작이 될 수 있는 특정한 목표를 수행하기 위한 계획을 말한다.조금 어려운 느낌일지도 모른다.간단하게 생각하면 위 사진과 같이 검색창을 구현하는 상황을 생각하면 된다. 보통은 위 사진과 같이 클릭이 있어나면 그 클릭의 모드에 따라 조건문을 거쳐 메소드를 실행할 것이다.하지만 이는 수평적 확장을 진행할 때, 기능이 추가될수록 조건문이 늘어나고 기존의 코드를 수정해야한다는 단점이 존재한다.  즉, 고수준 모듈이 기능이라는 저수준 모듈에 의존하여 코드의 주도권을 뺏기는 상황이라 볼 수 있다.이는 객체 지향 5원칙에 OCP.. 2024. 6. 10.
싱글톤(Singleton) 패턴 싱글톤이란?단 하나의 유일한 객체를 만들기 위한 코드 패턴메모리 절약을 위해, 인스턴스가 필요할 때 똑같은 인스턴스를 새로 만들지 않고 기존의 인스턴스를 가져와 활용하는 기법. → 전역변수를 만들어 이용하는 이유는 똑같은 데이터를 메서드마다 지역변수로 선언해서 사용하면 무의미하고 낭비이기 때문에 전역에서 한번만 데이터를 선언하고 가져와 사용하면 효율적보통 해당 객체가 리소스를 많이 차지하는 역할을 하는 무거운 클래스일 때 사용ex) 데이터베이스 연결 모듈에서 데이터베이스에 접속하는 작업(I/O 바운드)은 그 자체로 무거운 작업에 속하며, 한번만 객체를 생성하고 돌려쓰면 되지 굳이 여러번 생성하여 메모리를 낭비할 이유가 없음, 디스크 연결, 네트워크 통신, DBCP 커넥션풀, 스레드 풀, 캐시, 로그기록 .. 2024. 5. 31.
정규화(Normalization) 정규화의 목적(최적화) → 변화에 유연한 대처를 위해 불필요한 데이터를 제거, 데이터의 중복을 최소화 하기 위해 데이터베이스 구조 확장 시 재디자인을 최소화 다양한 관점에서의 query를 지원하기 위해서 무결성 제약조건의 시행을 간단하게 하기 위해서 각종 이상 현상(Anomaly) 을 방지하기 위해서, 테이블의 구성을 논리적이고 직관적으로 한다. 데이터의 중복을 줄이고, 무결성을 향상 → 관계형 데이터베이스를 정규화된 형태로 재디자인하는 것 제 1정규화(First Normal Form, 1NF) 테이블(Relation)이 제 1정규형을 만족했다는 것은 아래 세 가지 조건를 만족했다는 것을 의미한다. 어떤 Relation에 속한 모든 Domain이 원자값(atomic value)만으로 되어 있다. 모든 a.. 2024. 3. 31.
Redis로 RT 마이그레이션 적용기 및 유닛테스트 우선 리프레시 토큰이롼?Access Token의 유효기간을 짧게하여 보안도 높이고, 편의성도 챙기는 방법이다.로그인을 완료하면, 유효기간이 짧은 Access Token과 유효기간이 긴 Refresh Token을 발급해준다.Access Token은 기존에 사용하던 JWT 토큰이라고 생각하면 되고, Refresh Token은 Access Token이 만료되었을 때, 새로 발급해주는 토큰이라고 생각하면 된다.  기존 방식기존의 점주사이드와 유저사이드의 refreshtoken은 유저쪽에 한개의 컬럼을 만들어 조회되는 방식이였다.문제는 리프레시 토큰 개념을 활용하려면, 불가피하게 서버측에서 토큰 정보를 저장할 수 있는 곳이 필요했다…당시에는 RT의 보관을 MVP 개발 기간이 짧아 그냥 Mysql에 저장했었다.하지.. 2024. 3. 14.