[Spring] 뷰 리졸버 (View Resolver)와 템플릿 엔진 (Template Engine)이란?
KUKJIN LEE • 1개월 전 작성
View 수요가 계속 감소하고 있습니다. 기존 JSP 유지보수 코드도 계속 감소하고, 꾸준히 우상향 하던 Thymeleaf도 감소로 돌아서기 시작했습니다. 그럼에도 다양한 곳에서 수요가 존재하기 때문에 알아가면 좋습니다.
뷰 리졸버 (View Resolver)
-
역할: 컨트롤러가 반환한 뷰 이름을 실제 뷰 파일로 맵핑하는 역할을 담당합니다.
-
동작 방식
-
컨트롤러가 논리적인 뷰 이름을 반환합니다.
-
뷰 리졸버가 이 이름을 바탕으로 실제 뷰 파일의 위치를 찾아냅니다.
-
찾아낸 뷰 파일을 템플릿 엔진에 전달하여 렌더링을 요청합니다.
-
-
장점
-
뷰의 위치나 종류가 변경되어도 컨트롤러 코드를 수정할 필요가 없어 유연성이 향상됩니다.
-
논리적 뷰 이름과 실제 뷰 구현을 분리하여 관리할 수 있습니다.
-
템플릿 엔진 (Template Engine)
-
역할: 데이터를 결합하여 최종적인 뷰(HTML)를 생성하는 역할을 담당합니다.
-
주요 기능
-
정적 HTML에 동적 데이터를 삽입할 수 있게 해줍니다.
-
조건문, 반복문 등의 로직을 뷰에서 사용할 수 있게 합니다.
-
레이아웃 템플릿을 지원하여 중복 코드를 줄일 수 있습니다.
-
-
대표적인 템플릿 엔진
-
Thymeleaf: 스프링에서 권장하는 모던 서버사이드 자바 템플릿 엔진
-
JSP (JavaServer Pages): 자바 기반의 전통적인 템플릿 엔진
-
-
장점
-
뷰 로직과 비즈니스 로직을 분리하여 관리할 수 있습니다.
-
재사용 가능한 템플릿 조각을 만들어 코드 중복을 줄일 수 있습니다.
-
동적 컨텐츠 생성이 용이해집니다.
-
뷰 리졸버와 템플릿 엔진은 MVC 아키텍처에서 뷰 계층을 담당하며, 이들의 조합으로 효율적이고 유지보수가 용이한 뷰 처리 로직을 구현할 수 있습니다.