아키텍처
- 시스템의 기본적인 구조를 정의한다
- 시스템의 중요한 품질 속성에 큰 영향을 미친다
- 설계 결정의 기반이 되는 핵심적인 개념이다
- 기본 구성 요소와 상호 관계, 제약 조건, 원칙 등을 포함한다
계층화 아키텍처 (Layered Architecture)
- 서브 시스템을 계층(layer)으로 구조화 하는 아키텍처 스타일이다
- 계층은 사용 관계로 연결된다
- 사용 관계는 일반적으로 단방향이어야 한다는 핵심 제약이 있다
- 상위 계층이 하위 계층의 서비스를 사용하는 하향식 흐름을 가진다
- 각 계층이 하위 계층의 내부 작동 방식을 알지 못하고 제한된 인터페이스만 사용하도록 한다계층 격리 Layers of Isolation
- 어떤 레이어의 변경이 다른 레이어의 컴포넌트에게 가능한 영향을 주지 않도록 해야 한다
3계층 아키텍처

- UI; Presentation: 사용자의 관심사만 담은 인터페이스 및 뷰
- Domain; Business Logic: 도메인 로직, 비즈니스 로직을 담는 레이어
- 아래의 2가지로 표현 가능
- Transaction Script
- Domain Model Pattern