개발/Spring

[Spring] 프리젠테이션 계층, 서비스 계층, 데이터 액세스 계층, 도메인 모델 클래스

hojak99 2017. 8. 21. 13:42

프리젠테이션 계층


- 브라우저상의 웹 클라이언트의 요청 및 응답을 처리

- 상위계층(서비스 계층, 데이터 액세스 계층)에서 발생하는 Exception에 대한 처리

- 최종 UI에서 표현해야 할 도메인 모델을 사용

- 최종 UI에서 입력한 데이터에 대한 유효성 검증 기능을 제공

- 비즈니스 로직과 최종 UI를 분리하기 위한 컨트롤러 기능을 제공

- @Controller 어노테이션을 사용하여 작성된 Controller 클래스가 이 계층에 속함



서비스 계층


- 애플리케이션 비즈니스 로직 처리와 비즈니스와 관련된 도메인 모델의 적합성 검증

- 트랜잭션 처리

- 프리젠테이션 계층과 데이터 액세스 계층 사이를 연결하는 역할로서 두 계층이 직접적으로 통신하지 않게 애플리케이션의 유연성을 증가

- 다른 계층들과 통신하기 위한 인터페이스를 제공

- Service 인터페이스와 @Service 어노테이션을 사용하여 작성된 Service 구현 클래스가 이 계층에 속함



데이터 액세스 계층


- 영구 저장소(관계형 데이터베이스)의 데이터를 조작하는 데이터 액세스 로직을 객체화

- 영구 저장소의 데이터를 조회, 등록, 수정, 삭제 함

- ORM(Object Releational mapping) 프레임워크 (Mybatis, Hibernate)를 주로 사용하는 계층

- DAO 인터페이스와 @Repository 어노테이션을 사용하여 작성된 DAO 구현 클래스가 이 계층에 속함



도메인 모델 클래스

- 관계형 데이터 베이스의 엔티티와 비슷한 개념을 가지는 것으로 실졔 VO(Value Object) 혹은 DTO (Data Transfer Object) 객체에 배당

- 도메인 모델 클래스는 3개의 계층 전체에 걸쳐 사용

- private으로 선언된 멤버 변수가 잇고, 그 변수에 대한 getter 와 setter 메소드를 가진 클래스를 말함



반응형