IT/DesignPattern 4

[DesignPattern] GoF 23가지 디자인 패턴

GoF(Gang of Four) 디자인 패턴은 소프트웨어 설계에서 자주 발생하는 문제들을 해결하기 위해 제시된 23가지의 디자인 패턴이다. 1. 생성(Creational) 패턴 - 객체 생성 관련객체 생성 로직을 캡슐화하여 유연하고 재사용 가능하게 만드는 패턴 1) Singleton- 오직 하나의 인스턴스만 존재하도록 보장2) Factory Method- 객체 생성을 서브 클래스에 위임하여, 상위 클래스에서는 어떤 객체가 생성될지 모르게 함- ex. 인터페이스 기반 객체 생성3) Abstract Factory- 관련 있는 객체들을 하나의 팩토리에서 생성4) Builder- 복잡한 객체를 단계별로 생성5) Prototype- 기존 객체를 복제하여 새 갳체 생성 2. 구조(Structural) 패턴 - 클래..

IT/DesignPattern 2025.04.21

[DesignPattern] Singleton 패턴

디자인 패턴 중 가장 유명한 것 중 하나인 Singleton 패턴에 대한 정리 글을 작성하고자 한다. 1. 정의- 특정 클래스의 인스턴스를 오직 하나만 생성하도록 보장하는 디자인 패턴 2. 특징 (장단점)- 유일한 인스턴스 보장  > 하나의 객체만 생성되고 공유된다.- 전역 접근 가능  > 어디서든 동일한 객체를 참조할 수 있다.- 메모리 절약  > 불필요한 객체 생성을 방지하여 메모리 낭비를 줄인다.- (전역 상태를 가지므로) 테스트가 어려움  > 싱글톤 객체가 공유되므로 테스트 중 상태를 초기화하기 어렵다.- 멀티스레드 환경에서 동기화 문제 발생 가능- 의존성이 높아져 유지보수가 어려울 수 있음 이외에도 다른 디자인 패턴(예를 들면, 팩토리 메서드 패턴 등)이 많이 있는데, 차례대로 정리하도록 하려고..

IT/DesignPattern 2025.03.16

[DesignPattern] SAGA 패턴

이번엔 SAGA 패턴에 대해 정리하고자 한다. 1. 개념- 분산 시스템에서 장기 실행 트랜잭션을 처리하며 데이터의 (최종) 일관성을 보장하기 위한 설계 패턴- 하나의 비즈니스 프로세스를 여러 단계의 트랜잭션으로 분할하고, 각 단계를 독립적으로 실행하도록 설계 2. 구현 방식- 조정 기반  > 중앙에서 조정자가 각 단계의 트랜잭션 실행 제어  > 중앙 컨트롤러가 명시적으로 다음 작업을 호출하거나 롤백  > 구현이 비교적 간단하지만, 조정자의 단일 장애점(SPOF)의 발생 가능- 중재 기반  > 각 서비스가 이벤트 기반으로 서로 통신하며 SAGA의 단계를 독립적으로 진행  > 한 단계가 완료되면 이벤트를 발행하여 다음 단계 트리거  > 분산 시스템 특성에 더 적합하지만, 설계 복잡 및 디버깅 어려움 3. 장..

IT/DesignPattern 2024.12.10

[DesignPattern] CQRS 패턴

흔히 이야기 되는 디자인 패턴, 그 중에서도 CQRS 패턴에 대해 정리하고자 한다.그전에 디자인 패턴이 무엇인지에 대해 먼저 정리가 필요하다. 0. 디자인 패턴- 소프트웨어 개발 과정에서 반복적으로 나타나는 문제를 해결하기 위한 모범 사례를 체계화 한 것- 코드의 재사용성과 유지보수성을 높이고, 개발자 간의 의사소통을 원활하게 하기 위한 공통 언어를 제공한다.- 예시 > 생성 패턴: 객체 생성과 관련된 문제를 해결 (ex. singleton, factory method) > 구조 패턴: 객체 간의 관계를 정의하고 구조를 설계 (ex. adapter, decorator) > 행위 패턴: 객체 간의 책임 분담과 협력 방식을 정의 (ex. observer, strategy) 1. CQRS(Command ..

IT/DesignPattern 2024.12.10