BackEnd 학습/Spring Framework

Spirng(스프링) - MVC 프레임워크 만들기

잉아당 2023. 6. 13. 22:14
728x90

프론트 컨트롤러 패턴

  • 특징
    • 프론트 컨트롤러 서블릿 하나로 클라이언트의 요청을 받음
    • 프론트 컨트롤러가 요청에 맞는 컨트롤러 찾아서 호출
    • 공통 처리 가능
    • 프론트 컨트롤러를 제외한 나머지 컨트롤러는 서블릿을 사용하지 않아도 됨
    • 스프링 웹 MVC도 DispatcherServlet이 프론트 컨트롤러 패턴으로 구현되어져 있음
      • 를 이용하면 하위 요청을 모두 받을 수 있음

단계별 도입

  • 프론트 컨트롤로 도입
    • 호출이 되면 프론트 컨트롤러에서 받아서 처리
    • frontController에서 처리
  • View 분리
    • 각 View를 컨트롤러에서 직접 실행 하던것을 객체화 하여 경로만 넘겨주어 해당 객체에서 forward 수행을 함
    • MyView 객체에서 처리
  • Model 추가
    • 각 컨트롤러에서는 논리 이름을 반환하고 프론트 컨트롤러에서 실제 물리 이름으로 처리
    • 서블릿 종속성 제거
    • viewResolver 객체에서 처리
    • 물리적명에서 논리적명으로 변경한 이유
      • path가 변경되어도 viewResolver쪽의 path만 변경하면 모두 적용 됨
  • 단순화
    • ModelView를 반환하는 것이 아닌 ViewName만 반환
  • 유연성 추가
    • 어댑터 패턴
      • 다양한 방식의 컨트롤러를 처리할 수 있게 해주는 패턴
    • 요청이 들어오면 핸들러 매핑 정보를 조회
    • 매핑 정보를 토대로 어댑터 목록에서 어댑터를 조회
    • 해당 어댑터가 핸들러(컨트롤러)를 실행하여 처리

 

출처 : https://www.inflearn.com/course/스프링-mvc-1

 

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의

웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., -

www.inflearn.com