XML (Extensible Markup Language)과 HTML (HyperText Markup Language)은 모두 마크업 언어이지만, 그 목적과 사용 방식에서 중요한 차이점이 있습니다. 아래는 XML과 HTML의 주요 차이점입니다.
1. 목적 (Purpose)
- XML: XML은 데이터를 구조화하여 저장하고 전송하는 데 사용됩니다. XML은 데이터의 정의와 구조에 집중하며, 사용자 정의 태그를 허용합니다. 데이터의 표현 방식에 초점을 맞추고, 시스템 간 데이터 교환이 용이하도록 설계되었습니다.
- HTML: HTML은 웹 페이지의 구성과 표현에 중점을 둡니다. 즉, 콘텐츠의 표시와 디자인에 초점을 맞추며, 웹 브라우저에서 텍스트, 이미지, 비디오 등을 시각적으로 표시하는 데 사용됩니다.
2. 사용자 정의 태그 (Custom Tags)
- XML: XML에서는 사용자가 자유롭게 태그를 정의할 수 있습니다. 즉, XML 문서는 특정 목적에 맞는 구조를 자유롭게 만들 수 있으며, 데이터를 적절한 태그로 감쌀 수 있습니다.
- 예: <book><title>XML for Beginners</title><author>John Doe</author></book>
- HTML: HTML에는 사전 정의된 태그가 있으며, 사용자는 HTML 태그를 변경하거나 추가할 수 없습니다. 웹 페이지를 표시하기 위해서는 HTML에서 제공하는 태그를 사용해야 합니다.
- 예: <h1>Title</h1><p>This is a paragraph.</p>
3. 태그의 엄격성 (Tag Strictness)
- XML: XML은 엄격한 문법 규칙을 따릅니다. 예를 들어, 모든 태그는 반드시 쌍을 이루어야 하고, 태그 이름은 대소문자를 구분합니다. 태그가 닫히지 않거나 잘못 작성된 경우 XML 문서는 오류를 발생시킵니다.
- 예: <book><title>Title</title></book> (올바름), <book><title>Title</title> (오류 발생)
- HTML: HTML은 덜 엄격합니다. 일부 태그는 자동으로 닫히거나 일부 태그가 생략될 수 있습니다. HTML 문서는 브라우저에서 오류가 발생하더라도 자동으로 보정되는 경우가 많습니다.
- 예: <p>This is a paragraph. (HTML에서는 잘 작동하지만 XML에서는 오류 발생)
4. 데이터 vs 표시 (Data vs Display)
- XML: XML은 데이터를 저장하고 전달하는 데 사용됩니다. XML 문서는 내용을 표현하는 것이 아니라 데이터를 구조화하여 다른 시스템 간에 데이터를 전송하는 데 적합합니다.
- HTML: HTML은 웹 페이지의 내용을 표시하고 사용자가 웹 페이지와 상호작용할 수 있도록 합니다. HTML은 콘텐츠의 시각적 표현을 중심으로 설계되었습니다.
5. 공백과 줄 바꿈 (Whitespace and Line Breaks)
- XML: XML에서는 공백이나 줄 바꿈이 중요합니다. 특히 데이터의 구분에 사용될 수 있기 때문에 공백을 의미 있는 데이터로 간주합니다.
- HTML: HTML에서는 공백이나 줄 바꿈이 시각적으로 무시됩니다. 즉, 여러 공백을 연속해서 사용하거나 줄 바꿈을 여러 번 사용하더라도, 브라우저는 이를 하나의 공백으로 처리합니다.
6. 표준화 및 확장성 (Standardization and Extensibility)
- XML: XML은 확장성을 제공하는 마크업 언어로, 다양한 종류의 데이터 포맷을 정의할 수 있습니다. 예를 들어, XML Schema, DTD(문서 유형 정의), XSLT 등의 규격을 사용해 XML 문서를 확장하고 검증할 수 있습니다.
- HTML: HTML은 웹 페이지의 구조를 정의하기 위한 마크업 언어로, 웹 브라우저에서 콘텐츠를 표시하는 표준을 따릅니다. HTML은 확장성보다는 웹 페이지 표시의 일관성에 중점을 둡니다.
'컴퓨터 지식' 카테고리의 다른 글
[Json] Json 주요 특징 (0) | 2025.03.19 |
---|---|
[XML ] XML 구성 요소 (1) | 2025.03.19 |
[Web] Listener, Filter 의 차이점 (1) | 2024.12.04 |
[Web] Request, Session, Aplication 등 적용 범위 (0) | 2024.12.03 |
[Content-Type] Content-Type 종류 (1) | 2024.12.03 |