백엔드 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 어노테이션을 사용해서 표현
'개발일지 > 일간회고 (TIL)' 카테고리의 다른 글
annotation에 대해 (0) | 2022.12.08 |
---|---|
Java Spring MVC (Model - View - Controller) (0) | 2022.12.07 |
왜 안되는걸까 (0) | 2022.12.06 |
Java 테스트 코드 (0) | 2022.12.04 |
자바(Java) Interface, Stream, Optinal (0) | 2022.12.01 |