뷰 리졸버(View Resolver)는 웹 애플리케이션에서 뷰(화면)를 찾고 렌더링하는 프로세스를 관리하는 컴포넌트입니다. 주로 웹 애플리케이션에서 컨트롤러(Controller)가 데이터를 처리한 후 해당 데이터를 어떤 뷰에 표시할지를 결정하는 역할을 합니다. 다음은 뷰 리졸버의 뜻, 역할 및 예시를 자세히 설명한 것입니다
"뷰 리졸버"라는 용어는 "뷰(화면)를 해석하고 찾아주는 역할"을 나타냅니다.
웹 애플리케이션에서 컨트롤러가 처리한 데이터를 특정 뷰(HTML, JSP, Thymeleaf, FreeMarker, 등)와 연결하는 데 사용됩니다.
URL 매핑에 따라 요청을 처리하는 컨트롤러가 실행되고, 데이터를 처리한 후에 특정 뷰에 전달합니다.
뷰 리졸버는 이 뷰를 찾아주는 역할을 합니다.
뷰 리졸버는 뷰의 이름(파일 경로 또는 논리적인 이름)을 실제 뷰로 변환하고, 렌더링할 수 있는 형태로 반환합니다.
이러한 변환을 통해 웹 애플리케이션은 사용자에게 렌더링된 HTML 페이지를 표시할 수 있습니다.
Spring Framework에서 JSP 뷰 리졸버 예시:
xmlCopy code
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
이 예시에서는 "InternalResourceViewResolver"를 사용하여 JSP 뷰를 처리합니다.
"prefix" 속성은 JSP 파일 경로의 접두사를 정의하며, "suffix" 속성은 파일 확장자를 정의합니다.
예를 들어, "/WEB-INF/views/" 디렉토리에 있는 "home.jsp" 라는 파일을 렌더링하려면 컨트롤러가 "home"를 반환하면 뷰 리졸버는 이를 "/WEB-INF/views/home.jsp"로 변환하고 해당 JSP 파일을 렌더링합니다.
propertiesCopy code
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
이 예시에서는 Spring Boot의 Thymeleaf 뷰 리졸버를 설정합니다.
"spring.thymeleaf.prefix"는 Thymeleaf 템플릿 파일이 있는 경로를 정의하고, "spring.thymeleaf.suffix"는 파일 확장자를 정의합니다.
이 설정을 통해 Thymeleaf 템플릿 엔진을 사용하여 HTML 파일을 렌더링할 수 있습니다.