템플릿 엔진 : 지정된 템플릿 양식과 데이터가 합쳐져 HTML 문서를 출력하는 소프트웨어
ex) JSP, Freemarker(서버 템플릿 엔진) -> React, Vue(클라이언트 템플릿 엔진)
만약 자바스크립트에서 JSP를 쓴다면??
서버 템플릿 엔진
서버에서 Java 코드로 문자열을 만든 뒤 이 문자열을 HTML로 변환하여 브라우저로 전달
즉, HTML을 만드는 과정에서 JSP 자바코드 실행
클라이언트 템플릿 엔진
자바스크립트는 브라우저 위에서 작동
즉, 브라우저에서 작동될 때는 서버 템플릿 엔진의 손을 벗어나 제어할 수 없다.
서버에서는 Json 혹은 Xml 형식의 데이터만 전달하고 클라이언트에서 조립한다.
예외로 서버 사이드 렌더링(자바스크립트 프레임워크 화면 생성 방식을 서버에서 실행)도 존재
머스테치
수많은 언어를 지원하는 가장 심플한 엔진(루비, 자바스크립트, 파이썬, PHP, 자바, 펄, Go 등)
=> 자바에서 사용될 때는 서버 템플릿 엔진으로, 자바스크립트에서 사용될 때는 클라이언트 템플릿 엔진으로 모두 사용 가능
플러그인을 설치하고 의존성 추가한다.
머스테치 기본 경로에 파일 생성
머스테치 스타터로 인해 컨트롤러에서 문자열을 반환할 때 앞의 경로와 뒤의 파일 확장자는 자동으로 지정된다.
앞 : src/main/resources/templates
뒤 : .mustache
위 코드를 보면 /(가장 상위) url로 접근할 때 index를 반환하므로 전체 경로는
src/main/resources/templates/index.mustache로 전환되어 View Resolver가 처리하게 된다.