Spring MVC (Model-View-Controller)는 웹 애플리케이션을 개발할 때 사용되는 디자인 패턴입니다.
Model (모델)
모델은 애플리케이션의 데이터와 비즈니스 로직을 나타냅니다. 이는 데이터의 상태를 관리하고, 필요한 로직을 수행합니다.
예를 들어, 사용자 정보를 담는 객체나 데이터베이스에서 데이터를 가져오는 역할을 수행합니다.
View (뷰)
뷰는 사용자에게 정보를 보여주는 역할을 합니다. 주로 HTML, JSP, Thymeleaf 등과 같은 템플릿 엔진을 통해 화면을 구성합니다.
모델의 데이터를 화면에 표시하거나, 사용자의 입력을 받는 등의 역할을 합니다.
Controller (컨트롤러)
컨트롤러는 모델과 뷰 사이의 중간 역할을 합니다.
클라이언트의 요청을 받아 해당 요청에 맞는 로직을 수행하고, 그 결과를 뷰에 전달합니다.
예를 들어, 사용자가 웹 페이지에서 어떤 기능을 요청하면 컨트롤러가 그 요청을 받아서 해당 기능을 수행하고 결과를 뷰에 전달합니다.
동작 흐름
클라이언트가 웹 페이지에 접근하면, 컨트롤러가 해당 요청을 받습니다.
컨트롤러는 필요한 비즈니스 로직을 실행하고, 그 결과를 모델에 담습니다.
모델은 결과 데이터를 가지고 뷰를 선택하고, 뷰는 결과를 화면에 표시합니다.
간단히 말해, Spring MVC는 모델(데이터와 로직), 뷰(화면), 컨트롤러(요청과 응답 처리)로 구성되어 있습니다.
이 패턴을 사용하면 각각의 역할을 분리하여 유지보수가 쉬우며, 확장성이 높은 웹 애플리케이션을 개발할 수 있습니다.