개발일지/일간회고 (TIL)
레이어드 아키텍처 패턴
윤승임
2022. 12. 6. 20:20
백엔드 API를 개발할 때, 쓰이는 패턴이다.
Presentation 계층
사용자와의 상호 작용을 처리하는 계층
CLI, HTTP 요청, HTML 처리 등을 담당
HTTP 요청 처리 및 HTML 렌더링에 대해 알고 있는 웹 계층
흔히 말하는 MVC (Model / View / Controller) 도 이 계층에 속한다.
URL을 매핑해서 특정 메서드가 해당 URL로 요청이 올 때마다 호출되게 프로그래밍하는 계층
스프링에서는 @Controller 어노테이션을 사용하여 표현
Domain(Business or Service) 계층
서비스/시스템의 핵심 로직
유효성 검사 및 계산을 포함하는 Business 논리 계층
애플리케이션이 수행해야하는 도메인과 관련된 작업들을 담당
입력/저장된 데이터를 기반으로 계산
Presentation 계층에서 받은 데이터의 유효성 (Validation) 검사
어떤 Data Access 를 선택할지 결정
Presentaion, Data Access계층에는 별로 할 일이 없고, 도메인 계층이 비대해지는게 가장 좋다.
스프링에서는 @Service 어노테이션을 사용해서 표현
Data Access(Persistence) 계층
DAO (Data Access Object) 계층
Database / Message Queue / 외부 API와의 통신 등 처리
데이터베이스 또는 원격 서비스에서 영구 데이터를 관리하는 방법을 분류하는 데이터 접근 계층
스프링에서는 @Repository 어노테이션을 사용해서 표현