- 프리젠테이션 계층
- 클라이언트와 통신을 직접적으로 담당하며 클라이언트의 요청을 해석하고 응답하는 계층입니다.
- 클라이언트와 통신하는 API를 제공하며 컨트롤러로 대변됩니다.
- 비지니스 계층으로 요청을 위임하고 받은 결과를 응답하는 역할만 수행합니다.
- 비지니스 계층
- 프리젠테이션 계층으로부터 요청을 받아 비지니스 로직을 수행하는 계층입니다.
- 비지니스 로직을 수행하는 과정에서 데이터 계층과 통신하며 서비스로 대변됩니다.
- 데이터 계층
- 실제 데이터베이스(RDBMS 혹은 NoSQL)에 접근하는 계층입니다.
- 리포지터리로 대변됩니다.
위의 계층 설명에서 봤듯이 레이어드 아키텍처 패턴은 아래와 같은 공통적인 특징이 있습니다.
- 의존성
- 각 계층은 가장 가까운 하위 계층의 의존성을 주입받습니다.
- 이는 DI라고도 하는데 아래에서 자세하게 설명드리겠습니다.
- 각 계층은 가장 가까운 하위 계층의 의존성을 주입받습니다.
- 독립성
- 각 계층은 다른 계층의 역할을 침범하지 않습니다.
- 각 계층은 역할이 명확하므로 기능 구현 및 테스트에 용이합니다.