CodeGym/Java Blog/๋ฌด์ž‘์œ„์˜/์ž๋ฐ” ์ง๋ ฌํ™” ํ˜•์‹
John Squirrels
๋ ˆ๋ฒจ 41
San Francisco

์ž๋ฐ” ์ง๋ ฌํ™” ํ˜•์‹

๋ฌด์ž‘์œ„์˜ ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
ํšŒ์›
์•ˆ๋…•! ์ง๋ ฌํ™”์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ง๋ ฌํ™”์— ๋Œ€ํ•œ ๊ฐ•์˜๊ฐ€ ์ด๋ฏธ ์žˆ์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•˜์‹ค ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ํ–ˆ์Šต๋‹ˆ๋‹ค :) ์—ฌ๊ธฐ ์ฒซ ๋ฒˆ์งธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค ๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ ๋‘ ๋ฒˆ์งธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง๋ ฌํ™”๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€, ์™œ ์ง๋ ฌํ™”๊ฐ€ ํ•„์š”ํ•œ์ง€, ์ง๋ ฌํ™”๋ฅผ ์œ„ํ•ด Java์— ์–ด๋–ค ๋„๊ตฌ๊ฐ€ ์žˆ๋Š”์ง€ ์ž˜ ๊ธฐ์–ต๋‚˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์ด ๋‹จ์›์„ ํ†ตํ•ด ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜ ์ˆ˜์—…์€ ์ด๋ก ์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ง๋ ฌํ™” ํ˜•์‹์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋จผ์ € ์ง๋ ฌํ™”๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์ƒ๊ฐํ•ด ๋ด…์‹œ๋‹ค. ์ง๋ ฌํ™”๋Š” ๊ฐœ์ฒด์˜ ์ƒํƒœ๋ฅผ ์ผ๋ จ์˜ ๋ฐ”์ดํŠธ๋กœ ์ €์žฅํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค. ์—ญ์ง๋ ฌํ™”๋Š” ์ด๋Ÿฌํ•œ ๋ฐ”์ดํŠธ์—์„œ ๊ฐœ์ฒด๋ฅผ ๋ณต์›ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค. Java ๊ฐœ์ฒด๋Š” ์ง๋ ฌํ™”๋˜์–ด ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด(์˜ˆ: ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ๋กœ) ์ „์†ก๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”์ดํŠธ ์‹œํ€€์Šค๋Š” ๋‹ค๋ฅธ ํ˜•์‹์œผ๋กœ ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ์ปดํ“จํ„ฐ ์‚ฌ์šฉ์„ ํ†ตํ•ด ์ด ๊ฐœ๋…์— ์ต์ˆ™ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ „์ž์ฑ…(๋˜๋Š” ๊ฐ„๋‹จํ•œ ํ…์ŠคํŠธ ๋ฌธ์„œ)์€ ๋‹ค์–‘ํ•œ ํ˜•์‹์œผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • docx(๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ ์›Œ๋“œ ํ˜•์‹);
  • pdf(Adobe ํ˜•์‹);
  • mobi(Amazon Kindle ์žฅ์น˜์—์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋จ)
  • ๊ทธ๋ฆฌ๊ณ  ํ›จ์”ฌ ๋” (ePub, djvu, fb2 ๋“ฑ).
๊ฐ๊ฐ์˜ ๊ฒฝ์šฐ ๋ชฉํ‘œ๋Š” ๋™์ผํ•ด ๋ณด์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ํ˜•์‹์œผ๋กœ ํ…์ŠคํŠธ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์‚ฌ๋žŒ๋“ค์€ ๋‹ค์–‘ํ•œ ํ˜•์‹์„ ๋งŽ์ด ๋ฐœ๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์ด ํ•˜๋Š” ์ผ์˜ ์„ธ๋ถ€ ์‚ฌํ•ญ์— ๋“ค์–ด๊ฐ€์ง€ ์•Š๊ณ  ์šฐ๋ฆฌ๋Š” ๊ทธ๋“ค์ด ๊ทธ๋Ÿด ๋งŒํ•œ ์ด์œ ๊ฐ€ ์žˆ์—ˆ๋‹ค๊ณ  ์ถ”์ธกํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ํ˜•์‹์€ ๋‹ค๋ฅธ ํ˜•์‹๊ณผ ๋น„๊ตํ•  ๋•Œ ๊ณ ์œ ํ•œ ์žฅ์ ๊ณผ ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋™์ผํ•œ ์›์น™์— ๋”ฐ๋ผ ๋‹ค์–‘ํ•œ ์ง๋ ฌํ™” ํ˜•์‹์ด ๋งŒ๋“ค์–ด์กŒ์„๊นŒ์š”? ํ›Œ๋ฅญํ•œ ์ถ”์ธก์ž…๋‹ˆ๋‹ค, ํ•™์ƒ! :) ๋งž์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์œ ์„ (๋˜๋Š” ๋ฌด์„ )์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ๊ฒƒ์€ ๊นŒ๋‹ค๋กœ์šด ์ž‘์—…์ด๋ฉฐ ๋งŽ์€ ์š”์†Œ๊ฐ€ ๊ด€๋ จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋Š” ์‚ฌ๋žŒ์€ ๋ˆ„๊ตฌ์ž…๋‹ˆ๊นŒ? ์–ด๋””๋กœ? ์–ด๋–ค ๋ณผ๋ฅจ? ์ˆ˜์‹ ์ž๋Š” ์‚ฌ๋žŒ์ž…๋‹ˆ๊นŒ ์•„๋‹ˆ๋ฉด ์ปดํ“จํ„ฐ์ž…๋‹ˆ๊นŒ(์˜ˆ: ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ)? ์–ด๋–ค ์žฅ์น˜๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ๊ฒƒ์ธ๊ฐ€? ๋ถ„๋ช…ํžˆ ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ํ•œ ์Šค๋งˆํŠธํฐ์—์„œ ๋‹ค๋ฅธ ์Šค๋งˆํŠธํฐ์œผ๋กœ 500KB ์ด๋ฏธ์ง€๋ฅผ ๋ณด๋‚ด๋Š” ๊ฒƒ์€ ํ•œ ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ์ตœ์ ์œผ๋กœ ์••์ถ•ํ•˜๊ณ  ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ ์ „์†กํ•ด์•ผ ํ•˜๋Š” 500ํ…Œ๋ผ๋ฐ”์ดํŠธ์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์™„์ „ํžˆ ๋‹ค๋ฅธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฃผ์š” ์ง๋ ฌํ™” ํ˜•์‹์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ  ๊ฐ ํ˜•์‹์˜ ์žฅ๋‹จ์ ์„ ๊ณ ๋ คํ•ด ๋ด…์‹œ๋‹ค!

JSON

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด ํ‘œ๊ธฐ๋ฒ•. ๋‹น์‹ ์€ ์ด๋ฏธ ์ด ํ˜•์‹์— ๋Œ€ํ•ด ์กฐ๊ธˆ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค! ์šฐ๋ฆฌ๋Š” ์ด ์ˆ˜์—… ์—์„œ ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ–ˆ๊ณ  ๋ฐ”๋กœ ์—ฌ๊ธฐ์—์„œ JSON์œผ๋กœ์˜ ์ง๋ ฌํ™”๋ฅผ ๋‹ค๋ฃจ์—ˆ์Šต๋‹ˆ๋‹ค . ์ด์œ  ๋•Œ๋ฌธ์— ์ด๋ฆ„์„ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. JSON์œผ๋กœ ๋ณ€ํ™˜๋œ Java ๊ฐ์ฒด๋Š” ์‹ค์ œ๋กœ JavaScript์˜ ๊ฐ์ฒด์™€ ๋˜‘๊ฐ™์ด ๋ณด์ž…๋‹ˆ๋‹ค. ๊ฐœ์ฒด๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด JavaScript๋ฅผ ์•Œ ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค.
{
   "title": "War and Peace",
   "author": "Lev Tolstoy",
   "year": 1869
}
์šฐ๋ฆฌ๋Š” ๋‹จ์ผ ๊ฐ์ฒด๋ฅผ ๋ณด๋‚ด๋Š” ๊ฒƒ์— ๊ตญํ•œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. JSON ํ˜•์‹์€ ๊ฐœ์ฒด ๋ฐฐ์—ด์„ ๋‚˜ํƒ€๋‚ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
[
 {
   "title": "War and Peace",
   "author": "Lev Tolstoy",
   "year": 1869
 },

 {
   "title": "Demons",
   "author": "Fyodor Dostoyevsky",
   "year": 1872
 },

 {
   "title": "The Seagull",
   "author": "Anton Chekhov",
   "year": 1896
 }
]
JSON์€ JavaScript ๊ฐœ์ฒด๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฏ€๋กœ ๋‹ค์Œ JavaScript ๋ฐ์ดํ„ฐ ํ˜•์‹์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฌธ์ž์—ด;
  • ์ˆซ์ž;
  • ์‚ฌ๋ฌผ;
  • ๋ฐฐ์—ด;
  • ๋ถ€์šธ(์ฐธ ๋ฐ ๊ฑฐ์ง“);
  • ์—†๋Š”.
JSON์˜ ์ด์ ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
  1. ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ํ˜•์‹. ์ตœ์ข… ์‚ฌ์šฉ์ž๊ฐ€ ์ธ๊ฐ„์ธ ๊ฒฝ์šฐ ์ด๋Š” ๋ช…๋ฐฑํ•œ ์ด์ ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์„œ๋ฒ„์— ๋น„ํ–‰ ์ผ์ •์ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ง‘์—์„œ ์ž์‹ ์˜ ์ปดํ“จํ„ฐ์— ์•‰์•„ ์žˆ๋Š” ์ธ๊ฐ„ ๊ณ ๊ฐ์€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ํ˜•์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— JSON์€ ํ›Œ๋ฅญํ•œ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค.

  2. ๊ฐ„๋‹จ. ๋งค์šฐ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค :) ์œ„์—์„œ ์šฐ๋ฆฌ๋Š” ๋‘ ๊ฐœ์˜ JSON ํŒŒ์ผ์˜ ์˜ˆ๋ฅผ ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  JavaScript(JavaScript ๊ฐ์ฒด๋Š” ๋งํ•  ๊ฒƒ๋„ ์—†๊ณ )์— ๋Œ€ํ•ด ๋“ค์–ด๋ณธ ์ ์ด ์—†๋”๋ผ๋„ ๊ฑฐ๊ธฐ์— ์„ค๋ช…๋œ ๊ฐ์ฒด ์ข…๋ฅ˜๋ฅผ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    ์ „์ฒด JSON ๋ฌธ์„œ๋Š” ๋ช‡ ์žฅ์˜ ์‚ฌ์ง„์ด ์žˆ๋Š” ์›น ํŽ˜์ด์ง€ ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

  3. ๋„๋ฆฌ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. JavaScript๋Š” ์ง€๋ฐฐ์ ์ธ ํ”„๋ŸฐํŠธ ์—”๋“œ ์–ธ์–ด์ด๋ฉฐ ์ž์ฒด ์š”๊ตฌ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค. JSON์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ˆ˜๋งŽ์€ ์›น ์„œ๋น„์Šค์—์„œ JSON์„ ๋ฐ์ดํ„ฐ ๊ตํ™˜ ํ˜•์‹์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์ตœ์‹  IDE๋Š” JSON ํ˜•์‹(IntelliJ IDEA ํฌํ•จ)์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. JSON์œผ๋กœ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ชจ๋“  ์ข…๋ฅ˜์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ๋Œ€ํ•ด ๋งŽ์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด Java ๊ฐœ์ฒด๋ฅผ JSON์œผ๋กœ ์ง๋ ฌํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์› ๋˜ ์ˆ˜์—…์—์„œ ์ด๋ฏธ Jackson ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์ž‘์—…ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Jackson ์™ธ์—๋„ Google์˜ ๋งค์šฐ ํŽธ๋ฆฌํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ GSON์ด ์žˆ์Šต๋‹ˆ๋‹ค.

YAML

์ฒ˜์Œ์— YAML์€ "Yet Another Markup Language"์˜ ์•ฝ์ž์˜€์Šต๋‹ˆ๋‹ค. ์‹œ์ž‘ ๋‹น์‹œ์—๋Š” XML์˜ ๊ฒฝ์Ÿ์ž๋กœ ์ž๋ฆฌ ์žก์•˜์Šต๋‹ˆ๋‹ค. ์ด์ œ ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ YAML์€ "YAML์€ ๋งˆํฌ์—… ์–ธ์–ด๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค"๋ฅผ ์˜๋ฏธํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ •ํ™•ํžˆ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ปดํ“จํ„ฐ ๊ฒŒ์ž„์—์„œ ์บ๋ฆญํ„ฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด Warrior, Mage, Thief๋ผ๋Š” 3๊ฐœ์˜ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ์ƒํ•ด ๋ด…์‹œ๋‹ค. ๊ทธ๋“ค์€ ํž˜, ๋ฏผ์ฒฉ์„ฑ, ์ง€๊ตฌ๋ ฅ, ๋ฌด๊ธฐ ์„ธํŠธ์™€ ๊ฐ™์€ ํŠน์„ฑ์„ ๊ฐ–์Šต๋‹ˆ๋‹ค. ํด๋ž˜์Šค๋ฅผ ์„ค๋ช…ํ•˜๋Š” YAML ํŒŒ์ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
classes:
 class-1:
   title: Warrior
   power: 8
   agility: 4
   stamina: 7
   weapons:
     - sword
     - spear

 class-2:
   title: Mage
   power: 5
   agility: 7
   stamina: 5
   weapons:
     - magic staff

 class-3:
   title: Thief
   power: 6
   agility: 6
   stamina: 5
   weapons:
     - dagger
     - poison
YAML ํŒŒ์ผ์—๋Š” ํŠธ๋ฆฌ ๊ตฌ์กฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ์š”์†Œ๋Š” ๋‹ค๋ฅธ ์š”์†Œ์— ์ค‘์ฒฉ๋ฉ๋‹ˆ๋‹ค. ๊ฐ ๋ ˆ๋ฒจ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ํŠน์ • ์ˆ˜์˜ ๊ณต๋ฐฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ค‘์ฒฉ์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. YAML ํ˜•์‹์˜ ์žฅ์ ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
  1. ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ ์„ค๋ช… ์—†์ด YAML ํŒŒ์ผ์„ ๋ณด๋”๋ผ๋„ ์„ค๋ช…ํ•˜๋Š” ๊ฐœ์ฒด๋ฅผ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. YAML์€ ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ์–ด์„œ yaml.org ์›น์‚ฌ์ดํŠธ๋Š” ์ผ๋ฐ˜ YAML ํŒŒ์ผ์ž…๋‹ˆ๋‹ค :)

  2. ์ปดํŒฉํŠธํ•จ. ํŒŒ์ผ ๊ตฌ์กฐ๋Š” ๊ณต๋ฐฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋Œ€๊ด„ํ˜ธ๋‚˜ ์ธ์šฉ ๋ถ€ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

  3. ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. JSON ๋ฐ ๊ธฐํƒ€ ์—ฌ๋Ÿฌ ํ˜•์‹์— ๋น„ํ•ด YAML์˜ ํฐ ์žฅ์ ์€ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ง€์›ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

    • !!map
      ์ค‘๋ณต์„ ๊ฐ€์งˆ ์ˆ˜ ์—†๋Š” ์ •๋ ฌ๋˜์ง€ ์•Š์€ ํ‚ค-๊ฐ’ ์Œ ์„ธํŠธ์ž…๋‹ˆ๋‹ค.

    • !!omap
      ์ค‘๋ณต๋  ์ˆ˜ ์—†๋Š” ํ‚ค-๊ฐ’ ์Œ์˜ ์ •๋ ฌ๋œ ์‹œํ€€์Šค์ž…๋‹ˆ๋‹ค.

    • !!pairs:
      ์ค‘๋ณต์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ํ‚ค-๊ฐ’ ์Œ์˜ ์ •๋ ฌ๋œ ์‹œํ€€์Šค์ž…๋‹ˆ๋‹ค.

    • !!set
      ์„œ๋กœ ๊ฐ™์ง€ ์•Š์€ ๊ฐ’์˜ ์ •๋ ฌ๋˜์ง€ ์•Š์€ ์‹œํ€€์Šค์ž…๋‹ˆ๋‹ค.

    • !!seq
      ์ž„์˜ ๊ฐ’์˜ ์‹œํ€€์Šค.

    Java์—์„œ ์ด๋Ÿฌํ•œ ๊ตฌ์กฐ ์ค‘ ์ผ๋ถ€๋ฅผ ์ธ์‹ํ•˜๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค! :) ์ด๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ YAML๋กœ ์ง๋ ฌํ™”ํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

  4. ์•ต์ปค ๋ฐ ๋ณ„์นญ ์‚ฌ์šฉ ๊ธฐ๋Šฅ

    ์ด๋Ÿฌํ•œ ๋งˆ์ปค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด YAML ํŒŒ์ผ์—์„œ ์ผ๋ถ€ ์š”์†Œ๋ฅผ ์‹๋ณ„ํ•œ ๋‹ค์Œ ๋ฐ˜๋ณต์ ์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ํŒŒ์ผ์˜ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์—์„œ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. & ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ต์ปค๋ฅผ ๋งŒ๋“ค๊ณ  *๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ„์นญ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค .

    Leo Tolstoy์˜ ์ฑ…์„ ์„ค๋ช…ํ•˜๋Š” ํŒŒ์ผ์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์ฑ…์˜ ์ €์ž ์ด๋ฆ„์„ ์ž‘์„ฑํ•˜์ง€ ์•Š์œผ๋ ค๋ฉด ๊ฐ„๋‹จํ•˜๊ฒŒ leo ์•ต์ปค๋ฅผ ๋งŒ๋“ค๊ณ  ํ•„์š”ํ•  ๋•Œ ๋ณ„์นญ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค.

    books:
     book-1:
       title: War and Peace
       author: &leo Leo Tolstoy
       year: 1869
    
     book-2:
       title: Anna Karenina
       author: *leo
       year: 1873
    
     book-3:
       title: Family Happiness
       author: *leo
       year: 1859

    ์ด ํŒŒ์ผ์ด ๊ตฌ๋ฌธ ๋ถ„์„๋  ๋•Œ "Leo Tolstoy" ๊ฐ’์ด ๋ณ„์นญ์ด ์žˆ๋Š” ์˜ฌ๋ฐ”๋ฅธ ์œ„์น˜์—์„œ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค.

  5. YAML์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฅธ ํ˜•์‹์œผ๋กœ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด JSON:

    books: [
            {
              "title": "War and Peace",
              "author": "Leo Tolstoy",
              "year": 1869
            },
    
            {
              "title": "Anna Karenina",
              "author": "Leo Tolstoy",
              "year": 1873
            },
    
            {
              "title": "Family Happiness",
              "author": "Leo Tolstoy",
              "year": 1859
            }
          ]

๊ธฐํƒ€ ์ง๋ ฌํ™” ํ˜•์‹

XML

์ด ํ˜•์‹์€ ํƒœ๊ทธ ํŠธ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.
<book>
   <title>Harry Potter and the Philosopherโ€™s Stone</title>
   <author>J. K. Rowling</author>
   <year>1997</year>
</book>
๊ฐ ์š”์†Œ๋Š” ์—ฌ๋Š” ํƒœ๊ทธ์™€ ๋‹ซ๋Š” ํƒœ๊ทธ(<> ๋ฐ </>)๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ฐ ์š”์†Œ๋Š” ์ค‘์ฒฉ๋œ ์š”์†Œ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. XML์€ JSON ๋ฐ YAML๋งŒํผ ์ข‹์€ ๊ณตํ†ต ํ˜•์‹์ž…๋‹ˆ๋‹ค(์‹ค์ œ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๋Š” ๊ฒฝ์šฐ). XML์— ๋Œ€ํ•œ ๋ณ„๋„์˜ ๊ฐ•์˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค .

BSON(์ด์ง„ JSON)

์ด๋ฆ„์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด BSON์€ JSON๊ณผ ๋งค์šฐ ์œ ์‚ฌํ•˜์ง€๋งŒ ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์—†์œผ๋ฉฐ ์ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ์ด๋ฏธ์ง€ ๋ฐ ๊ธฐํƒ€ ์ฒจ๋ถ€ ํŒŒ์ผ์„ ์ €์žฅํ•˜๊ณ  ์ „์†กํ•˜๋Š” ๋ฐ ๋งค์šฐ ์ข‹์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ BSON์€ JSON์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ์ผ๋ถ€ ๋ฐ์ดํ„ฐ ์œ ํ˜•์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด BSON ํŒŒ์ผ์—๋Š” ๋‚ ์งœ(๋ฐ€๋ฆฌ์ดˆ ํ˜•์‹) ๋˜๋Š” JavaScript ์ฝ”๋“œ ์กฐ๊ฐ์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€์ค‘์ ์ธ MongoDB NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ •๋ณด๋ฅผ BSON ํ˜•์‹์œผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

์œ„์น˜ ๊ธฐ๋ฐ˜ ํ”„๋กœํ† ์ฝœ

๊ฒฝ์šฐ์— ๋”ฐ๋ผ ์ „์†ก๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์–‘์„ ๋Œ€ํญ ์ค„์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ๊ณ  ๋กœ๋“œ๋ฅผ ์ค„์—ฌ์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ). ์ด ์ƒํ™ฉ์—์„œ ์œ„์น˜ ๊ธฐ๋ฐ˜ ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๋งค๊ฐœ๋ณ€์ˆ˜ ์ž์ฒด์˜ ์ด๋ฆ„ ์—†์ด ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
"Leo Tolstoy" | "Anna Karenina" | 1873
์ด ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ๋Š” ์ „์ฒด JSON ํŒŒ์ผ๋ณด๋‹ค ๋ช‡ ๋ฐฐ ์ ์€ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๋‹ค๋ฅธ ์ง๋ ฌํ™” ํ˜•์‹๋„ ์žˆ์ง€๋งŒ ์ง€๊ธˆ ๋‹น์žฅ ๋‹ค ์•Œ ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค :) ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•  ๋•Œ ํ˜„์žฌ ์‚ฐ์—… ํ‘œ์ค€ ํ˜•์‹์— ์ต์ˆ™ํ•˜๊ณ  ๊ทธ ์žฅ์ ๊ณผ ์ฐจ์ด์ ์„ ๊ธฐ์–ตํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋˜ ๋‹ค๋ฅธ. ์ด๊ฒƒ์œผ๋กœ ์ˆ˜์—…์ด ๋๋‚ฉ๋‹ˆ๋‹ค :) ์˜ค๋Š˜ ๋ช‡ ๊ฐ€์ง€ ๊ณผ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋งˆ์„ธ์š”! ๋‹ค์Œ ์‹œ๊ฐ„๊นŒ์ง€! :)
์ฝ”๋ฉ˜ํŠธ
  • ์ธ๊ธฐ
  • ์‹ ๊ทœ
  • ์ด์ „
์ฝ”๋ฉ˜ํŠธ๋ฅผ ๋‚จ๊ธฐ๋ ค๋ฉด ๋กœ๊ทธ์ธ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
์ด ํŽ˜์ด์ง€์—๋Š” ์•„์ง ์ฝ”๋ฉ˜ํŠธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค