Spring MVC 패턴은 웹 애플리케이션의 구조를 Model-View-Controller (모델-뷰-컨트롤러) 방식으로 나누어 개발하는 아키텍처 패턴이다. 각 구성 요소는 애플리케이션의 서로 다른 역할을 맡고 있으며, 이를 통해 코드의 유지보수성과 확장성을 높인다.
1. Model (모델)
Spring MVC 기반의 웹 애플리케이션이 클라이언트의 요청을 전달받으면 요청 사항을 처리하기 위한 작업을 한다.
- 데이터 객체: 보통 POJO (Plain Old Java Object) 클래스로 구현되어 데이터를 저장한다.
- 비즈니스 로직: 데이터의 유효성 검사, 계산, 서비스 로직 등을 포함한다.
- 데이터베이스 상호작용: JPA, Hibernate, MyBatis 등을 이용해 데이터베이스와 상호작용하며 데이터를 가져오거나 업데이트한다.
모델은 컨트롤러가 요청을 처리할 때 필요한 데이터를 제공하고, 뷰로 전달되는 데이터를 포함한다.
2. View (뷰)
뷰는 사용자에게 결과를 표시하는 역할을 한다. 모델에서 전달된 데이터를 기반으로 UI를 생성한다.
- 템플릿 엔진: Spring MVC에서는 JSP, Thymeleaf, FreeMarker와 같은 템플릿 엔진을 사용하여 HTML을 생성한다.
- 데이터 바인딩: 모델에서 전달된 데이터를 뷰에 바인딩하여 최종적으로 사용자가 볼 수 있도록 렌더링한다.
- UI 구성: 사용자 인터페이스는 HTML, CSS, JavaScript 등을 포함하며, 사용자가 볼 수 있는 웹 페이지를 구성한다.
뷰는 서버에서 받은 데이터를 기반으로 최종적으로 브라우저에 보여주는 형태로 변환한다.
3. Controller (컨트롤러)
컨트롤러는 사용자의 요청을 받아서 처리하고, 적절한 모델을 준비하여 뷰에 전달하는 역할을 한다. 사용자의 요청을 직접적으로 전달받는 엔드포인트로써 모델과 뷰의 중간에서 상호작용을 해주는 역할을 한다.
- 요청 처리: @Controller 어노테이션을 사용해 정의된 클래스는 HTTP 요청을 처리한다.
- 핸들러 메서드: @RequestMapping, @GetMapping, @PostMapping 등의 어노테이션을 통해 HTTP 요청 URL을 메서드와 매핑하여 요청을 처리한다.
- 비즈니스 서비스 호출: 요청을 처리하기 위해 서비스 계층을 호출하여 비즈니스 로직을 수행한 후 결과를 모델에 담는다.
- 뷰 선택: 결과를 뷰로 반환하기 위해 뷰 이름을 선택하고, 뷰 템플릿에 데이터를 전달한다.
- 컨트롤러에서 리턴값으로 문자를 반환하면 viewResolver가 화면을 찾아서 처리
- 스프링 부트 템플릿 엔진 기본 viewName 매핑
- `resource:templates`/ +{ViewName} + `.html`
'개발 | 프로젝트' 카테고리의 다른 글
Node.js, Unity WebSocket 통신 (+ 에러 해결) (0) | 2025.02.13 |
---|