All Day Tired

MVC/MVC2/springMVC 본문

Back/Spring

MVC/MVC2/springMVC

yu.dev 2025. 5. 19. 21:02

하.. 이직을 했는데...

조졌다... 너무 나랑 안 맞는다... 그래서 다시 이직을 준비하렵니다...

이직은 신중하게... ^^

심지어 C# 하는 중인데 웹개발 다시 하려고 백투더 베이직... ㅋㅋㅋ큐ㅠㅠ

 

MVC란

MVC는 그냥 디자인 패턴 중 하나다. MVC 패턴이 유명한 이유는 그저 '이런 디자인 패턴을 따르면 유지보수가 쉽고 편리하다' 라는 이유때문이다.

 

MVC

  • 가장 태초의 MVC 패턴
  • 클라이언트가 호출하면 Controller가 비즈니스 로직을 처리
  • Model은 데이터로 Controller에서 처리한 로직에서 나온 데이터를 Model로 전달하면 View는 이 Model을 참조하여 화면을 표시

 

MVC2

  • MVC 패턴에서 발전한 형태
  • 좀 더 세부적으로 나누어보자
  • Controller는 오직 컨트롤러 로직만을 처리 -> 클라이언트 호출을 받아서 어느 service로 갈지 교통정리만 해주는 역할
  • Service에서 비즈니스 로직 처리와 DB에 접근해 데이터 접근을 하는 백단의 핵심 역할을 함
  • 이렇게 Service에서 만들어진 데이터가 Model로서 Controller가 참조하게 됨
  •  View에서는 화면을 만들어서 보여주게 됨

 

springMVC

  • spring에서 사용하는 MVC 패턴
  • DispatcherServlet은 HTTP 요청을 모두 받아서 핸들러 매핑에서 핸들러를 조회해 적합한 컨트롤러로 보내주는 Front Contorller이다.
  • 핸들러 = Contorller
  • 핸들러 매핑은 요청에 맞는 Contorller를 찾는 것이다. 스프링이 알아서 핸들러 매핑을 만들어놨기 때문에 우리는 신경쓰지 않아도 된다.
    •  RequestMappingHandleMapping : 애너테이션 @RequestMapping 컨트롤러(0순위)
    • BeanNameUrlHandlerMapping : 스프링 빈의 이름의 핸들러(1순위)
    • 등등 다양한 핸들러 매핑 존재
    • 우선 순위에 따라서 핸들러(=Controller) 조회
  • 핸들러 어댑터는 다양한 핸들러를 실행하기 위한 중간 어댑터라고 보면 된다.
    • RequestMappingHandleAdapter : 애너테이션 @RequestMapping 컨트롤러(0순위)
    • HttpRequestHandlerAdapter : HttpRequestHandler 처리(1순위)
    • SimpleContollerHandlerAdapter : Controller 인터페이스 처리(2순위)
    • 등등 다양한 핸들러 어댑터 존재
    • 핸들러 어댑터의 supports를 통해서 Contorller 인터페이스가 맞는지 조회
  • 핸들러 어탭터를 조회해서 이 핸들러 어탭터로 핸들러를 호출해 ModelAndView를 반환한다.
  • ViewResolver를 통해 설정한 view prefix, suffix로 View를 반환한다.
  • render를 통해 실제 화면을 클라이언트에게 응답한다. 

'Back > Spring' 카테고리의 다른 글

PRG, Redirect, Forward  (1) 2025.05.21
@Configuration(feat.싱글톤)  (0) 2025.01.02
싱글톤, 싱글톤 컨테이너  (2) 2024.12.31
스프링컨테이너, 스프링빈 등록/주입  (0) 2024.12.30
@Scheduler, cron표현식 사용  (0) 2024.10.27
Comments