XML(eXtensible Markup Language)
in Study / Software Engineering on Programming, Software engineering
๐ฅ๏ธ XML(eXtensible Markup Language)์ด๋?
XML์ eXtensible Markup Language์ ์ฝ์๋ก, ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์กฐํํ๊ณ ์ ์ฅํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋งํฌ์ ์ธ์ด์. HTML๊ณผ ์ ์ฌํ ํ๊ทธ(tag) ๊ธฐ๋ฐ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง์ง๋ง, HTML์ ๋ฐ์ดํฐ๋ฅผ ํํํ๋ ๋ฐ ์ง์คํ๋ ๋ฐ๋ฉด, XML์ ๋ฐ์ดํฐ๋ฅผ ์ ์ํ๊ณ ์ ์ฅํ๋ ๋ฐ ์ด์ ์ด ๋ง์ถฐ์ ธ ์์.
๐ฅ๏ธ XML์ ํน์ง
- ํ์ฅ ๊ฐ๋ฅ์ฑ: ์ฌ์ฉ์๊ฐ ์ํ๋ ํ๊ทธ๋ฅผ ์ ์ํ ์ ์์.
- ๊ณ์ธต์ ๊ตฌ์กฐ: ํธ๋ฆฌ(Tree) ๊ตฌ์กฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ฉฐ, ๋ถ๋ชจ-์์ ๊ด๊ณ๋ฅผ ๊ฐ์ง.
- ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ์ ์ก: JSON๊ณผ ์ ์ฌํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ ์กํ๋ ๋ฐ ์ ํฉํจ.
- ํ๋ซํผ ๋ ๋ฆฝ์ฑ: ๋ค์ํ ์์คํ ๊ฐ ๋ฐ์ดํฐ ๊ตํ์ด ๊ฐ๋ฅํจ.
- ๊ฐ๋ ์ฑ: ์ฌ๋์ด ์ฝ๊ธฐ ์ฌ์ด ๊ตฌ์กฐ๋ก ๋์ด ์์.
๐ฅ๏ธ XML ๊ธฐ๋ณธ ๊ตฌ์กฐ
XML ๋ฌธ์๋ ๋ฃจํธ ์์(root element)๋ฅผ ๊ฐ์ง๋ฉฐ, ์ฌ๋ฌ ๊ฐ์ ์ค์ฒฉ๋ ์์(element)๋ก ๊ตฌ์ฑ๋จ.
<?xml version="1.0" encoding="UTF-8"?>
<game>
<player>
<name>Player</name>
<level>6</level>
<health>120</health>
<mana>50</mana>
</player>
<inventory>
<item id="1" type="weapon">
<name>Excalibur</name>
<damage>50</damage>
</item>
<item id="2" type="potion">
<name>Health Potion</name>
<heal>30</heal>
</item>
</inventory>
</game>
โโโโโโโโโโโโฒ ๊ฒ์ ๊ฐ๋ฐ์ ํ์ฉํ XML ์์
์ค๋ช
<?xml version="1.0" encoding="UTF-8"?>
โ XML ์ ์ธ๋ถ (๋ฌธ์์ ๋ฒ์ ๊ณผ ์ธ์ฝ๋ฉ ์ง์ )<game>
โ ์ต์์ ๋ฃจํธ ์์<player>
โ ํ๋ ์ด์ด ์ ๋ณด<name>
,<level>
,<health>
,<mana>
โ ํ๋ ์ด์ด์ ์์ฑ
<inventory>
โ ์ธ๋ฒคํ ๋ฆฌ ์์<item>
โ ๊ฒ์ ๋ด ์์ดํ (์์ฑ :id
,type
)<name>
,<damage>
,<heal>
โ ์์ดํ ์์ฑ๊ฐ ์ ์
๐ฅ๏ธ XML ๋ฌธ๋ฒ ๊ท์น
- ๋ฐ๋์ ๋ฃจํธ ์์(root element)๋ฅผ ํฌํจํด์ผ ํจ
- ํ๊ทธ๋ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํจ (์:
<Name>
๊ณผ<name>
์ ๋ค๋ฆ) - ๋ชจ๋ ํ๊ทธ๋ ๋ซํ ์์ด์ผ ํจ (
<tag></tag>
๋๋<tag />
) - ์์ฑ ๊ฐ์ ๋ฐ๋์ ํฐ๋ฐ์ดํ(โโ) ๋๋ ์์๋ฐ์ดํ(โโ)๋ก ๊ฐ์ธ์ผ ํจ
- ํน์ ๋ฌธ์๋ ์ํฐํฐ(Entity)๋ก ํํํด์ผ ํจ (์:
<
โ<
,>
โ>
)
๐ฅ๏ธ XML๊ณผ JSON ๋น๊ต
๋น๊ต ํญ๋ชฉ | XML | JSON |
---|---|---|
๋ฐ์ดํฐ ํํ ๋ฐฉ์ | ํ๊ทธ ๊ธฐ๋ฐ | ํค-๊ฐ ์ ๊ธฐ๋ฐ |
๊ฐ๋ ์ฑ | ์ฌ๋์ด ์ฝ๊ธฐ ์ฌ์ | ๋ ๊ฐ๊ฒฐํ๊ณ ์ง๊ด์ ์ |
๋ฐ์ดํฐ ํฌ๊ธฐ | ํ๊ทธ๋ก ์ธํด ๋ค์ ํผ | ์๋์ ์ผ๋ก ์์ |
ํ์ฑ ์๋ | ๋๋ฆผ (DOM ๊ธฐ๋ฐ) | ๋น ๋ฆ (JavaScript์์ ๋ฐ๋ก ์ฌ์ฉ ๊ฐ๋ฅ) |
ํ์ฅ์ฑ | ์์ ๋ก์ด ํ๊ทธ ์ ์ ๊ฐ๋ฅ | ํค-๊ฐ ํํ๋ก ์ ํ๋จ |
๐ฅ๏ธ XML์ ํ์ฉ ์ฌ๋ก
- ์น ์๋น์ค (SOAP, RSS, Atom ํผ๋)
- ์ค์ ํ์ผ (config.xml, AndroidManifest.xml)
- ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ๊ตํ (๋ฐ์ดํฐ๋ฒ ์ด์ค, API ์๋ต)
- ๋ฌธ์ ๊ตฌ์กฐ ์ ์ (XHTML, SVG, XSLT)