아키텍처 패턴
: 소프트웨어 아키텍처를 설계하는데, 발생하는 문제점을 해결하기 위한 재사용가능한 솔루션으로 디자인 패턴과 유사하나, 더 큰 범위에 속한다.
1) 계층 (Layered) 패턴
- 소프트웨어를 계층단위(Unit)로 분할하며, N-tier 아키텍처 패턴이라고도 한다.
- 계층적으로 조직화 할 수 있는 서비스로 구성된 애플리케이션에 적합하다.
- 전통적인 방법으로 층 내부의 응집도를 높이는 것이 중요하다.
- 모듈들의 응집된 집합 계층 간의 관계는 사용 가능의 관계로 표현된다.
2) MVC (Model View Controller)패턴
: 대화형 애플리케이션을 Model, View, Controller 로 분류한다.
| 애플리케이션 | 설명 |
|---|
| Model | 핵심기능 + 데이터 |
| View | 사용자에게 정보를 표시 ( 다수의 View 정의 가능) |
| Controller | 사용자로부터 입력을 처리 |
3) 클라이언트 서버 (Client-Server) 패턴
: 하나의 서버와 다수 클라이언트로 구성
클라이언트가 서버에 서비스를 요청히면 커뮤니케이션이 이뤄진다.
- 서버는 응답을 위해 항상 대기 중이어야 한다.
4) 파이프 필터 (Pipe-Filters)
- 데이터 흐름(data stream)을 생성하고, 처리하는 시스템을 위한 구조
필터 : 파이프를 통해 받은 데이터를 변경시키고, 그 결과를 파이프로 전송한다.
파이프 : 데이터의 흐름, 버퍼링 또는 동기화 목적으로 사용될 수 있다.
- 각 처리과정은 필터 컴포넌트에서 이뤄진다.
- 컴파일러, 연속한 필터들은 어휘 분석, 파싱, 의미분석, 코드 생성을 수행
5) Peer to Peer
6) 브로커 (Broker)
7) 블랙보드 (Black Board)
8) 이벤트 버스 (Event-Bus)
9) 인터프리터 (Interpreter)