- 레이어(Layer) : 각 레이어는 위쪽 레이어에게는 서버 역할을 하고 아래쪽 레이어에게는 클라이언트 역할을 한다.
- 연결방식 : 프로토콜(Protocol)
- 인접 레이어와 상호 작용해야 한다.
- 하위 레이어 의존성만 허용한다.
- OSI 7 레이어
- 데이터베이스 시스템과 운영체제
- 추상성 수준에 기초한 설계를 제공한다.
- 확정성이 좋다.
- 레이어를 재사용할 수 있다.
- 레이어를 다른 것을 바꿀 수 있어서 이식성이 좋다.
- 모든 시스템을 레이어로 나눌 수 있는 것은 아니다.
- 올바른 추상화 수준을 찾기 어렵다.
- 구성요소 : 프로시져와 드러난 데이터
- 연결방식 : 프로시져 호출과 드러난 데이터 공유
- 제어 : 단일 쓰레드 방식
- 재사용성이 뛰어나다.
- 시스템을 진화시켜 나가기 쉽다.
- 컴포넌트는 시스템이 처리하는 계산에 대한 제어를 포기해야 한다.
- 데어터를 주고 받을 때 신경을 많이 써야 한다.
- 구성요소 : 객체
- 연결방식 : 메서드 호출
- 객체는 자신의 무결성을 보장할 책임을 지닌다.
- 객체는 자신이 표현하는 것을 내부에 숨긴다.
- 클라이언트에게 영향을 주지 않고 구현을 바꿀 수도 있다.
- 문제 영역을 인간 사고와 비슷한 방식으로 분할하여 다룰 수 있다.
- 반드시 다른 객체의 식별자를 알아야 한다.
- 객체의 식별자를 변경하면 이 객체를 호출하는 다른 객체들을 변경해야 한다.
- 데이터가 시스템에 집중되어 있고 여러 클라이언트가 데이터를 얻기 위해 이 시스템과 상호작용하는 경우.
- 구성요소 : 중앙 집중 데이터 저장소, 데이터를 소비하는 클라이언트
수동형 데이터 집중소 : 클라이언트가 데이터를 가져갈 필요가 있는지 검사해서 가져간다
능동형 데이터 집중소 : 데이터에 변동이 생기면 관련 클라이언트에게 변경 사실을 통지한다.
목표 :독립 프로세스나 객체를 통해 처리에 필요한 다양한 부분의 의존성을 없애 변경가능성을 달성한다.
- 구성요소 : 프로시져 모음과 이벤트 집합을 제공하는 인터페이스를 가진 모듈
- 연결방식 : 이벤트 등록과 프로시져 호출
- 제약조건 : 이벤트 제공자는 어떤 컴포넌트가 이 이벤트에 영향 받는지 알지 못한다.
- 리플렉션(Reflection) : 시스템의 구성이나 행위를 실행시점에 마음대로 바꿀 수 있는 메커니즘을 제공하는 패
MVC(Model-View-Controller)/PAC(Presentation-Abstraction-Control) : 시스템을 책임에 따라 나눠 변화에 유연하게 대처할 수 있게 하는 패턴
- 브로커(Broker) : 분산환경에서 분산투명성을 제공하는 패턴
- 마이크로커널(Microkernel) : 자주 바뀌는 요구사항을 수용할 수 있게 시스템을 핵심부분과 변화부분으로 나누는 패턴
한 시스템에 한 스타일만 적용하는 경우는 거의 없다.
- 위치(Locationally) : 실행 시점 구조가 다른 부분에서 다른 스타일로 드러난다.
예) 메인 프로그램과 서브루틴으로 이루어진 시스템의 일부가 리파지토리를 가지고 있을 수 있다.
- 계층(Hierarchically) : 한 스타일의 컴포넌트가 분해될 때 다른 스타일을 따른다.
예) 객체가 파이프와 필터로 구현될 수 있다.
- 동시성 : 시간의 흐름에 따라 다른 스타일을 따른다.
지금까지 아키텍처 스타일이란 무엇이며, 어떤 종류가 있는지 알아보았다.
알고보니 - Business Process Management란? (0) | 2022.04.12 |
---|---|
알고보니 - 아키텍처 스타일 대표예제 : Layered Architecture (0) | 2022.04.06 |
알고보니 - 아키텍처 스타일 및 종류 (1/2) (0) | 2022.03.29 |
알고보니 - SW 아키텍처 스타일 (0) | 2022.03.25 |
알고보니 - REST 아키텍처 스타일 (0) | 2022.03.23 |
댓글 영역