티스토리 뷰

아키텍쳐 개요



 - 사용자 관리 프로젝트 아키텍쳐에서 기본적으로 가지는 계층은 프리젠테이션 계층, 서비스 계층, 데이터 액세스 계층 그리고 3계층과 모든 계층에서 사용되는 도메인 모델 클래스로 구성.

 - 각각의 계층은 계층마다 독립적으로 분리하여 구현하는 것이 가능해야 하며, 각 계층에서 담당해야 할 기능들이 있다.

 - 각 계층 사이에서는 인터페이스를 이용하여 통신하는 것이 일반적.


 프리젠테이션 계층

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

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

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

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

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

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

 서비스 계

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

 트랜젝션 처리

 프리젠테이션 계층과 데이터 액세스 계층 사이를 직접적으로 통신하지 않게 하여 어플리케이션의 유연성 증가

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

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

 데이터 액세스 계

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

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

 ORM 프레임워크 (MyBatis, Hibernate)를 주로 상용하는 계층

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


 도메인 모델 클래스

 RDBMS의 엔티티와 비슷한 개념으로 VO(Value Object) 혹은 DTO(Data Transfer Object) 객체에 해당

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

 Private로 선언된 멤버 변수가 있고 그 변수에 대한 getter와 setter 메서드를 가진 클래스를 말함



사용자 관리 프로젝트 클래스 설계


출처 : Tacademy


클래스 역할

 프리젠테이션 계층

 UserController

 UI 계층과 서비스 계층을 연결하는 역할을 하는 클래스.

 JSP에서 UserController를 통해서 서비스 게층의 UserService를 사용

 서비스 계층의 UserService 인터페이스를 구현한 객체를 IoC컨테이너가 주입해줌.


 서비스 계층

 UserService

 서비스 계층에 속한 상위 인터페이스

 UserServiceImpl

 UserService 인터페이스를 구현한 클래스

 복잡한 업무로직이 있을 경우에는 이 클래스에서 업무 로직을 구현하면 됨.

 데이터 액세스 계층의 UserDao 인터페이스를 구현한 객체를 IoC컨테이너가 주입해줌.

 데이터 액세스 계층

 UserDao

 데이터 액세스 계층에 속한 상위 인터페이스

 UserDaoImplJDBC

 UserDao 인터페이스를 구현한 클래스. 해당 클래스에 데이터 액세스 로직을 구현하면 됨.

 SpringJDBC를 사용하는 경우에는 DataSource를 IoC컨테이너가 주입해줌.

 MyBatis를 사용하는 경우에는 SqlSession을 IoC가 주입해줌.

* 다음 게시글에서 데이터 액세스 계층에 대해 좀 더 자세히 알아봄.

'Java > Spring' 카테고리의 다른 글

AOP 개요와 용어  (0) 2017.01.09
Spring JDBC  (1) 2017.01.08
Annotation을 이용한 Bean 등록  (0) 2017.01.07
Bean 의존 관계 설정 방법  (0) 2017.01.07
간단한 POJO 클래스를 통한 DI 이해  (0) 2017.01.07
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함