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

첫걸음 - 15

Posted by owin2828 on 2019-12-30 16:59 · 1 min read

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


간단한 웹 어플리케이션을 개발할 때 사용하는 전형적인 구조는 다음 요소를 포함

  • 프론트 서블릿
  • 컨트롤러 + 뷰
  • 서비스
  • DAO

    Dispatcher Servlet -> 컨트롤러 -> 서비스 -> DAO

  • 컨트롤러는 실제 웹 브라우저의 요청을 처리하며, 어플리케이션이 제공하는 기능과 사용자를 연결하는 매개체
    실제 기능을 위한 로직은 서비스가 담당
  • 서비스는 기능의 로직을 구현
    DB 연동이 필요하다면 DAO를 사용해 데이터를 가져오거나 저장

2. 서비스의 구현


  • 구현되는 서비스의 로직은 몇 단계의 과정을 거쳐 수행되며, 모든 과정을 성공적으로 진행했을 때 완료
    이런 이유로 서비스의 매서드를 트랜잭션 범위에서 주로 수행

3. 컨트롤러에서 DAO의 접근


  • 서비스 매서드에서 어떤 로직도 수행하지 않고 단순히 DAO의 매서드만 호출하고 끝나는 코드등은
    컨트롤러에서 직접 DAO에 접근가능

    단순히 ID를 가지고 DAO에 접근하는 경우

4. 패키지 구성


  • 패키지를 구성함에는 정답이 없지만, 같은 구성원 모두가 동일한 규칙에 따라 구성해야 시간 낭비를 방지

    웹 어플리케이션이 복잡해지면 기존의 컨트롤러-서비스-DAO 구조 외에
    UI-서비스-도메인-인프라로 영역을 구성하는 "도메인 주도 설계"를 적용