일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Akka
- 파이썬 강좌
- 안드로이드 웹뷰
- 파이썬 데이터분석
- Actor
- play 강좌
- 그라파나
- 스칼라 동시성
- 블록체인
- 플레이프레임워크
- 이더리움
- CORDA
- 파이썬 머신러닝
- 스칼라 강좌
- 엔터프라이즈 블록체인
- akka 강좌
- 하이브리드앱
- hyperledger fabric
- 주키퍼
- 스위프트
- 스칼라
- Adapter 패턴
- Hyperledger fabric gossip protocol
- Golang
- Play2 로 웹 개발
- 파이썬
- 파이썬 동시성
- play2 강좌
- Play2
- 하이퍼레저 패브릭
- Today
- Total
HAMA 블로그
왜 패턴이 중요한가? 본문
패턴은 추상적인 "의도"를 보다 명확한 의미로 "규정" 을 짓습니다.
패턴을 사용하는 이유와 공부하는 이유는 아래와 같습니다.
- 그로 인해 선배로 부터 값진 경험을 물려 받게 해 줍니다.
- 그로 인해 의사소통을 원할하게 만들어 줍니다.
- 그로 인해 자신의 생각에 확신을 갖게 합니다.
- 그로 인해 장점과 단점을 드러내 줍니다. 모든 패턴에는 장점과 단점이 있습니다. (모든 기술도 마찬가지)
- 그로 인해 연관 패턴들과의 계층적 구조를 보여주어 큰 규모에서의 설계를 가능하게 합니다.
- 그로 인해 시야가 넓어집니다.
- 그로 인해 이름 짓기 능력을 발전 시킬 수 있습니다.
- 그로 인해 추상화 & 모듈화 능력을 발전 시킬 수 있습니다.
이제 다양한 패턴들에 대한 이름과 의도에 대해서 정리 해 보겠습니다.
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 디자인패턴
빅데이터 디자인패턴
람다 | |