스프링 MVC에 대해서 알아봅니다. Model, View, Controller로 분리하여 개발하는 디자인 패턴으로 소프트웨어의 비즈니스 로직과 화면을 구분하는데 중점을 둡니다.
Spring MVC는 다양한 요청을 처리하고 응답하기 위해 주요 구성요소들을 만들어놓고 구성요소들을 확장할 수 있게 만들어 놓습니다.
사용자의 다양한 클라이언트요청(HTTP Request)을 처리하고 단순한 텍스트 형식의 응답부터 REST 형식의 응답은 물론 View를 표시하는 html을 return 하는 응답까지 다양한 응답을 할 수 있도록 프레임워크입니다.
스프링 MVC란
Spring MVC는 Java기반 응용 프로그램을 구축하기 위한 광범위한 프레임워크인 더 큰 스프링 프레임워크의 구성 요소입니다. Spring MVC는 프레젠테이션 계층, 비즈니스 로직 계층 및 애플리케이션의 지속성 계층 간에 명확한 관심사를 분리하여 보다 모듈화 되고 유지보수 가능한 코드를 제공합니다. 이는 애플리케이션을 모델, 뷰, 컨트롤러의 세 부분으로 나누는 MVC(모델-뷰-컨트롤러) 패턴을 기반으로 합니다.
모델은 애플리케이션의 데이터와 비즈니스 로직을 나타내며, 뷰는 사용자에게 데이터를 제공하는 역할을 하며, 컨트롤러는 사용자 요청을 처리하고 그에 따라 모델과 뷰를 업데이트합니다.
- Model : 응용 프로그램의 데이터 및 비즈니스 논리를 나타냅니다.
- View : HTML, CSS 및 JavaScript와 같은 응용 프로그램의 프리젠 테이션 계층을 나타냅니다.
- Controller : 모델과 뷰 사이의 중개자 역할을 하여 사용자 요청을 처리하고 그에 따라 모델을 업데이트합니다.
Spring MVC는 웹 애플리케이션을 구축하기 위한 강력하고 유연한 아키텍처뿐만 아니라 URL 라우팅, 양식 처리 및 보안과 같은 일반적인 웹 개발 작업을 처리하기 위한 많은 기능과 도구를 제공합니다.
또한 Hibernate, JPA, Java Server Faces(JSF)와 같은 다른 널리 사용되는 Java 프레임워크 및 기술과 잘 통합됩니다. 전반적으로 Spring MVC는 Java 기반 웹 애플리케이션을 구축하기 위해 널리 사용되고 잘 알려진 프레임워크이며 다음 웹 프로젝트를 구축하기 위한 유연하고 포괄적인 설루션을 찾는 개발자에게 적합합니다.
MVC 구조
- Dispatcher Servlet : 모든 수신 요청을 관리하고 적절한 컨트롤러로 전송하는 중앙 허브입니다. 모든 HTTP 요청을 수신한 다음 적절한 처리기 메서드로 전달합니다.
- 핸들러 매핑 : 수신 요청을 요청 URL 및 기타 속성을 기반으로 적절한 컨트롤러 및 핸들러 메서드에 매핑합니다. 수신 요청을 처리하기 위한 올바른 Controlle와 방법을 식별하는 라우팅 메커니즘으로 작동합니다.
- View Resolver : Controller가 반환한 논리적 보기 이름을 렌더링할 수 있는 실제 보기로 해결합니다. 또한 응답을 렌더링 하기 위해 뷰에 필요한 추가 데이터를 추가할 수 있습니다.
- 핸들러 인터셉터: 컨트롤러 실행 전후에 들어오는 요청과 나가는 응답을 가로채는 역할을 합니다. 로깅, 보안 및 성능 모니터링과 같은 다양한 용도로 사용할 수 있습니다.
이렇게 분리하면 복잡한 웹 애플리케이션을 쉽게 개발하고 유지 관리할 수 있습니다.
감사합니다.
'SPRING > 개념' 카테고리의 다른 글
[ 개념 ] 스프링 어노테이션(Annotation)이란? 효과적인 사용법 예제 (0) | 2023.03.01 |
---|---|
[ 개념 ] 스프링 AOP 프록시(proxy)란? 예제 장점 단점 (0) | 2023.03.01 |
[ 개념 ] 스프링(spring) AOP란 어노테이션 어드바이스 (0) | 2023.02.10 |
[ 개념 ] 스프링 IOC 컨테이너란? DI 사용이유 작동방식 (0) | 2023.02.10 |
[ 개념 ] 스프링(spring)이란 무엇인가 사용이유 (0) | 2023.02.09 |
댓글