간단한 웹 어플리케이션의 구성 요소
- 프론트 서블릿(DispatcherServlet) : 웹 브라우저의 모든 요청을 받는 창구역할
- 컨트롤러 + 뷰
- 서비스
- DAO
프론트 서블릿 → 컨트롤러 → 서비스 → DAO
컨트롤러
컨트롤러는 사용자 요청과 어플리케이션의 기능을 연결하는 매개체
즉, 로직을 직접 수행하지 않는다. 따라서, 컨트롤러가 도메인을 멤버변수로 가지거나 반환하는 목적으로 쓰이는 것은 컨트롤러 계층의 목적과 부합하지 않는다.
- 클라이언트가 요구한 기능 실행
- 응답 결과 생성 (모델 생성, 뷰 선택)
서비스
비즈니스 로직을 수행하는 영역
- Transactional 활용
컨트롤러에서의 DAO 접근
- 동의하지 않는다.
- 서비스에서 단순히 DAO 메서드만 호출하더라도 서비스에서의 메서드는 하나의 비즈니스 기능이며 DAO는 CRUD의 로직라고 생각한다.
웹 어플리케이션이 복잡할 때?
- 컨트롤러 - 서비스 - DAO 구조
- 기능이 많고 로직이 추가되면 복잡해진다
- 도메인 주도 설계 : UI - 서비스 - 도메인 - 인프라
- UI : 컨트롤러 영역에 대응
- 인프라 : DAO 영역에 대응
- 도메인 주도 설계
'공부 > Spring' 카테고리의 다른 글
[chap17] 프로필과 프로퍼티 (0) | 2022.06.09 |
---|---|
[chap16] JSON 응답과 용청 처리 (0) | 2022.06.09 |
[chap14] MVC 4 : 날짜 값 변환, @PathVariable, 익셉션 처리 (0) | 2022.06.02 |
[chap13] MVC 3 : 세션, 인터센터, 쿠키 (0) | 2022.06.02 |
[chap12] MVC 2: 메시지, 커맨드 객체 검증 (0) | 2022.06.02 |
댓글