๋ฐ์ํ
XML (eXtensible Markup Language)
1. ๊ฐ๋
XML์ ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์กฐ์ ์ผ๋ก ํํํ๊ณ ์ ์ฅํ๊ธฐ ์ํ ๋งํฌ์ ์ธ์ด๋ก, ๋ฐ์ดํฐ์ ์๋ฏธ(Meaning) ์ ๊ตฌ์กฐ(Structure) ๋ฅผ ํจ๊ป ํํํ๊ธฐ ์ํด ์ฌ์ฉ๋จ.
ํ๊ทธ๋ฅผ ์ง์ ์ ์ํ ์ ์์ด ํ์ฅ์ฑ(Extensible) ์ด ๋์ผ๋ฉฐ, ์์คํ ๊ฐ ๋ฐ์ดํฐ ๊ตํ, ์ค์ ํ์ผ, ๋ฌธ์ ๊ตฌ์กฐ ์ ์ ๋ฑ์ ๋๋ฆฌ ํ์ฉ๋จ.
2. ํน์ง
- ํ๊ทธ(<tag>)๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ธ๋ ๊ตฌ์กฐ
- ๋ฐ์ดํฐ์ ๋ฐ์ดํฐ์ ์๋ฏธ๋ฅผ ํจ๊ป ํํ ๊ฐ๋ฅ
- ์ฌ๋์ด ์ฝ๊ธฐ ์ด๋ ต์ง๋ง ๊ธฐ๊ณ๊ฐ ํด์ํ๊ธฐ ์ฉ์ดํจ
- ๊ณ์ธต์ (hierarchical) ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง
- ๋ฐ์ดํฐ ๊ฒ์ฆ์ ์ํ DTD ๋๋ XML Schema ์ง์
- ์ฃผ์(<!-- comment -->) ์ฌ์ฉ ๊ฐ๋ฅ
- JSON๋ณด๋ค ๋ฐ์ดํฐ ํฌ๊ธฐ๊ฐ ํฌ๊ณ ๊ตฌ์กฐ๊ฐ ๋ณต์กํจ
- ํต์ ๋ณด๋ค๋ ๋ฌธ์ ์ ์ฅ, ์ค์ , ๋ณต์กํ ๊ณ์ธต ํํ์ ์ฃผ๋ก ์ฌ์ฉ๋จ
3. ๋ฌธ๋ฒ ๊ท์น
์์
<?xml version="1.0" encoding="UTF-8"?>
<user>
<name>Hyebin</name>
<age>25</age>
<isBackendDeveloper>true</isBackendDeveloper>
<skills>
<skill>Java</skill>
<skill>Spring</skill>
<skill>MySQL</skill>
</skills>
</user>
XML ๊ธฐ๋ณธ ๊ตฌ์ฑ ์์
| ๊ตฌ์ฑ ์์ | ์ค๋ช | ์์ |
| ์ ์ธ๋ถ | XML ๋ฒ์ ๊ณผ ์ธ์ฝ๋ฉ ๋ฐฉ์ ์ง์ | <?xml version="1.0" encoding="UTF-8"?> |
| ์์(Element) | ๋ฐ์ดํฐ์ ๋จ์, ์์·์ข ๋ฃ ํ๊ทธ๋ก ๊ตฌ์ฑ | <name>Hyebin</name> |
| ์์ฑ(Attribute) | ์์์ ๋ถ๊ฐ ์ ๋ณด ์ ๊ณต | <user id="1"> |
| ํ ์คํธ ๊ฐ | ์ค์ ๋ฐ์ดํฐ ๋ด์ฉ | <name>Hyebin</name>์ “Hyebin” |
| ์ฃผ์(Comment) | ๋ฌธ์ ๋ด ์ค๋ช ์ถ๊ฐ | <!-- developer info --> |
| ๋ฃจํธ ์์ | ๋ฌธ์์ ์ต์์ ์์, ํ๋๋ง ์กด์ฌ | <user>...</user> |
๊ท์น ์์ฝ
- ์์ ํ๊ทธ์ ์ข ๋ฃ ํ๊ทธ๋ ๋ฐ๋์ ์ง์ ์ด๋ค์ผ ํจ (<tag></tag>)
- ๋ฃจํธ(root) ์์๋ ๋จ ํ๋๋ง ์กด์ฌํด์ผ ํจ
- ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํจ (<Name> ≠ <name>)
- ์์ฑ ๊ฐ์ ํฐ๋ฐ์ดํ๋ก ๊ฐ์ธ์ผ ํจ (" ")
- ์ฃผ์์ <!-- --> ํํ๋ก ์์ฑ
- ์๋ชป๋ ์ค์ฒฉ์ ๋ถ๊ฐ๋ฅ (<a><b></a></b>๋ ์ค๋ฅ)
4. HTML / XML / JSON ๋น๊ต
| ๊ตฌ๋ถ | HTML | XML | JSON |
| ๋ชฉ์ | ๋ฐ์ดํฐ ํ์ ๋ฐ ๋ ๋๋ง | ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ์ ์ก | ๋ฐ์ดํฐ ๊ตํ ๋ฐ ํต์ |
| ๊ตฌ์กฐ | ๋ฏธ๋ฆฌ ์ ์๋ ํ๊ทธ ์ฌ์ฉ | ์ฌ์ฉ์ ์ ์ ํ๊ทธ ์ฌ์ฉ | Key-Value ๊ตฌ์กฐ |
| ๋ฌธ๋ฒ ์๊ฒฉ์ฑ | ๋น๊ต์ ๊ด๋ | ๋งค์ฐ ์๊ฒฉ | ๋จ์ํจ |
| ๋ฐ์ดํฐ ํํ | ์๊ฐ์ ์์ ์ค์ฌ | ์๋ฏธ·๊ตฌ์กฐ ์ค์ฌ | ๋ฐ์ดํฐ ์ค์ฌ |
| ๊ฐ๋ ์ฑ | ๋์ | ๋ฎ์ | ๋์ |
| ๋ฐ์ดํฐ ํฌ๊ธฐ | ์ค๊ฐ | ํผ | ์์ |
| ์ฌ์ฉ ์์ | ์น ํ์ด์ง, UI | ์ค์ ํ์ผ, ๋ฌธ์ ๊ตฌ์กฐ | REST API, ์๋ฒ ํต์ |
| ๋ฐ์ดํฐ ๊ฒ์ฆ | ๋ถ๊ฐ | ๊ฐ๋ฅ(DTD/XSD) | JSON Schema๋ก ๊ฐ๋ฅ |
| ํ์ฑ ์๋ | ๋น ๋ฆ | ๋๋ฆผ | ๋งค์ฐ ๋น ๋ฆ |
| ํ์ฅ์ฑ | ๋ฎ์ | ๋์ | ์ค๊ฐ |
5. ๋ฉด์ ํฌ์ธํธ ์ ๋ฆฌ
- HTML์ ๋ฐ์ดํฐ๋ฅผ ํ์(ํ๋ฉด ์ถ๋ ฅ) ํ๊ธฐ ์ํ ์ธ์ด
- XML์ ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์กฐํ·์ ์ฅ ํ๊ธฐ ์ํ ์ธ์ด
- JSON์ ๋ฐ์ดํฐ๋ฅผ ์ ์ก·๊ตํ ํ๊ธฐ ์ํ ๊ฒฝ๋ ํฌ๋งท
- XML์ ํ๊ทธ ๊ธฐ๋ฐ ๊ตฌ์กฐ, JSON์ Key-Value ๊ธฐ๋ฐ ๊ตฌ์กฐ
- ํ๋ ์์คํ ์์๋ REST API + JSON ์กฐํฉ์ด ํ์ค
- XML์ ์ฌ์ ํ Spring ์ค์ ํ์ผ, SOAP, ๋ ๊ฑฐ์ ์์คํ ๋ฑ์์ ์ฌ์ฉ๋จ
ํต์ฌ ์์ฝ
HTML์ ๋ฐ์ดํฐ๋ฅผ ๋ณด์ฌ์ฃผ๋ ์ธ์ด
XML์ ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์กฐํํ๋ ์ธ์ด
JSON์ ๋ฐ์ดํฐ๋ฅผ ๊ตํํ๋ ํ์
ํ์ฌ๋๊ฐ๋ณ๊ณ ํจ์จ์ ์ธ JSON์ด ํ์ค ํฌ๋งท์ผ๋ก ์๋ฆฌ์ก์
๋ฐ์ํ
'๐ Computer Science > ETC' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| API (0) | 2025.11.07 |
|---|---|
| JSON (0) | 2025.10.29 |