AEM의 오랜 사용자들을 위해, 이 문서는 HTL, HTL이 JSP를 대체하는 방법 및 Sightly에서의 이름 변경에 대한 배경을 제공합니다.
HTML 템플릿 언어(HTL)는 HTML에 대한 Adobe Experience Manager의 기본 및 권장 서버측 템플릿 시스템입니다. 이전 버전의 AEM에서 사용된 JSP(JavaServer Pages)를 대신합니다.
JSP에 비해 여러 이점을 제공하므로 새 AEM 프로젝트에 HTML 템플릿 언어를 사용하는 것이 좋습니다. 그러나 기존 프로젝트의 경우, 향후 몇 년 동안 기존 JSP를 유지 관리하는 것보다 노력이 덜 들 것으로 추정되는 경우에만 마이그레이션이 의미가 있습니다.
하지만 HTL로 작성된 구성 요소는 JSP 또는 ESP로 작성된 구성 요소와 호환되기 때문에 HTL로의 전환이 반드시 양자택일의 문제는 아닙니다. 기존 프로젝트가 문제 없이 새 구성 요소에 대해서는 HTL을 사용하고 기존 구성 요소에 대해서는 JSP를 유지할 수 있다는 의미입니다.
동일한 구성 요소 내에서도 HTL 파일을 JSP 및 ESP와 함께 사용할 수 있습니다. 다음 예제의 라인 1에서는 JSP 파일에서 HTL 파일을 포함하는 방법을, 라인 2에서는 HTL 파일에서 JSP 파일을 포함하는 방법을 보여 줍니다.
<cq:include script="template.html"/>
<sly data-sly-include="template.jsp"/>
다음은 HTL을 처음 사용하는 숙련된 AEM 개발자들이 자주 묻는 몇 가지 질문입니다.
JSP로 할 수 있는 일을 HTL로도 달성할 수 있어야 한다는 점에서 JSP와 비교하여 HTL에 있는 제한은 사실 없습니다. 하지만 HTL은 여러 측면에서 JSP보다 더 엄격하게 설계되었습니다. 단일 JSP 파일에서 모두 달성할 수 있는 것은 HTL에서 달성할 수 있도록 Java 클래스 또는 JavaScript 파일로 분리해야 할 수도 있습니다. 그러나 일반적으로는 논리와 마크업 사이의 문제를 잘 분리하기 위해 바람직한 것입니다.
아니요. 하지만 시작 설명서의 클라이언트 라이브러리 로드 섹션에서 볼 수 있듯이 템플릿 및 호출 문은 유사한 패턴을 제공합니다.
아니요. 할 수 없습니다. HTL은 논리 재사용을 위한 강력한 확장 메커니즘(Use-API)과 프로젝트 코드를 모듈화하는 데 사용할 수 있는 마크업(템플릿 및 호출 문)을 제공합니다.
보안 및 프로젝트 효율성이 주요 이점이며 개요에 자세히 설명되어 있습니다.
이 제품군에 대한 계획은 없습니다.
AEM 6.0 및 6.1에서 HTL은 Sightly라고 불렸었습니다. Adobe는 무엇을 위한 사양인지 명확히 하고 Adobe의 명명 지침에 맞추기 위해 HTML 템플릿 언어 또는 HTL로 명칭을 변경했습니다. 이런 명칭 변경은 2016년 8월부터 적용되었으며 AEM 버전 6.0 이상에 적용됩니다.
이런 명칭 변경은 코드나 API에 영향을 미치지 않으므로 호환성에는 영향을 미치지 않습니다. 자세한 내용은 이 공지 비디오를 참조하십시오.
HTL에 대한 자세한 정보와 좋은 시작 지점은 HTML 템플릿 언어(HTL) 시작 안내서에서 찾아볼 수 있습니다.