스프링 MVC 1편 (백엔드 웹 개발 핵심 기술)

Ch04. MVC 프레임워크 만들기 - 프론트 컨트롤러 도입(v1)

webmaster 2022. 3. 4. 11:13
728x90

프론트 컨트롤러 V1 구조

interface 작성

각 Controller들이 구현해야 하는 인터페이스 작성

  • 서블릿과 비슷한 모양의 컨트롤러 인터페이스를 도입한다. 각 컨트롤러들은 이 인터페이스를 구현하면 된다. 프론트 컨트롤러는 이 인터페이스를 호출해서 구현과 관계없이 로직의 일관성을 가져갈 수 있다.
  • 이제 이 인터페이스를 구현한 컨트롤러를 만들어보자. 지금 단계에서는 기존 로직을 최대한 유지하는게 핵심이다

Controller 작성

MemberFormController
MemberSaveController
MemberListController

  • 내부 로직은 기존 서블릿과 거의 같다
  • 리펙토링의 할 때에는, 변경해야할 관심사만 변경해야 한다(같은 레벨만 변경해야 한다)

FrontControllerV1 작성

FrontControllerV1 

  • urlPatterns
    • urlPatterns = "/front-controller/v1/*" : /front-controller/v1 을 포함한 하위 모든 요청은 이 서블릿에서 받아들인다.
  • controllerMap
    • key: 매핑 URL
    • value: 호출될 컨트롤러
  • service()
    • 먼저 requestURI를 조회해서 실제 호출할 컨트롤러를 controllerMap에서 찾는다. 만약 없다면 404(SC_NOT_FOUND) 상태 코드를 반환한다.
    • 컨트롤러를 찾고 controller.process(request, response); 을 호출해서 해당 컨트롤러를 실행한다
  • JSP
    • JSP는 이전 MVC에서 사용했던 것을 그대로 사용한다.
728x90