HTML 같은 뷰 파일 안에서 동적으로 데이터를 넣어 웹 페이지를 생성해주는 도구
서버에서 전달한 데이터(모델)를 HTML 구조에 끼워 넣어서 최종적으로 브라우저에 전달할 수 있게 해준다.
${변수} 또는 {{변수}} 같은 문법을 넣어 데이터가 들어갈 자리를 지정한다. 서버에서 Java 코드로 문자열을 만든 뒤 이 문자열을 HTML로 변환하여 브라우저로 전달한다.
HTML과 데이터를 깔끔하게 분리
반복문, 조건문 등 로직 일부 지원
재사용 가능한 UI 조각(템플릿 조각) 가능
서버에서 HTML을 매번 만들어야 하므로, 데이터만 보내는 API 방식보다 느릴 수 있음
클라이언트 측에서 동적으로 페이지를 바꾸는 데 한계가 있음