아키텍쳐 개요
- 대부분의 중.대규모 웹 애플리케이션은 효율적인 개발 및 유지보수를 위하여 계층화(Layering)하여 개발하는 것이 일반적이다.
- 사용자관리 프로젝트 아키텍쳐에서 기본적으로 가지는 계층은 1) 프리젠테이션 계층 2) 서비스 계층 3) 데이터액세스 계층과 모든 계층에서 사용되는 도메인 모델 클래스로 구성되어 있다.
- 각각의 계층은 계층마다 독립적으로 분리하여 구현하는 것이 가능해야 하며, 각 계층에서 담당해야 할 기능들이 있다
- 위의 세가지 계층은 독립적으로 분리할 수 있도록 구현해야 하며, 일반적으로 각 계층 사이에서는 인터페이스를 이용하여 통신하는 것이 일반적이다.
계층 | 역할 |
프리젠테이션 계층 | 브라우저상의 웹클라이언트의 요청 및 응답을 처리 상위계층(서비스 계층, 데이터 액세스계층)에서 발생하는 Exception에 대한 처리 - 최종 UI에서 표현해야 할 도메인 모델을 사용 - 최종 UI에서 입력한 데이터에 대한 유효성 검증 기능을 제공 - 비즈니스 로직과 최종 UI를 분리하기 위한 컨트롤러 기능을 제공 - @Controller 어노테이션을 사용하여 작성된 Controller 클래스가 이 계층에 속 함 |
서비스 계층 | 애플리케이션 비즈니스 로직 처리와 비즈니스와 관련된 도메인 모델의 적합성 검증 - 트랜잭션처리 - 프리젠테이션 계층과 데이터 액세스 계층 사이를 연결하는 역할로서 두 계층 이 직접적으로 통신하지 않게 하여 애플리케이션의 유연성을 증가 - 다른 계층들과 통신하기 위한 인터페이스를 제공 - Service 인터페이스와 @Service 어노테이션을 사용하여 작성된 Service 구현 클래스가 이 계층에 속함 |
데이터 액세스 계층 |
- 영구 저장소(관계형 데이터베이스)의 데이터를 조작하는 데이터 액세스 로직을 객체화 |
클래스의 역할
프리젠테이션 계층
UserController 클래스
: UI 계층과 서비스 계층을 연결하는 역할을 하는 클래스
- JSP에서 UserController를 통해서 서비스 계층의 UserService를 사용하게 된다.
- 서비스 계층의 UserService 인터페이스를 구현하나 객체를 IoC 컨테이너가 주입해준다.
서비스 계층
UserService 인터페이스
: 서비스 계층에 속한 상위 인터페이스
UserServiceImpl 클래스
: UserService 인터페이스를 구현한 클래스
- 복잡한 업무 로직이 있을 경우에는 이 클래스에서 업무 로직을 구현하면 된다.
- 데이터 액세스 계층의 UserDao 인터페이스를 구현한 객체를 IoC 컨테이너가 주입해준다.
데이터 액세스 계층
UserDao 인터페이스
: 데이터 액세스 계층에 속한 상위 인터페이스
UserDaoImplJDBC 클래스
: UserDao 인터페이스를 구현한 클래스로 이 클래스에서는 데이터 액세스 로직을 구현하면 된다.
- SpringJDBC를 사용하는 경우에는 DataSource를 IoC 컨테이너가 주입해준다.
- MyBatis를 사용하는 경우에는 SqlSession을 IoC컨테이너가 주입해준다.
'2019백업' 카테고리의 다른 글
CMD UTF-8 한글깨짐 문제 (0) | 2019.06.27 |
---|---|
스프링 에러 해결 (0) | 2019.06.26 |
따라해볼만한 블로그 예제 (0) | 2019.06.26 |
9) 모델의 사이클 (0) | 2019.06.26 |
8) Session에 넣어 전달하기 (0) | 2019.06.26 |