아키텍처 패턴
주어진 상황에서의 소프트웨어 아키텍처에서 일반적으로 발생하는 문제점들에 대한 일반화되고 재사용 가능한 솔루션.
계층형 아키텍처 패턴
Layern Architecture Pattern
계층을 분리해서 관리하는 아키텍처 패턴
일반적인 계층형 아키텍처 패턴은 3개 이상의 계층으로 구성됨.
장점
- 계층 별 관심사 분리 -> 코드의 명확한 인지 가능
- 계층 별 의존성 낮음 -> 모듈 교체 시 코드 수정 용이
- 계층 별 단위 테스트 작성 가능 -> 테스트 코드 구성 용이
3-Layered Architecture
3계층 아키텍처의 구성 계층:
- Presentation Layer
- Business Logic Layer
- Data Access Layer
처리 과정
- Controller: 어플리케이션의 가장 바깥 부분. 요청/응답 처리
사용자의 요청을 처리한 후 서버에서 처리된 결과를 반환해줌.
- Service: 어플리케이션의 중간 부분. 중요 작동이 많이 일어남
비즈니스 로직이 수행됨
- Repository: 어플리케이션의 가장 안쪽 부분.
실제 데이터베이스의 데이터 사용

- 사용자: 요청을 보냄
- controller: 요청을 받아서 service에게 요청 처리 부탁
- service: 요청을 처리하기 위한 데이터를 repository에게 부탁
- repository: 데이터베이스에 접근 / 데이터 추출
- service: repository에게서 받은 데이터로 controller의 요청 처리
- controller: service의 결과물(응답)을 사용자에게 전달
Controller
(프레젠테이션 계층)
- request 수신
- request에 들어온 데이터 및 내용 검증
- response 반환
Service
(서비스 계층 / 비즈니스 로직 계층)
- 비즈니스 로직 수행
- 사용자의 요구사항 구현
- 데이터가 필요할 때 저장소(Repository)에게 요청
Repository
(저장소 계층 / 데이터 액세스 계층)
- 모든 데이터가 메모리상에 존재하는 것처럼 가정 (데이터 접근과 관련된 세부사항을 감춤)
- DB 관리 (연결, 해제, 자원 관리)
- DB CRUD 작업 처리