카테고리 없음

HTML template 태그

codinglooking 2026. 8. 25. 12:30
이 글은 코딩에브리바디(codingeverybody.kr)의 내용을 참조해 작성했습니다.

 

template 태그는
HTML 문서에 자바스크립트를 활용하여 동적으로 복제하고 추가할 수 있는 관련 콘텐츠를 탬플릿으로 보관하는 영역을 나타냅니다.

 

렌더링 시에는 화면에 표시되지 않지만 자바스크립트로 동적 조작이 가능합니다.

 

예제

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>template 태그</title>
    </head>
    <body>
        <h1>template 태그</h1>
        <p>렌더링 시에는 화면에 표시되지 않지만 자바스크립트로 동적 조작이 가능합니다.</p>
        <template id="list-item-template">
            <li class="template-list-item"></li>
        </template>
        <ul id="template-item-list"></ul>
        <button type="button" id="add-template-item-btn">아이템 추가하기</button>
        
        <!-- 자바스크립트 코드가 여기에 들어갑니다. -->
        <script src="template.js"></script> 
    </body>
</html>
  1. 사용자가 볼 수 있는 부분은 <h1> 태그와 "렌더링 시에는 화면에 표시되지 않지만 자바스크립트로 동적 조작이 가능합니다."라는 문구입니다.
  2. 그 아래에 <template> 태그가 정의되어 있습니다. 이 태그는 나중에 사용할 리스트 아이템 템플릿을 정의하는 역할을 합니다.
  3. 빈 리스트(<ul>)가 있습니다. 여기에 동적으로 아이템을 추가할 것입니다.
  4. "아이템 추가하기"라는 버튼을 클릭하면 자바스크립트 코드가 동작합니다.
const itemList = document.getElementById('template-list-item');
const listItemTemplate = document.getElementById('list-item-template');
const addItemBtn = document.getElementById('add-template-item-btn');

const predefinedItems = ['Apple', 'Banana', 'Orange', 'Grapes', 'Peach'];

addItemBtn.addEventListener('click', () => {
    const randomIndex = Math.floor(Math.random() * predefinedItems.length);
    const selectedText = predefinedItems[randomIndex];

    const listItemClone = listItemTemplate.content.cloneNode(true);
    const listItem = listItemClone.querySelector('.template-list-item');
    listItem.textContent = selectedText;
    itemList.appendChild(listItemClone);
});

 

자바스크립트 코드는 "아이템 추가하기" 버튼을 클릭하면 실행됩니다. 먼저 predefinedItems 배열에서 무작위로 아이템을 선택하고, 선택된 아이템을 리스트에 동적으로 추가합니다.

 

이렇게 해서 <template> 태그와 자바스크립트를 활용하여 동적으로 리스트 아이템을 추가하는 웹 페이지를 만들었습니다.

구문

<template id="template-id">
    <!-- 여기에 템플릿 콘텐츠가 들어갑니다. -->
</template>
  • <template>: 템플릿을 정의하는 태그입니다.
  • id (선택사항): 템플릿에 고유한 식별자를 지정하는 속성입니다. 자바스크립트에서 템플릿을 참조할 때 사용됩니다.
  • 템플릿 콘텐츠: 템플릿 내부에 들어갈 실제 HTML 콘텐츠입니다. 이 부분은 나중에 자바스크립트를 통해 동적으로 생성되거나 조작됩니다.

<template> 태그의 사용 이유

재사용성과 유지보수성 - 동일한 레이아웃 또는 컴포넌트가 여러 곳에서 사용될 경우, 해당 구조를 템플릿으로 정의하여 중복 코드를 줄이고 유지보수성을 향상시킬 수 있습니다.

 

동적 데이터 처리 - 많은 웹 애플리케이션은 사용자 입력이나 서버에서 받아온 데이터를 동적으로 삽입해야 합니다. <template> 태그와 자바스크립트를 사용하면 데이터를 효율적으로 관리하고 동적으로 콘텐츠를 생성할 수 있습니다.

 

클라이언트 측 렌더링 속도 개선 - 서버에서 모든 콘텐츠를 렌더링하는 대신, 클라이언트 측에서 일부 작업을 수행하여 초기 로딩 속도를 개선하고 사용자 경험을 향상시킬 수 있습니다.

 

복잡한 UI 제어 - 사용자 인터랙션에 따라 UI를 동적으로 업데이트하거나 변경해야 하는 경우, 템플릿과 자바스크립트를 사용하여 쉽게 제어할 수 있습니다.

 

SPA (Single Page Application) 개발 - 현대적인 웹 애플리케이션은 페이지 전환이 없는 SPA 구조로 개발되는 경우가 많습니다. 이런 경우에는 템플릿과 자바스크립트를 사용하여 화면 갱신과 라우팅을 처리할 수 있습니다.

 

이러한 이유로 <template> 태그와 자바스크립트를 사용하여 HTML 콘텐츠를 동적으로 생성하고 관리하는 것은 웹 애플리케이션의 성능, 유지보수성, 개발자의 개발 생산성을 향상시키는 데에 도움이 됩니다.

 

그 밖에 참고한 문헌

https://coding.courses/html-template-tag/

 

HTML <template> Tag – The Content Template Element - codingCourses

The template tag is used to define reusable pieces of HTML that can be cloned and inserted into the document later using JavaScript.

coding.courses

 

https://codingeverybody.jp/html-template-tag/

 

HTML <template>タグ:正しい理解と使い方 - codingEverybody

templateタグは、JavaScriptを使用してHTMLドキュメント内に動的に複製・追加できるコンテンツ(テンプレートコンテンツ)を保持するための領域を示します。レンダリング時には画面に表示され

codingeverybody.jp