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