backend

[Spring] 뷰 리졸버 (View Resolver)와 템플릿 엔진 (Template Engine)이란?

KUKJIN LEE
KUKJIN LEE
2024년 11월 11일
130

View 수요가 계속 감소하고 있습니다. 기존 JSP 유지보수 코드도 계속 감소하고, 꾸준히 우상향 하던 Thymeleaf도 감소로 돌아서기 시작했습니다. 그럼에도 다양한 곳에서 수요가 존재하기 때문에 알아가면 좋습니다.

[카테고리를 백엔드로 선택했지만, View Resolver와 Template Engine은 프론트엔드와 협력하여 작업을 처리하는 요소이기 때문에 백엔드로만 한정할 수 없습니다. 이 두 개념은 주로 서버 측에서 뷰를 구성하고 렌더링하는 역할을 담당하기 때문에 백엔드에 포함시킨 것입니다.]

 

뷰 리졸버 (View Resolver)

  1. 역할: 컨트롤러가 반환한 뷰 이름을 실제 뷰 파일로 맵핑하는 역할을 담당합니다.

  2. 동작 방식

    • 컨트롤러가 논리적인 뷰 이름을 반환합니다.

    • 뷰 리졸버가 이 이름을 바탕으로 실제 뷰 파일의 위치를 찾아냅니다.

    • 찾아낸 뷰 파일을 템플릿 엔진에 전달하여 렌더링을 요청합니다.

  3. 장점

    • 뷰의 위치나 종류가 변경되어도 컨트롤러 코드를 수정할 필요가 없어 유연성이 향상됩니다.

    • 논리적 뷰 이름과 실제 뷰 구현을 분리하여 관리할 수 있습니다.

템플릿 엔진 (Template Engine)

  • 역할: 데이터를 결합하여 최종적인 뷰(HTML)를 생성하는 역할을 담당합니다.

  • 주요 기능

    • 정적 HTML에 동적 데이터를 삽입할 수 있게 해줍니다.

    • 조건문, 반복문 등의 로직을 뷰에서 사용할 수 있게 합니다.

    • 레이아웃 템플릿을 지원하여 중복 코드를 줄일 수 있습니다.

  • 대표적인 템플릿 엔진

    • Thymeleaf: 스프링에서 권장하는 모던 서버사이드 자바 템플릿 엔진

    • JSP (JavaServer Pages): 자바 기반의 전통적인 템플릿 엔진

  • 장점

    • 뷰 로직과 비즈니스 로직을 분리하여 관리할 수 있습니다.

    • 재사용 가능한 템플릿 조각을 만들어 코드 중복을 줄일 수 있습니다.

    • 동적 컨텐츠 생성이 용이해집니다.

뷰 리졸버와 템플릿 엔진은 MVC 아키텍처에서 뷰 계층을 담당하며, 이들의 조합으로 효율적이고 유지보수가 용이한 뷰 처리 로직을 구현할 수 있습니다.

#view resolver#Spring Resolver 종류#JSP#Thymeleaf#Template Engine#뷰 리졸버란#템플릿 엔진이란