티스토리 뷰

패턴은 추상적인 "의도"를 보다 명확한 의미로 "규정" 을 짓습니다.
패턴을 사용하는 이유와 공부하는 이유는 아래와 같습니다.
- 그로 인해 선배로 부터 값진 경험을 물려 받게 해 줍니다.
- 그로 인해 의사소통을 원할하게 만들어 줍니다.
- 그로 인해 자신의 생각에 확신을 갖게 합니다.
- 그로 인해 장점과 단점을 드러내 줍니다. 모든 패턴에는 장점과 단점이 있습니다. (모든 기술도 마찬가지)
- 그로 인해 연관 패턴들과의 계층적 구조를 보여주어 큰 규모에서의 설계를 가능하게 합니다.
- 그로 인해 시야가 넓어집니다.
- 그로 인해 이름 짓기 능력을 발전 시킬 수 있습니다.
- 그로 인해 추상화 & 모듈화 능력을 발전 시킬 수 있습니다.
이제 다양한 패턴들에 대한 이름과 의도에 대해서 정리 해 보겠습니다.
Gof 디자인패턴
Creational
| 패턴명 | 의도 |
| Factory Method | |
| Abstract Factory | |
| Builder | |
| Prototype | |
| Singleton |
Sturctural
| 패턴명 | 의도 |
| Adapter | |
| Bridge | |
| Composite | |
| Decorator | |
| Facade | |
| FlyWeight | |
| Proxy |
Behavioral
| 패턴명 | 의도 |
| Interpreter | |
| Template Method | |
| Chain of Responsibility | |
| Command | |
| Iterator | |
| Mediator | |
| Memento | |
| Observer | |
| State | |
| Strategy | |
| Visitor |
켄트백 구현 패턴
멀티쓰레드 디자인패턴
| 패턴명 | 의도 |
| Single Threaded Execution | |
| Immutable | |
| Balking | |
| Producer-Consumer | |
| Read-Write Lock | |
| Thread-Per-Message | |
| Worker Thread | |
| Future |
POSA-2 (네트워킹) 디자인패턴
이벤트 핸들링 패턴
| Reactor | |
| Proactor | |
| Asynchronous Completion Token | |
| Acceptor-Connector |
Synchronization Patterns
| Scoped Locking | |
| Strategized Locking | |
| Thread-Safe Interface | |
| Doblle-Checked Locking Optimization |
Concurrency Patterns
| Active Object | |
| Monitor Object | |
| Half-Sync/Half-Async | |
| Leader/Followers | |
| Thread-Specific Storage |
POSA-3 (리소스) 디자인패턴
Resource Acquisition
| Lookup | |
| Lazy | |
| Eager | |
| Partial |
Resource Lifecycle
| Caching | |
| Pooling | |
| Coordinator | |
| Resource LifeCycle Manager |
Resource Release
| Leasing | |
| Evictor |
메세지 큐 디자인패턴
| (work queue) Round Robin Dispatch | 워커에게 하나씩 배분한다. |
| (work queue) Fair Dispatch | 워커에게하나씩 배분하되, 작업시간도 감안해서 균등히 배분한다. |
| (pub/sub) Exchange | 여러 소비자에게 한번에 다 나눠준다. |
| (routing) Direct Exchange | 특정 데이터만 선택해 가져간다. |
| (topic) Topic Exchanges | 패턴에 기반해 소비자가 가져간다. |
| (request/response) rpc | 보내고 바로 받는다. |
마이크로서비스 디자인패턴
| SAGA | |
| CQRS | |
| BFF | |
| 회로차단 | |
| 백오프 | |
| 타임아웃 | |
| 상태점검 | |
| 서비스탐색 | |
| 부하분산 | - 동일한것을 여러개로 복제 - 리소스가 다른것을 분리 - 서비스가 다른 것을 분리 |
| 캐싱 | |
| 동기/비동기 콜 | |
| 이벤트 소싱 | |
| 서비스별 DB | |
| 격벽 |
엔터프라이즈 어플리케이션 디자인패턴
| 도메인 논리 패턴 | |
| 데이터 원본 아키텍처 패턴 | |
| 객체-관계형 동작 패턴 | |
| 객체-관계형 구조 패턴 | |
| 웹 프레젠테이션 패턴 |
|
| 분산 패턴 |
|
| 오프라인 동시성 패턴 |
|
| 세션 상태 패턴 |
Spring 프레임워크 디자인 패턴 www.baeldung.com/spring-framework-design-patterns
J2EE 프리젠테이션 패턴
| Intercepting Filter 패턴 | |
| Front Controller 패턴 | |
| Context Object 패턴 | |
| Application Controller 패턴 | |
| View Helper 패턴 | |
| Composite View 패턴 | |
| Service to Works 패턴 | |
| Dispatcher View 패턴 |
J2EE 비지니스 티어 패턴
| Business Delegate 패턴 | |
| Service Locator 패턴 | |
| Session Facade 패턴 | |
| Application Service 패턴 | |
| Business Object 패턴 | |
| Composite Entity 패턴 | |
| Transfer Object 패턴 | |
| Transfer Object Assembler 패턴 | |
| Value List Handler 패턴 |
|
| 통합 티어 패턴 |
|
| Service Activator 패턴 |
|
| Domain Store 패턴 |
|
| Web Service Broker 패턴 |
기업통합 디자인패턴
| Content based Router | |
| Message Filter | |
| Dynamic Router | |
| Recipient List | |
| Splitter | |
| Aggregator | |
| Resequencer | |
| Content Enricher | |
| Content Filter | |
| Pipes and Filter |
데이터 모델 패턴
DDD 디자인패턴
빅데이터 디자인패턴
| 람다 | |