MVC는 소프트웨어 디자인 패턴으로 소프트웨어를 세 가지 주요 부분으로 분할하여 개발하는 방법론이다 세 가지 부분은 모델(Model), 뷰(View), 컨트롤러(Controller)로 나뉜다. 각 부분은 특정한 역할을 담당하며 서로 간의 의조선을 최소화하여 융녀하고 재사용 가능한 코드를 작성할 수 있도록 돕는다.
애플리케이션의 데이터 모델을 나타냅니다. 컨트롤러는 모델을 준비하여 뷰에 데이터를 제공한다.
클라이언트에게 데이터를 표시하는 역할을 한다. 스프링 MVC에서는 주로 JSP, Thymeleaf, Freemarker 등의 템플릿 엔진을 사용하여 뷰를 생성한다.
'Controller'어노테이션을 사용하여 표시된다. 이는 HTTP 요청을 수신하고 적절한 작업을 수행하는 클래스이다. 일반적으로 메서드는 요청 경로와 HTTP 메서드에 매핑되고 해당 메서드는 비즈니스 로직을 수행한 후 모델을 준비하고 뷰의 이름을 반환한다.
모든 클라이언트 요청을 처리하고 적절한 컨트롤러에 전달하는 중앙 집중식 서블릿이다. 웹 애플리케이션의 진입점으로서 요청을 처리하기 위해 다양한 핸들러 매핑 및 핸들러 어댑터를 사용한다.
클라이언트 요청이 어떤 컨트롤러에 매핑되는지 결정하는 데 사용된다.
컨트롤러가 반환한 뷰 이름을 기반으로 실제 뷰 객체를 결정하는 데 사용된다.
이러한 구성 요소들을 조합하여 스프링 MVC는 강력하고 유연한 웹 애플리케이션을 구축 할 수 있게 해준다. 이를 통해 개발자는 비즈니스 로직과 프리젠테이션 로직을 분리하고 유지보수성이 뛰어난 애플리케이션을 만들 수 있다.
스프링 MVC 동작 과정은 클라이언트가 요청하면 DispatcherServlet 요청 수신되고 HandlerMapping을 통해 컨트롤러를 찾아서 실행하고 모델이 데이터 처리하고 처리 결과를 뷰로 보여주고 클라이언트가 응답을 한다. MVC 동작 과정을 다시 정리하고 이해하는데 시간을 할애했다.
앞으로 더 나은 개발자가 되기 위해 꾸준히 학습을 진행해야겠다.