JS/[inflearn] TS JS 디자인패턴

디자인 패턴(Design Pattern)이란

web_seul 2025. 1. 13. 15:04

디자인 패턴

소프트웨어 개발에서 반복적으로 발생하는 문제해결을 위해 제안된 재사용 가능한 설계 방법이나 해결 방법

 

사용이유?

코드 재사용성: 검증된 해결책을 적용하여 개발 속도 향상

코드 가독성 및 유지보수성: 명확한 구조와 의도, 협업과 유지보수 용이

일관성: 동일한 패턴 이해로 코드 품질 향상

 

종류?

1. 생성 패턴 (Creational Pattern) : 객체 생성 방법과 과정을 캡슐화하여 유연하고 재사용 가능하게 만드는 패턴

- 싱글턴 패턴 (Singleton) : 한 클래스에 하나의 인스턴트만 존재하도록 보장

- 심플 팩토리 패턴 (Simple Factory Pattern) : 객체 생성 로직 캡슐화로 특정 클래스 인스턴스 반환

- 팩토리 메서드 패턴 (Factory Method) : 객체 생성을 서브클래스에 위임

- 추상 팩토리 패턴 (Abstract Factory) : 관련 객체를 단계적으로 생성

- 빌더 패턴 (Builder) : 복잡한 객체를 단계적으로 생성

- 프로토타입 패턴 (Prototype) : 기존 객체를 복사하여 새 객체 생성

 

 

2. 행동 패턴 (Behavior Patterns) : 객체간 상호작용, 책임분배, 알고리즘 구현 방법에 관련된 패턴

- 명령 패턴 (Command) : 요청 캡슐화, 호출자와 수신자 분리

- 상태 패턴 (State) : 객체 상태에 따라 다른 동작 수행

- 전략 패턴 (Strategy) : 실행 중 알고리즘 선택

- 템플릿 메서드 패턴 (Template Method) : 알고리즘 뼈대 정의, 세부사항을 서브클래스에서 구현

- 책임 연쇄 패턴 (Chain of Resposibility) : 요청을 처리할 객체를 체인으로 연결

- 옵저버 패턴 (Observer) : 객체 상태 변경시 종속된 객체에 알림

- 중재자 패턴 (Mediator) : 객체 간 통신 중앙 집중화

- 메멘토 패턴 (Memento) : 객체의 상태 저장, 필요시 상태 복원

- 반복자 패턴 (Iterator) : 컬렉션내 요소 순회

- 방문자 패턴 (Visitor) : 객체 구조를 변경하지 않고 새로운 기능 추가

 

 

3. 구조 패턴 (Structural Patterns) : 객체간 관계 정의, 구조 설계를 용이하게 돕는 패턴, 유연하고 효율적으로 유지하면서 더 큰 구조로 조합하는 방법

- 퍼사드 패턴 (Facade) : 복잡한 시스템을 단순한 인터페이스로 감싸기

- 어댑터 패턴 (Adaptor) : 서로 다른 인터페이스 연결

- 데코레이터 패턴 (Decorator) : 객체에 동적으로 새로운 기능 추가

- 프록시 패턴 (Proxy) : 다른 객체에 대한 접근 제어

- 플라이웨이트 패턴 (Flyweight) : 공유를 통해 메모리 사용 최적화

- 브리지 패턴 (Bridge) : 추상화와 구현을 분리하여 독립적으로 확장

- 컴포지트 패턴 (Composite) : 트리 구조로 객체를 구성해 일관된 방법으로 처리

 

 

반응형