Notice
Recent Posts
Recent Comments
Link
| ์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
Tags
- ๋ฐฑ์ค
- ์ผ๊ธฐ
- ์ ์ ๋ถ์๋๊ตฌ
- git
- Live Template
- git ์ค๋ฅ
- Runwith
- ๋ถํ ํ ์คํธ
- serializtion
- ํ ์คํธ
- xapi
- extendwith
- AI๊ทธ๋ฆผ
- ํ์ด์ฌ
- useRef
- ์์ด์ผ๊ธฐ
- JUnit5
- application.yml
- JUnit
- playgroundAI
- ๋ฐ์ดํฐ ์ง๋ ฌํ
- LRS
- ์ฝ๋ฉํ ์คํธ
- ์์ค์ฝ๋ํ์ง
- ์๊ณ ๋ฆฌ์ฆ
- ์ฐ๊ณ๋ฐฉ์
- diary
- ์คํ
- notempty
- ๋ฐ์ดํฐ ๊ฑฐ๋ฒ๋์ค
Archives
- Today
- Total
HanSol's Oak Cask
YAML (XML vs JSON vs YAML) ๋ณธ๋ฌธ
๐ XML, JSON, YAML ๋น๊ต
| ํญ๋ชฉ | XML (Extensible Markup Language) |
JSON (JavaScript Object Notation) |
YAML (YAML Ain't Markup Language) |
| ํ์ | ํ๊ทธ ๊ธฐ๋ฐ ๋งํฌ์ ์ธ์ด (<ํ๊ทธ>๋ด์ฉ</ํ๊ทธ>) | ํค-๊ฐ ์์ ์ค๊ดํธ({})์ ๋ฐฐ์ด์ ๋๊ดํธ([]) | ๋ค์ฌ์ฐ๊ธฐ ๊ธฐ๋ฐ, ๊ฐ๊ฒฐํ ๋ฌธ๋ฒ |
| ๊ฐ๋ ์ฑ | ๋ณต์กํ๊ณ ์ฅํฉํจ | ๊ฐ๊ฒฐํ๊ณ ์ดํดํ๊ธฐ ์ฌ์ | ๊ฐ์ฅ ๊ฐ๊ฒฐํ๊ณ ์ฌ๋ ์นํ์ |
| ๊ตฌ์กฐ ํํ | ๊ณ์ธต์ ๊ตฌ์กฐ ํํ ์ฉ์ด | ๊ณ์ธต์ ๊ตฌ์กฐ ํํ ๊ฐ๋ฅ | ๋ค์ฌ์ฐ๊ธฐ๋ฅผ ํตํ ๊ณ์ธต์ ๊ตฌ์กฐ ๋ช ํ |
| ๋ฐ์ดํฐ ํ์ ์ง์ | ํ ์คํธ ์์ฃผ, ํ์ ๋ช ์ ํ์ | ๋ฌธ์์ด, ์ซ์, ๋ถ๋ฆฌ์ธ, ๋ฐฐ์ด, ๊ฐ์ฒด ์ง์ | JSON๊ณผ ์ ์ฌํ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ ๊ฐ๊ฒฐํ๊ฒ ์ง์ |
| ์ฃผ์ ์ง์ | <!-- ์ฃผ์ --> ์ฌ์ฉ ๊ฐ๋ฅ | ์ฃผ์ ์ง์ํ์ง ์์ | # ์ฃผ์ ์ฌ์ฉ ๊ฐ๋ฅ |
| ํ์ฑ ์๋ | ๋๋ฆผ (๋ฌด๊ฒ๊ณ ๋ณต์กํ ํ์ฑ ๊ณผ์ ) |
๊ฐ์ฅ ๋น ๋ฆ (๊ฐ๋ณ๊ณ ๊ฐ๋จํ ํ์ฑ ๊ณผ์ ) |
๋น ๋ฆ (๊ตฌ์กฐ๊ฐ ๋จ์ํด ํ์ฑ ์ฉ์ด) |
| ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ | ์๊ฒฉํ ๊ตฌ์กฐ๋ก ๋ฌด๊ฒฐ์ฑ ๋ณด์ฅ | ๋น๊ต์ ์ ์ฐํ ๊ตฌ์กฐ | ์ ์ฐํ์ง๋ง ๋ค์ฌ์ฐ๊ธฐ ์ค์๋ก ์ค๋ฅ ๋ฐ์ ๊ฐ๋ฅ |
| ํ์ฅ์ฑ | ํ์ฅ์ฑ ๋ฐ์ด๋จ (์คํค๋ง ์ ์ ๊ฐ๋ฅ) | ๊ฐ๋จํ ๋ฐ์ดํฐ ์ ๋ฌ์ ์ ํฉ | ๋ณต์กํ ๊ตฌ์กฐ๋ณด๋ค๋ ๊ฐ๋จํ ์ค์ ํ์ผ์ ์ ํฉ |
| ์ฌ์ฉ ์ฉ๋ | ์น ์๋น์ค (SOAP), ์ค์ ํ์ผ, ๋ฐ์ดํฐ ๊ตํ | REST API, ์น ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ ์ ๋ฌ | CI/CD ํ์ดํ๋ผ์ธ ์ค์ , Kubernetes ์ค์ , DevOps |
| ๊ธฐ์ ์คํ ํธํ์ฑ | ๋ค์ํ ์ธ์ด์์ ์ง์ (Java, .NET ๋ฑ) | ๋๋ถ๋ถ์ ์ธ์ด์์ ๊ธฐ๋ณธ ์ง์ | Python, Ruby, Docker, Kubernetes ๋ฑ์์ ์ ํธ |
๐ ์์ฝ ๋ฐ ์ฅ๋จ์
โ XML
- ์ฅ์ : ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ๋ณด์ฅ, ์คํค๋ง ๊ธฐ๋ฐ ๊ฒ์ฆ, ๋ณต์กํ ๋ฐ์ดํฐ ๊ตฌ์กฐ ํํ์ ์ ๋ฆฌ
- ๋จ์ : ๋ฌธ๋ฒ์ด ๋ณต์กํ๊ณ ๊ธธ์ด์ ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง, ํ์ฑ ์๋ ๋๋ฆผ
โ JSON
- ์ฅ์ : ๊ฐ๊ฒฐํ ๋ฌธ๋ฒ, ์น ๋ฐ ๋ชจ๋ฐ์ผ ํ๊ฒฝ์์ ๋น ๋ฅธ ๋ฐ์ดํฐ ์ ์ก์ ์ต์ ํ, ๋๋ถ๋ถ์ ์ธ์ด์์ ์ง์
- ๋จ์ : ์ฃผ์ ์ง์ ๋ถ์กฑ, ๋งค์ฐ ๋ณต์กํ ๋ฐ์ดํฐ ๊ตฌ์กฐ ํํ์๋ ์ ํ์
โ YAML
- ์ฅ์ : ์ฌ๋์๊ฒ ๊ฐ์ฅ ์น์ํ ๋ฌธ๋ฒ, ์ฃผ์ ์ง์, ์ค์ ํ์ผ์ ์ต์ ํ
- ๋จ์ : ๋ค์ฌ์ฐ๊ธฐ ์ค๋ฅ ๋ฐ์ ๊ฐ๋ฅ์ฑ, ๋๊ท๋ชจ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์๋ ๋ถ์ ํฉํ ์ ์์
๐ก ์ธ์ ๋ฌด์์ ์ฌ์ฉํ ๊น?
- XML: ๋ณต์กํ ํธ๋์ญ์ ์์คํ , ํ์คํ๋ ๋ฐ์ดํฐ ํต์ (์: SOAP)
- JSON: ์น API ํต์ , ํ๋ก ํธ์๋-๋ฐฑ์๋ ๊ฐ ๋ฐ์ดํฐ ๊ตํ
- YAML: ์ ํ๋ฆฌ์ผ์ด์ ์ค์ ํ์ผ, DevOps ํ๊ฒฝ์ ๊ตฌ์ฑ ๊ด๋ฆฌ (์: Docker Compose, Kubernetes)
๐ ์ฝ๋ ์์ : ํ์ฌ ์กฐ์ง ๋ฐ ํ๋ก์ ํธ ๊ด๋ฆฌ ๋ฐ์ดํฐ ๋ชจ๋ธ
์ด ์ฝ๋ ์์ ๋ IT ๊ธฐ์ ์ ์กฐ์ง ๊ตฌ์กฐ, ์ง์ ์ ๋ณด, ๊ธฐ์ ์คํ, ํ๋ก์ ํธ ์ธ๋ถ์ฌํญ์ XML, JSON, YAML ํ์์ผ๋ก ๊ตฌํํ ๊ฒ์ ๋๋ค. ๊ฐ ํฌ๋งท๋ณ๋ก ๋์ผํ ๋ด์ฉ์ ๋ค๋ฅด๊ฒ ํํํ์ผ๋ฉฐ, ๋ค์๊ณผ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ํฌํจํฉ๋๋ค.
๐ข 1. ํ์ฌ(Company) ์ ๋ณด
- ํ์ฌ๋ช (name): TechCorp
- ์ค๋ฆฝ์ฐ๋(established): 2001
๐ฌ 2. ๋ถ์(Departments) ์ ๋ณด
- ๋ถ์ ID(id) ๋ฐ ๋ถ์๋ช
(name):
- D001: ๊ฐ๋ฐ๋ถ์
- ๋ถ์์ฅ(Manager):
- ์ด๋ฆ(name): ํ๊ธธ๋
- ๋์ด(age): 40
- ์ด๋ฉ์ผ(email): honggildong@techcorp.com
- ๋ณด์ ์๊ฒฉ์ฆ(certifications):
- AWS Solutions Architect (๋ ๋ฒจ: ์ ๋ฌธ๊ฐ)
- ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ (๋ ๋ฒจ: ์ค๊ธ)
๐จ๐ป 3. ์ง์(Employees) ์ ๋ณด
- ์ง์ ๋ชฉ๋ก:
- ๊น์ฒ ์ (E101)
- ๊ณ ์ฉ ํํ(fullTime): ์ ๊ท์ง
- ๋์ด(age): 30
- ์ง๋ฌด(position): ๋ฐฑ์๋ ๊ฐ๋ฐ์
- ๋ณด์ ๊ธฐ์ ์คํ(skills):
- Python (Django ํ๋ ์์ํฌ)
- Java (Spring Boot ํ๋ ์์ํฌ)
- ์ฃผ์(address): ์์ธ, ์ฐํธ๋ฒํธ 12345
- ์ด์ํฌ (E102)
- ๊ณ ์ฉ ํํ(fullTime): ๊ณ์ฝ์ง
- ๋์ด(age): 28
- ์ง๋ฌด(position): ํ๋ก ํธ์๋ ๊ฐ๋ฐ์
- ๋ณด์ ๊ธฐ์ ์คํ(skills):
- JavaScript (React ํ๋ ์์ํฌ)
- TypeScript (Angular ํ๋ ์์ํฌ)
- ๊น์ฒ ์ (E101)
๐ 4. ํ๋ก์ ํธ(Projects) ์ ๋ณด
- ํ๋ก์ ํธ ๋ชฉ๋ก:
- ์ค๋งํธ ํฉํ ๋ฆฌ ์์คํ
- ํ๋ก์ ํธ ์ฝ๋(code): P001
- ์ํ(status): ์งํ์ค
- ์์ฐ(budget): 50,000,000 KRW
- ๋ง๊ฐ์ผ(deadline): 2025-12-31
- AI ์ฑ๋ด ์๋น์ค
- ํ๋ก์ ํธ ์ฝ๋(code): P002
- ์ํ(status): ์๋ฃ
- ์์ฐ(budget): 40,000 USD
- ๋ง๊ฐ์ผ(deadline): 2024-09-30
- ์ค๋งํธ ํฉํ ๋ฆฌ ์์คํ
๐ฆ XML ์์ (์ฃผ์ ํฌํจ, ์์ฑ ๋ฐ ์ค์ฒฉ ๊ตฌ์กฐ ์ฌ์ฉ)
<!-- ์ง์ ์ ๋ณด ๋ฐ์ดํฐ -->
<company name="TechCorp" established="2001">
<departments>
<!-- ๊ฐ๋ฐ ๋ถ์ ์ ๋ณด -->
<department id="D001">
<name>๊ฐ๋ฐ๋ถ์</name>
<manager>
<name>ํ๊ธธ๋</name>
<age>40</age>
<email>honggildong@techcorp.com</email>
<certifications>
<certification level="์ ๋ฌธ๊ฐ">AWS Solutions Architect</certification>
<certification level="์ค๊ธ">์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ</certification>
</certifications>
</manager>
<employees>
<employee id="E101" fullTime="true">
<name>๊น์ฒ ์</name>
<age>30</age>
<position>๋ฐฑ์๋ ๊ฐ๋ฐ์</position>
<skills>
<skill language="Python">Django</skill>
<skill language="Java">Spring Boot</skill>
</skills>
<address>
<city>์์ธ</city>
<postalCode>12345</postalCode>
</address>
</employee>
<employee id="E102" fullTime="false">
<name>์ด์ํฌ</name>
<age>28</age>
<position>ํ๋ก ํธ์๋ ๊ฐ๋ฐ์</position>
<skills>
<skill language="JavaScript">React</skill>
<skill language="TypeScript">Angular</skill>
</skills>
</employee>
</employees>
</department>
</departments>
<!-- ํ๋ก์ ํธ ๋ชฉ๋ก -->
<projects>
<project code="P001" status="์งํ์ค">
<title>์ค๋งํธ ํฉํ ๋ฆฌ ์์คํ
</title>
<budget currency="KRW">50000000</budget>
<deadline>2025-12-31</deadline>
</project>
<project code="P002" status="์๋ฃ">
<title>AI ์ฑ๋ด ์๋น์ค</title>
<budget currency="USD">40000</budget>
<deadline>2024-09-30</deadline>
</project>
</projects>
</company>
๐ฉ JSON ์์ (์ค์ฒฉ ๊ฐ์ฒด, ๋ฐฐ์ด, ๋ค์ํ ๋ฐ์ดํฐ ํ์ )
{
"company": {
"name": "TechCorp",
"established": 2001,
"departments": [
{
"id": "D001",
"name": "๊ฐ๋ฐ๋ถ์",
"manager": {
"name": "ํ๊ธธ๋",
"age": 40,
"email": "honggildong@techcorp.com",
"certifications": [
{ "name": "AWS Solutions Architect", "level": "์ ๋ฌธ๊ฐ" },
{ "name": "์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ", "level": "์ค๊ธ" }
]
},
"employees": [
{
"id": "E101",
"fullTime": true,
"name": "๊น์ฒ ์",
"age": 30,
"position": "๋ฐฑ์๋ ๊ฐ๋ฐ์",
"skills": [
{ "language": "Python", "framework": "Django" },
{ "language": "Java", "framework": "Spring Boot" }
],
"address": { "city": "์์ธ", "postalCode": "12345" }
},
{
"id": "E102",
"fullTime": false,
"name": "์ด์ํฌ",
"age": 28,
"position": "ํ๋ก ํธ์๋ ๊ฐ๋ฐ์",
"skills": [
{ "language": "JavaScript", "framework": "React" },
{ "language": "TypeScript", "framework": "Angular" }
]
}
]
}
],
"projects": [
{
"code": "P001",
"status": "์งํ์ค",
"title": "์ค๋งํธ ํฉํ ๋ฆฌ ์์คํ
",
"budget": { "amount": 50000000, "currency": "KRW" },
"deadline": "2025-12-31"
},
{
"code": "P002",
"status": "์๋ฃ",
"title": "AI ์ฑ๋ด ์๋น์ค",
"budget": { "amount": 40000, "currency": "USD" },
"deadline": "2024-09-30"
}
]
}
}
๐จ YAML ์์ (์ฃผ์ ํฌํจ, ๋ค์ํ ๋ฐ์ดํฐ ํ์ , ์ฐธ์กฐ ์ฌ์ฉ)
# ํ์ฌ ์ ๋ณด
company:
name: TechCorp
established: 2001
# ๋ถ์ ์ ๋ณด
departments:
- id: D001
name: ๊ฐ๋ฐ๋ถ์
manager:
name: ํ๊ธธ๋
age: 40
email: honggildong@techcorp.com
certifications:
- name: AWS Solutions Architect # ์ ๋ฌธ๊ฐ ์๊ฒฉ์ฆ
level: ์ ๋ฌธ๊ฐ
- name: ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ # ์ค๊ธ ์๊ฒฉ์ฆ
level: ์ค๊ธ
# ์ง์ ๋ชฉ๋ก
employees:
- id: E101
fullTime: true
name: ๊น์ฒ ์
age: 30
position: ๋ฐฑ์๋ ๊ฐ๋ฐ์
skills:
- language: Python
framework: Django
- language: Java
framework: Spring Boot
address:
city: ์์ธ
postalCode: 12345
- id: E102
fullTime: false
name: ์ด์ํฌ
age: 28
position: ํ๋ก ํธ์๋ ๊ฐ๋ฐ์
skills:
- language: JavaScript
framework: React
- language: TypeScript
framework: Angular
# ํ๋ก์ ํธ ์ ๋ณด
projects:
- code: P001
status: ์งํ์ค
title: ์ค๋งํธ ํฉํ ๋ฆฌ ์์คํ
budget:
amount: 50000000
currency: KRW
deadline: 2025-12-31
- code: P002
status: ์๋ฃ
title: AI ์ฑ๋ด ์๋น์ค
budget:
amount: 40000
currency: USD
deadline: 2024-09-30
๐ ์ฃผ์ ๊ธฐ๋ฅ ์ค๋ช ๋ฐ ์ฐจ์ด์
๊ธฐ๋ฅ XML
| XML | JSON | YAML | |
| ์ค์ฒฉ ๊ตฌ์กฐ | <ํ๊ทธ> ๋ด ์ค์ฒฉ๋ ํ๊ทธ ์ฌ์ฉ | ๊ฐ์ฒด ๋ด ์ค์ฒฉ๋ ๊ฐ์ฒด์ ๋ฐฐ์ด ์ฌ์ฉ | ๋ค์ฌ์ฐ๊ธฐ๋ฅผ ํตํ ์ค์ฒฉ ๊ตฌ์กฐ ํํ |
| ๋ฐฐ์ด ํํ | ๋ฐ๋ณต๋ <ํ๊ทธ>๋ก ํํ | [] ๋ฐฐ์ด ์ฌ์ฉ | - ๊ธฐํธ๋ก ๋ฐฐ์ด ํญ๋ชฉ ํํ |
| ์์ฑ(Attribute) | <ํ๊ทธ ์์ฑ="๊ฐ"> ํํ๋ก ํํ | ์์ฑ ๊ฐ๋ ์์ (ํค-๊ฐ์ผ๋ก๋ง ํํ) | ๋ณ๋์ ํค-๊ฐ ์์ผ๋ก ํํ |
| ์ฃผ์ ์ง์ | <!-- ์ฃผ์ ๋ด์ฉ --> | โ (์ฃผ์ ์ง์ ์ ํจ) | # ์ฃผ์ ๋ด์ฉ |
| ๋ฐ์ดํฐ ํ์ | ๋ฌธ์์ด ์ค์ฌ, ๋ณ๋ ํ์ฑ ํ์ | ๋ฌธ์์ด, ์ซ์, ๋ถ๋ฆฌ์ธ, ๋ฐฐ์ด, ๊ฐ์ฒด ์ง์ | ์๋ ํ์ ๊ฐ์ง (์: 123์ ์ซ์๋ก ์ฒ๋ฆฌ) |
| ๊ฐ๋ ์ฑ | ๊ธธ๊ณ ๋ณต์กํจ | ๊ฐ๊ฒฐํ๊ณ ์ง๊ด์ | ๋งค์ฐ ๊ฐ๊ฒฐํ๋ฉฐ ์ฌ๋ ์นํ์ |
| ํ์ฅ์ฑ | ์คํค๋ง ๊ธฐ๋ฐ ํ์ฅ์ฑ ๋ฐ์ด๋จ | ๋ฐ์ดํฐ ๊ตํ์ ์ต์ ํ | ์ค์ ํ์ผ ๋ฐ DevOps์ ์ ํฉ |
๐ก ์ด ๋ฐ์ดํฐ ๋ชจ๋ธ์ด ์ฌ์ฉ๋ ์ ์๋ ์๋๋ฆฌ์ค
- ์ฌ๋ด ํฌํธ ์์คํ : ๊ฐ ๋ถ์ ๋ฐ ์ง์์ ์ ๋ณด๋ฅผ ๊ด๋ฆฌํ๊ณ ํ๋ก์ ํธ ํํฉ์ ํ์.
- HR ์์คํ : ์ง์ ๊ธฐ์ ์คํ ๋ฐ ์๊ฒฉ์ฆ ์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ์ธ์ฌ ๋ฐฐ์น ๋ฐ ๊ต์ก ๊ณํ.
- ํ๋ก์ ํธ ๊ด๋ฆฌ ์์คํ (PMS): ํ๋ก์ ํธ ์ํ, ์์ฐ, ๋ง๊ฐ์ผ ๋ฑ์ ์ถ์ ํ๋ ๋์๋ณด๋ ๊ตฌํ.
- API ๋ฐ์ดํฐ ํต์ : JSON ํ์์ ํตํด ์น ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ ๋ฐ์ดํฐ ์ ๋ฌ.
- DevOps ๊ตฌ์ฑ ๊ด๋ฆฌ: YAML์ ์ฌ์ฉํ์ฌ ๋ฐฐํฌ ํ๊ฒฝ์ ํ๋ก์ ํธ ์ค์ ํ์ผ ๊ตฌ์ฑ.
๐ฏ ์์ฝ
- XML: ๋๊ท๋ชจ ์์คํ ์์ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ๊ณผ ์คํค๋ง ์ ์๊ฐ ํ์ํ ๊ฒฝ์ฐ ์ ํฉ (์: ๊ธ์ต, ์๋ฃ ์์คํ ).
- JSON: ์น ์ ํ๋ฆฌ์ผ์ด์ , ๋ชจ๋ฐ์ผ ์ฑ์ ๋ฐ์ดํฐ ํต์ ์์ ํ์ค ํฌ๋งท.
- YAML: ์ค์ ํ์ผ, DevOps, CI/CD ํ์ดํ๋ผ์ธ(Kubernetes, Docker Compose)์ ์ด์์ .
'์ฉ์ด, ๊ฐ๋ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ํ์๊ด๋ฆฌ ํด SVN (vs Git) (0) | 2025.02.20 |
|---|---|
| ๋ฐ์ดํฐ ๊ฑฐ๋ฒ๋์ค (1) | 2025.02.20 |
| ๋ฐ์ดํฐ ํ์ง (0) | 2025.02.20 |
| ์ ์ ๋ถ์ ๋๊ตฌ (2) | 2025.02.20 |
| ESB ์ฐ๊ณ๋ฐฉ์(vs API Gateway) (0) | 2025.02.20 |