본문 바로가기
카테고리 없음

HTML에서 data-* 속성을 사용하는 올바른 방법

by joat문가 2025. 12. 26.

웹 페이지를 구성하는 HTML은 단순히 화면을 보여주는 역할을 넘어서, 다양한 정보를 구조적으로 담아내는 역할을 수행한다. 특히 최근에는 자바스크립트와 함께 동작하는 동적인 웹 페이지가 늘어나면서, HTML 요소 내부에 추가적인 데이터를 안전하게 저장하는 방법이 중요해졌다. 이 과정에서 등장한 것이 바로 data-* 속성이다. 이 속성은 HTML 문법을 해치지 않으면서도 개발자가 원하는 정보를 요소에 직접 저장할 수 있게 해준다. 본 글에서는 HTML data-* 속성이 왜 필요한지, 어떤 구조로 동작하는지, 그리고 실제 개발 환경에서 어떻게 활용되는지를 단계적으로 정리한다.


1. HTML data-* 속성이란 무엇인가

HTML의 data-* 속성은 사용자 정의 데이터를 HTML 요소에 저장하기 위해 만들어진 표준 속성이다.
여기서 * 부분에는 개발자가 원하는 이름을 자유롭게 지정할 수 있다.

예를 들어 data-id, data-name, data-type과 같은 형태로 사용할 수 있다.
이 속성은 HTML 자체의 의미를 변경하지 않으며, 브라우저나 검색 엔진에도 부정적인 영향을 주지 않는다.


2. data-* 속성이 필요한 이유

기존 HTML 속성만으로는 화면에 표시되지 않는 정보를 관리하는 데 한계가 있었다.
이때 개발자는 다음과 같은 문제를 겪게 된다.

  • 자바스크립트에서 특정 요소에 대한 추가 정보가 필요함
  • 서버에서 전달받은 값을 화면 요소와 연결해야 함
  • 구조는 단순하게 유지하면서 데이터만 확장하고 싶음

data-* 속성은 이러한 문제를 해결하기 위해 설계되었다.
HTML 구조는 유지하면서도, 필요한 데이터를 요소 단위로 안전하게 저장할 수 있다.


3. data-* 속성 기본 사용 방법

다음은 가장 기본적인 사용 예시이다.

 
<button data-user-id="123" data-role="admin"> 사용자 정보 </button>

위 코드에서 버튼 요소는 화면에는 보이지 않지만,
user-id와 role이라는 데이터를 함께 가지고 있다.


4. 자바스크립트에서 data-* 속성 읽는 방법

자바스크립트에서는 dataset 객체를 통해 data-* 속성에 접근할 수 있다.

 
const button = document.querySelector("button"); const userId = button.dataset.userId; const role = button.dataset.role;

이 방식은 코드 가독성이 높고, 유지보수가 쉽다는 장점이 있다.
또한 HTML과 자바스크립트 간의 역할 분리가 명확해진다.


5. data-* 속성 사용 시 주의할 점

data-* 속성은 편리하지만, 다음 사항을 지키는 것이 중요하다.

  • 중요한 개인정보는 저장하지 않는다
  • 너무 많은 데이터를 담지 않는다
  • 의미 없는 이름 대신 명확한 네이밍을 사용한다

이 원칙을 지키면 코드 품질과 보안 측면 모두에서 안정적인 사용이 가능하다.


6. data-* 속성이 적합한 활용 사례

  • 버튼 클릭 시 특정 ID 전달
  • 목록 요소에 상태 값 저장
  • UI 요소와 서버 데이터 연결

이처럼 data-* 속성은 화면과 로직을 자연스럽게 연결하는 역할을 수행한다.


마무리 정리

HTML의 data-* 속성은 단순한 문법 요소가 아니라, 구조와 데이터를 분리하면서도 효율적으로 관리할 수 있게 해주는 중요한 도구이다. 기본 개념과 사용 방법을 이해하면, 보다 깔끔하고 유지보수하기 쉬운 웹 페이지를 구성할 수 있다. 특히 자바스크립트와 함께 사용하는 경우, 코드의 명확성과 확장성이 크게 향상된다.