개발일지/일간회고 (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 어노테이션을 사용해서 표현