1. Dispatcher Servlet

  • Client로부터 요청이 들어왔을 때 가장 먼저 요청을 받아들이는 서블릿

     

  • 동작 절차

    1. 받은 요청에 적합한 핸들러(Controller)를 찾아 요청을 매핑
    1. 정적 리소스에 대한 요청은 핸들러를 찾지 못했을 때 정적 리소스 경로를 탐색하여 처리

    2. 핸들러를 찾았다면 호출하여 요청을 처리하고 결과를 반환받음

    3. View Name을 반환받은 경우 View Resolver를 통해 해당 View 객체를 얻어 렌더링

    4. 클라이언트에게 렌더링된 View나 응답 데이터 등을 반환

       

  • 가장 먼저 요청을 처리하기 시작하는 서블릿이기에 Front Controller 라고도 부름

  • 기존 Spring 프레임워크에서는 복잡한 설정이 필요했지만 Spring Boot를 사용하면
    Dispatcher Servlet의 설정이 자동화되어있어 별도의 설정 없이도 사용 가능

 

 

2. Controller

  • Dispatcher Servlet에 의해 매핑된 요청을 실제로 처리하는 핸들러
  • 처리해야할 비즈니스 로직이 있다면 Service를 호출하여 처리
  • 요청 처리 결과를 Dispatcher Servlet에게 반환
  • 처리 결과는 View Name이나 View 객체일 수도 있고 다른 타입의 데이터(JSON 등)가 될 수도 있음

 

 

3. Service

  • 비즈니스 로직(유저의 요청을 실제로 처리하기 위한 내부 로직)이 구현되는 영역
  • DAO 인터페이스를 호출하여 DB에 CRUD작업을 수행
  • 비즈니스 로직의 처리 결과를 Controller에 반환

 

 

4. Repository(DAO - Data Access Object)

  • JDBC 등의 API를 사용하여 직접 DB에 접근, CRUD 작업을 수행하는 영역
  • JDBC를 직접 사용하는 것 외에도 MyBatis등의 보조 프레임워크나 JPA 등의 ORM을 사용할 수도 있음
  • DB 작업의 처리 결과를 Service에 반환

+ Recent posts