본문 바로가기
공부/Spring

[chap15] 간단한 웹 어플리케이션의 구조

by JERO__ 2022. 6. 9.

간단한 웹 어플리케이션의 구성 요소

  • 프론트 서블릿(DispatcherServlet) : 웹 브라우저의 모든 요청을 받는 창구역할
  • 컨트롤러 + 뷰
  • 서비스
  • DAO

프론트 서블릿 → 컨트롤러 → 서비스 → DAO

컨트롤러

컨트롤러는 사용자 요청과 어플리케이션의 기능을 연결하는 매개체

즉, 로직을 직접 수행하지 않는다. 따라서, 컨트롤러가 도메인을 멤버변수로 가지거나 반환하는 목적으로 쓰이는 것은 컨트롤러 계층의 목적과 부합하지 않는다.

  • 클라이언트가 요구한 기능 실행
  • 응답 결과 생성 (모델 생성, 뷰 선택)

서비스

비즈니스 로직을 수행하는 영역

  • Transactional 활용

컨트롤러에서의 DAO 접근

  • 동의하지 않는다.
  • 서비스에서 단순히 DAO 메서드만 호출하더라도 서비스에서의 메서드는 하나의 비즈니스 기능이며 DAO는 CRUD의 로직라고 생각한다.

웹 어플리케이션이 복잡할 때?

  • 컨트롤러 - 서비스 - DAO 구조
    • 기능이 많고 로직이 추가되면 복잡해진다
  • 도메인 주도 설계 : UI - 서비스 - 도메인 - 인프라
    • UI : 컨트롤러 영역에 대응
    • 인프라 : DAO 영역에 대응
  • 도메인 주도 설계

댓글