๐ ๋ฐ์ดํฐ ํํ ํ์: JSON, XML, YAML ๋น๊ต ๋ถ์ | ๐์ ์ฒ๊ธฐ ์ค๊ธฐ ๋๋น
์์ฝ
์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ ์ํ์ ํต์ฌ ๊ฐ๋ ์ธ ๋ฐ์ดํฐ ํํ ํ์ JSON, XML, YAML์ ์ฌ์ธต ๋น๊ต ๋ถ์ํฉ๋๋ค. ๊ฐ ๊ธฐ์ ์ ํน์ง, ์ฅ๋จ์ , ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์์ ์ ํจ๊ป ์์๋ณด๊ณ ์ค๊ธฐ ๋๋น ๋ฌธ์ ๋ก ๋ง๋ฌด๋ฆฌํฉ๋๋ค.
๐ก JSON, XML, YAML์ ์์คํ ๊ฐ ๋ฐ์ดํฐ๋ฅผ ๊ตํํ๊ฑฐ๋ ์ค์ ์ ๊ด๋ฆฌํ๊ธฐ ์ํ ํ์ค ํ์์ ๋๋ค. ์ ์ฒ๊ธฐ ์ค๊ธฐ ์ํ์์ ๊ฐ ๊ธฐ์ ์ ํน์ง๊ณผ ์ฐจ์ด์ ์ ๋ฌป๋ ๋ฌธ์ ๊ฐ ์์ฃผ ์ถ์ ๋ฉ๋๋ค.
๐ ์ฃผ์ ๋ฐ์ดํฐ ํํ ํ์
์์คํ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ตํํ๊ฑฐ๋ ์ค์ ์ ๊ธฐ์ ํ๋ ค๋ฉด ์ฝ์๋ ํ์์ด ํ์ํฉ๋๋ค. JSON, XML, YAML์ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ ํํ ํ์์ ๋๋ค.
1. JSON (JavaScript Object Notation)
JSON์ JavaScript ๊ฐ์ฒด ๋ฌธ๋ฒ์ ๊ธฐ๋ฐ์ผ๋ก ํ, ๊ฐ๋ณ๊ณ ์ฌ๋์ด ์ฝ๊ธฐ ์ฌ์ด ํ ์คํธ ๊ธฐ๋ฐ์ ๋ฐ์ดํฐ ๊ตํ ํ์์ ๋๋ค.
- ํน์ง:
key-value
์์ผ๋ก ์ด๋ฃจ์ด์ง ๋ฐ์ดํฐ ๊ฐ์ฒด.- ๋จ์ํ ๊ตฌ์กฐ๋ก ํ์ฑ(ํด์)์ด ๋น ๋ฅด๊ณ ๋ฉ๋ชจ๋ฆฌ ์๋ชจ๊ฐ ์ ์.
- ์น ํ๊ฒฝ, ํนํ REST API์์ ์ฃผ๋ก ์ฌ์ฉ๋จ.
- ์์:
{
"name": "๊น์ฒ ์",
"age": 30,
"isStudent": false,
"courses": ["์๋ฃ๊ตฌ์กฐ", "์๊ณ ๋ฆฌ์ฆ"]
}
2. XML (eXtensible Markup Language)
XML์ ํ๊ทธ(<>
)๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ์ ๊ตฌ์กฐ๋ฅผ ๊ณ์ธต์ ์ผ๋ก ํํํ๋ ๋งํฌ์
์ธ์ด์
๋๋ค. HTML๊ณผ ์ ์ฌํ์ง๋ง, ์ฌ์ฉ์๊ฐ ์ง์ ํ๊ทธ๋ฅผ ์ ์ํ ์ ์๋ค๋ ํน์ง์ด ์์ต๋๋ค.
- ํน์ง:
- ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ๋ฐ์ดํฐ์ ์๋ฏธ์ ๊ด๊ณ๋ฅผ ๋ช ํํ๊ฒ ํํ.
- ํ์ฅ์ฑ์ด ๋ฐ์ด๋ ๋ณต์กํ ๋ฐ์ดํฐ ํํ์ ์ฉ์ด.
- ๊ณผ๊ฑฐ ์น ์๋น์ค(SOAP)๋ ๋ค์ํ ์์คํ ์ ์ค์ ํ์ผ์์ ๋ง์ด ์ฌ์ฉ๋จ.
- ์์:
<person>
<name>๊น์ฒ ์</name>
<age>30</age>
<isStudent>false</isStudent>
<courses>
<course>์๋ฃ๊ตฌ์กฐ</course>
<course>์๊ณ ๋ฆฌ์ฆ</course>
</courses>
</person>
3. YAML (YAML Ain't Markup Language)
YAML์ ์ฌ๋์ด ์ฝ๊ณ ์ฐ๊ธฐ ํธํ ๊ฒ์ ์ค์ ์ ๋ ๋ฐ์ดํฐ ์ง๋ ฌํ ํ์์ ๋๋ค. ๋ณต์กํ ์ค์ ํ์ผ์ ์์ฑํ๋ ๋ฐ ๋งค์ฐ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค.
- ํน์ง:
- ๋ค์ฌ์ฐ๊ธฐ(indentation)๋ก ๋ฐ์ดํฐ์ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ํํํ์ฌ ๊ฐ๋ ์ฑ์ด ๋์.
- ์ฃผ์(
#
)์ ์ฌ์ฉํ ์ ์์ด ์ค๋ช ์ถ๊ฐ๊ฐ ์ฉ์ด. - JSON์ ์์ ์งํฉ(superset)์ด๋ฏ๋ก, ๋๋ถ๋ถ์ YAML ํ์๋ JSON ๋ฌธ์๋ฅผ ํด์ํ ์ ์์.
- ์์:
# ์ฌ๋ ์ ๋ณด
person:
name: ๊น์ฒ ์
age: 30
isStudent: false
courses:
- ์๋ฃ๊ตฌ์กฐ
- ์๊ณ ๋ฆฌ์ฆ
๐ ๋ฐ์ดํฐ ํํ ํ์ ๋น๊ต
๊ตฌ๋ถ | JSON | XML | YAML |
---|---|---|---|
๊ฐ๋ ์ฑ | ๋์ | ๋ณดํต (ํ๊ทธ ๋๋ฌธ์ ๋ณต์ก) | ๋งค์ฐ ๋์ (๊ฐ๊ฒฐํจ) |
๊ตฌ์กฐ ํํ | key-value ์, ๊ดํธ {} [] | ํ๊ทธ <> | ๋ค์ฌ์ฐ๊ธฐ, ํ์ดํ - |
์ฃผ์ | ์ง์ ์ ํจ | ์ง์ ํจ <!-- --> | ์ง์ ํจ # |
์ฃผ ์ฌ์ฉ์ฒ | API ํต์ , ์น ์ ํ๋ฆฌ์ผ์ด์ | SOAP ์น ์๋น์ค, ๋ฌธ์ ๊ตฌ์กฐ ์ ์ | ์ค์ ํ์ผ (Docker, Kubernetes) |
์คํค๋ง | ์์ (JSON Schema ๋ณ๋ ์ฌ์ฉ) | DTD, XSD๋ก ๋ด์ฅ ์ง์ | ์คํค๋ง ์์ |
ํ์ฑ ์๋ | ๋น ๋ฆ | ์๋์ ์ผ๋ก ๋๋ฆผ | JSON๋ณด๋ค ๋๋ฆผ |
๐ ์ ์ฒ๊ธฐ ์ค๊ธฐ ๋๋น ๋ฌธ์
๋ฌธ์ | JavaScript ๊ฐ์ฒด ๋ฌธ๋ฒ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ, key-value ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ํํํ๋ ๊ฐ๋ฒผ์ด ๋ฐ์ดํฐ ๊ตํ ํ์์ ๋ฌด์์ธ๊ฐ? |
๋ต๋ณ | |
์ ๋ต | ์ ๋ต ๋ณด๊ธฐ |
๋ฌธ์ | ์ฌ์ฉ์ ์ ์ ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ์ ๊ตฌ์กฐ๋ฅผ ๊ณ์ธต์ ์ผ๋ก ํํํ๋, ํ์ฅ์ฑ์ด ๋ฐ์ด๋ ๋งํฌ์ ์ธ์ด๋ ๋ฌด์์ธ๊ฐ? |
๋ต๋ณ | |
์ ๋ต | ์ ๋ต ๋ณด๊ธฐ |
๋ฌธ์ | ๋ค์ฌ์ฐ๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ์ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ํํํ๋ฉฐ, ์ฌ๋์ด ์ฝ๊ณ ์ฐ๊ธฐ ํธํด ์ฃผ๋ก ์ค์ ํ์ผ์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ ํํ ํ์์ ๋ฌด์์ธ๊ฐ? |
๋ต๋ณ | |
์ ๋ต | ์ ๋ต ๋ณด๊ธฐ |
๋ฌธ์ | JSON๊ณผ ๋น๊ตํ์ ๋, XML์ด ๊ฐ์ง๋ ์ฃผ์ ์ฅ์ ์ค ํ๋๋ก DTD๋ XSD๋ฅผ ํตํด ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ์ ํจ์ฑ์ ๊ฒ์ฆํ ์ ์๋ ํน์ง์ ๋ฌด์๊ณผ ๊ด๋ จ์ด ๊น์๊ฐ? |
๋ต๋ณ | |
์ ๋ต | ์ ๋ต ๋ณด๊ธฐ |