연구자들은 곧 HTML 태그 목록을 실험하며 링크, 제목, 목록을 테스트했습니다. “무거운 부분은 빼고, 필요한 것만 남겼다”는 반응이 이어졌습니다.
HTML은 SGML에서 꼭 필요한 태그만 남기고 링크를 가장 중요한 기능으로 삼은 언어입니다. 덕분에 브라우저가 문서를 읽고 서로 연결된 페이지를 보여 줄 수 있었고, 이후
웹 문서 구조 이야기는 이 메모에서 시작되었습니다.
1995
HTML 2.0, 웹의 공통 언어를 확정하다
IETF가 첫 공식 HTML 설명서를 발표하자 브라우저 개발사는 “이제 같은 문서를 같이 해석할 수 있다”고 안도했습니다.
IETF 회의에서 HTML 워킹그룹은 폼, 이미지, 링크를 어떻게 작성할지 정리한 문서를 배포했습니다. 넷스케이프 엔지니어는 “이제 폼 제출과 표 구조를 같은 방식으로
구현하겠네요”라고 말했고, 마이크로소프트 팀도 곧바로 적용 계획을 세웠습니다.
RFC 1866이 공개되자 인터넷 업체의 기술지원팀은 “브라우저마다 결과가 다르다”는 문의가 조금씩 줄고 있다고 보고했습니다.
HTML 2.0 설명서는 “이 태그는 무엇을 뜻하고, 브라우저는 어떻게 처리해야 하는가”를 적어 둔 첫 공식 문서입니다. 공통 약속이 생기면서 도구가 웹 문서를 믿고 읽을 수
있게 되었고, 이후 더 많은 의미 태그를 추가할 토대가 마련됐습니다.
1997
XML 1.0 권고, 데이터와 문서를 잇다
W3C가 XML 1.0을 발표하자 개발자들은 “같은 태그로 문서도, 데이터도 보내자”라며 구조 실험을 가속했습니다.
1997년 12월 W3C 기술 브리핑에서 팀 브레이는 “SGML은 무겁지만 XML은 가볍습니다. 서버, 브라우저, 휴대기기 모두 같은 구조를 이해하게 만들 수 있어요”라고
설명했습니다. 참석자는 주문 목록을 XML로 바꿔 보여 주며 “별도 프로그램 없이도 구조가 공유되네요”라고 놀랐습니다.
신문사는 기사 목록을 XML로 배포하기 시작했고, 기업용 소프트웨어 업체는 회사끼리 정보를 주고받으려고 규칙 파일(DTD)과 이름 구역(네임스페이스)을 작성했습니다.
“문서처럼 읽고, 데이터처럼 처리한다”는 시도가 현실이 되었습니다.
XML 1.0은 “태그 이름은 이렇게 쓰고, 속성은 이렇게 표시한다”는 규칙을 담았습니다. 덕분에 서로 다른 프로그램도 같은 구조를 이해할 수 있었고, SVG·RSS 같은 웹
기술과 기업 간 데이터 교환 모두 XML을 바탕으로 자리를 잡았습니다. 훗날 JSON이 인기를 얻어도 “먼저 구조를 정의하자”는 생각은 계속 이어졌습니다.
1998
DOM Level 1, 문서를 객체로 다루다
브라우저 회사들은 “스크립트가 문서를 안전하게 다룰 규칙이 필요하다”며 DOM Level 1을 만들었습니다.
W3C 회의에서 브라우저 엔지니어들은 “문서를 트리처럼 보고, 필요한 부분을 찾아 바꾸자”는 데 뜻을 모았습니다. 넷스케이프와 IE 대표는
`document.getElementById` 예시를 함께 살펴보며 같은 방식으로 구현하겠다고 약속했습니다.
웹 개발자 라셸은 테스트 페이지에서 버튼을 누르면 새 문단이 생기는 코드를 작성했습니다. 그는 “이제 문서를 데이터처럼 다룰 수 있어요”라며 블로그에 경험담을 남겼습니다.
DOM Level 1은 문서를 “부모와 자식이 있는 나무 구조”로 바라보고, 필요한 부분을 찾거나 새로 만드는 표준 메서드를 정리했습니다. 이 덕분에 스크립트가 HTML
구조를 믿고 다룰 수 있게 되었고, 동적인 웹앱의 기본 문이 열렸습니다.
2004
WHATWG, 웹 애플리케이션을 위한 HTML
애플·모질라·오페라는 “폼과 상호작용을 더 잘 다룰 HTML이 필요하다”며 WHATWG를 결성했습니다.
산호세에서 열린 브라우저 회의에서 이안 힉슨은 `canvas`, `input type="email"` 같은 새 요소를 소개하며 “웹도 앱처럼 일하게 만들자”고 강조했습니다.
참석한 엔지니어들은 메모를 나눠 들고 곧바로 구현 계획을 세웠습니다.
회의가 끝나자 WHATWG 메일링 리스트에는 “동영상 태그도 필요해요”, “폼 검증을 자동으로 하고 싶어요” 같은 요청이 쏟아졌고, 초안은 커뮤니티 피드백으로 빠르게
다듬어졌습니다.
WHATWG는 “필요한 기능을 먼저 만들고, 문서를 모두가 볼 수 있게 공유하자”는 모임입니다. 이곳에서 HTML5 초안이 꾸준히 업데이트되면서, 구조와 의미를 코드로 따져
보는 문화가 더욱 활발해졌습니다.
2005
마이크로포맷, 의미 있는 클래스 이름
웹 커뮤니티는 “지금 있는 HTML만으로 일정과 연락처를 표시할 수 없을까?”라며 클래스 이름 약속을 만들었습니다.
BarCamp 행사에서 개발자들은 명함을 자동으로 정리하고 싶다며 `hCard` 예제를 돌려봤습니다. 한 참석자는 블로그 글에 `class="fn org"`를 붙인 뒤
“주소록 앱이 이름과 회사를 자동으로 읽어 가네요!”라고 소개했습니다.
microformats.org에는 금세 사용 사례가 쌓였고, 검색 엔진 팀은 “이 구조라면 일정과 리뷰를 바로 꺼낼 수 있다”며 실험을 시작했습니다.
마이크로포맷은 “새 태그를 만들지 말고, 클래스 이름으로 의미를 알려 주자”는 간단한 약속입니다. 덕분에 웹페이지에 있는 일정, 주소, 리뷰 정보를 기계가 쉽게 모을 수 있게
되었고, 나중에 schema.org 같은 구조화 데이터 표준으로 이어졌습니다.
2011
schema.org, 검색엔진이 손잡고 구조를 정의하다
구글·빙·야후가 “같은 마크업이면 서로 이해하자.”며 schema.org를 발표하자, 제작자들은 구조화 데이터를 본격
채택했습니다.
2011년 SMX 컨퍼런스에서 구글과 빙의 검색팀 담당자가 함께 무대에 섰습니다. “이제 itemscope와 itemprop만
맞추면 검색 결과에 리뷰 별점과 행사 일정이 바로 뜹니다.” 발표 후 한 마케팅 팀장은 “우리 레시피에도 별점이 나오게 할래요!”라며 개발자에게 구조화 마크업을
요청했습니다.
이듬해 전자상거래 사이트가 상품, 가격, 재고 정보를 schema.org 어휘로 노출하면서, 크롬과 파이어폭스 개발자 도구에는 구조화 데이터 점검 기능이 추가됐습니다.
“구조가 곧 검색 트래픽”이라는 말이 현실이 되었습니다.
schema.org는 검색엔진이 공동으로 유지하는 어휘집입니다. HTML과 JSON-LD 어디에서든 사용할 수 있어 구조를 표시하는 방식이 통일되었고, 접근성 도구와 음성
비서가 같은 구조를 재사용할 수 있게 했습니다. 프론트엔드는 구조화된 정보를 시각적으로 드러내고, 백엔드는 정해진 스키마에 따라 데이터를 제공하며 협업 범위를 넓혔습니다.
2014
HTML5, 시맨틱 요소가 정착하다
W3C가 HTML5 권고를 발표하자 팀 리더는 “div 대신 main으로 갈아타자”라며 템플릿을 갈아엎고 시맨틱 요소를
받아들였습니다.
웹팀 리더 하나는 문서 템플릿에서 `
`를 ``으로 교체하고, 스크린 리더 테스트를 진행했습니다. 결과를 확인한 QA 담당자는 “landmark가 분명해져서 내비게이션이
쉬워졌어요.”라고 보고했습니다.
블로거들은 `section`과 `aside` 사용법을 공유하며, 디자인 시스템에 시맨틱 규칙을 추가했습니다.
HTML5는 시맨틱 요소와 문서 구조 알고리즘을 제공해, 레이아웃이 아닌 의미 중심 마크업을 권장했습니다. 표준이 확정되면서 접근성 도구와 검색 엔진이 구조를 활용하기
쉬워졌습니다.
2017
ARIA 1.1, 패턴 가이드로 구조를 설명하다
W3C는 WAI-ARIA 1.1 패턴을 공개하며 “구성요소마다 역할과 상태를 명확히 알려 주세요.”라고 권장했습니다.
캘리포니아의 한 뮤지엄 웹팀은 탭 컴포넌트를 테스트하면서 ARIA 역할을 적용했습니다. 스크린 리더 사용자 테스터가 “이제 탭 제목과 현재 위치를 정확히 들을 수
있어요.”라고 피드백했습니다.
패턴 가이드는 열린 상태, 키보드 포커스 이동 순서를 표로 정리해, 프론트엔드 팀이 구조를 설계할 때 참고서가 되었습니다.
ARIA 1.1은 역할, 상태, 속성을 통해 문서 구조가 보조기술에 전달되도록 보완했습니다. 시맨틱 태그만으로 표현하기 어려운 패턴을 보완해, 구조 정보를 더 정밀하게 전할
수 있게 했습니다.
2020
커스텀 엘리먼트, 구조를 재사용하다
브라우저 지원이 안정되자 디자인 시스템 팀은 “`` 한 번 쓰면 구조 끝!”이라며 컴포넌트를 코드로
배포했습니다.
한 공공기관 팀은 `` 컴포넌트를 정의해 콘텐츠를 배포했습니다. 콘텐츠 편집자는 마크다운에 해당 태그만 추가하면 일관된 구조가 생성되는 모습을 보고
만족했습니다.
접근성 엔지니어는 커스텀 엘리먼트 내부에 시맨틱 요소를 유지하도록 리뷰했고, 배포 후 사용자 설문에서는 “페이지마다 같은 패턴을 쉽게 인식할 수 있다.”는 응답이 늘었습니다.
Custom Elements v1은 표준 클래스 확장을 통해 재사용 가능한 구조를 만들 수 있게 했습니다. 컴포넌트가 자신만의 템플릿과 접근성 속성을 포함하면, 디자인
시스템이 구조를 자동으로 보급할 수 있다는 사실이 확인되었습니다.
2022
디자인 시스템 가이드, 구조 규칙을 공유하다
대규모 서비스는 “디자인뿐 아니라 문서 구조 규칙도 손에 잡히게 정리하자.”며 퍼블릭 가이드를 발행했습니다.
2023년 W3C 커뮤니티 그룹은 Design Tokens Working Draft를 발표하며
"color.background.surface" 같은 이름 규칙을 소개했습니다. 한 디자이너는 “이제 이 파일만 공유하면 앱과 웹이
동시에 색이 바뀐다”고 설명했고, 프론트엔드 리드는 토큰 JSON을 불러와 즉시 테마를 교체했습니다.
회사 내부 오피스 아워에서는 개발자와 디자이너가 함께 구조 규칙을 검토하며, 문서 구조를 테스트하는 자동화 스크립트를 공유했습니다.
디자인 시스템은 구성요소뿐 아니라 문서 구조, 접근성 체크리스트를 포함하기 시작했습니다. 구조 규칙을 문서화하면 새 페이지도 같은 의미 체계를 따르게 되고, 콘텐츠 품질이
일정하게 유지된다는 장점이 확인되었습니다.
2023
Design Tokens 초안, 구조와 스타일을 함께 배포하다
W3C Design Tokens 초안이 “색과 컴포넌트 속성을 한 구조에 담자.”고 제안하자, 제품팀은 구조와 스타일 자산을 한
번에 배포하기 시작했습니다.
2023년 W3C 커뮤니티 그룹은 Design Tokens Working Draft를 공개하며 `"color.background.surface"` 같은 키 구조를
소개했습니다. 한 피그마 디자이너는 “이제 변수 이름만 공유하면 앱과 웹이 동시에 업데이트돼요.”라고 말했고, 프론트엔드 리드는 토큰 JSON을 라이브러리에 가져와 즉시
테마를 교체했습니다.
컨퍼런스에서는 “토큰이 곧 구조다”라는 말이 따라붙었습니다. 토큰 파일에 역할, 계층, 접근성 대비 정보까지 적어 두며 구조와 스타일 정의가 하나의 출처에서 관리되기
시작했습니다.
Design Tokens 규격은 색상, 간격, 타입 스케일 같은 시각 속성을 키-값 구조로 정의하고, 플랫폼별 빌더가 이를 변환하도록 합니다. 프론트엔드는 토큰을 읽어
컴포넌트 구조를 일관되게 렌더링하고, 백엔드는 같은 토큰을 이메일, PDF 템플릿에도 적용하면서 “구조와 스타일의 단일 진실”을 유지할 수 있게 되었습니다.