๊ณ„๋ž€์†Œ๋…„ 2024. 1. 9. 18:53

JSON(JavaScript Object Notation)์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ์ „์†กํ•  ๋•Œ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ๋Ÿ‰์˜ DATA ๊ตํ™˜ ํ˜•์‹. ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ ํฌ๋งท์œผ๋กœ ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ํŒŒ์‹ฑ ๋ฐ ์ƒ์„ฑ์ด ์šฉ์ดํ•˜๋‹ค. JSON์€ ๋ฐ์ดํ„ฐ ํฌ๋งท์ผ ๋ฟ์ด๋ฉฐ ๋‹จ์ˆœํžˆ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ํ‘œํ˜„๋ฐฉ๋ฒ•์ด๋‹ค.

 

JSON์˜ ํŠน์ง•

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•˜์—ฌ JSON ๋ฌธ์„œ๋ฅผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ ๊ฐ€๋Šฅ
  • ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ๋„ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.
  • ํŠน์ • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ์ข…์†๋˜์ง€ ์•Š์œผ๋ฉฐ, ๋Œ€๋ถ€๋ถ„์˜ ์–ธ์–ด์—์„œ JSON ํฌ๋งท์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ•ธ๋“ค๋ง ํ•  ์ˆ˜ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

 

XML๊ณผ ๋‹ค๋ฅธ์ ?

์šฐ๋ฆฌ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ๋ฒ• ์ค‘ ๋Œ€ํ‘œ์ ์ธ ๊ฒƒ์ด XML์ด๋‹ค.

 

  • XML์€ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค.
<person> <name>John</name> <age>30</age> </person>

 

  • JSON์€ ์ค‘๊ด„ํ˜ธ ํ˜•์‹๊ณผ ‘,’๋กœ ๋‚˜์—ดํ•œ๋‹ค. {ํ‚ค-๊ฐ’} ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐ์ดํ„ฐ ๊ฐ์ฒด์ด๋‹ค.
{ "name": "John", "age": 30 }

xml์— ๋น„ํ•ด ํƒœ๊ทธ๊ฐ€ ์—†๊ธฐ์— ๊ฐ€๋…์„ฑ์ด ์ข‹๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

์ž์„ธํžˆ JSON ๊ตฌ์กฐ๋ฅผ ์„ค๋ช…ํ•˜๋ฉด

 

  • ๊ฐ์ฒด(Object): ์ค‘๊ด„ํ˜ธ {}๋กœ ํ‘œํ˜„๋˜๋ฉฐ, ํ‚ค-๊ฐ’ ์Œ์˜ ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค. ๊ฐ ํ‚ค์™€ ๊ฐ’์€ ์ฝœ๋ก (:)์œผ๋กœ ๊ตฌ๋ถ„
{ "name": "JSJ", "age": ์„œ๋ฅธ๋งˆํ”๋‹ค์„ฏ์‚ด, "city": "์„œ์šธ" }
  • ๋ฐฐ์—ด(Array): ๋Œ€๊ด„ํ˜ธ **[]**๋กœ ํ‘œํ˜„๋˜๋ฉฐ, ๊ฐ’๋“ค์˜ ์ˆœ์„œ๊ฐ€ ์žˆ๋Š” ๋ฆฌ์ŠคํŠธ
[ "apple", "orange", "banana" ]
  • ๊ฐ’(Value): ๋ฌธ์ž์—ด, ์ˆซ์ž, ๋ถˆ๋ฆฌ์–ธ, ๊ฐ์ฒด, ๋ฐฐ์—ด, null ๋“ฑ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
{ "name": "JSJ", "age": 30405, "city": "์„œ์šธ", "isStudent": true, "score": [90, 85, 92], "address": null}

JSON์€ RESTful ์›น ์„œ๋น„์Šค์™€ ๊ฐ™์€ ๋งŽ์€ API์—์„œ ๋ฐ์ดํ„ฐ ๊ตํ™˜์˜ ํ‘œ์ค€ ํ˜•์‹์œผ๋กœ ์ž์ฃผ ํ™œ์šฉ๋œ๋‹ค.

 

์ •๋ฆฌํ•˜์ž๋ฉด

๋ธŒ๋ผ์šฐ์ €์™€ ์„œ๋ฒ„ ๊ฐ„์˜ ํ†ต์‹ ์— ์‚ฌ์šฉ๋˜๋Š” ํ‘œ์ค€ data format์ด๋‹ค. ์ด๋Ÿฌํ•œ data format์—๋Š” json ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ xml๋„ ์žˆ์œผ๋‚˜, xml์€ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ, json์€ "userId": "keepcalm"์™€ ๊ฐ™์ด key:value ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง„๋‹ค. ๊ฐ„ํŽธํ•จ์ด๋‚˜ ์ดํ•ด๋„ ์ธก๋ฉด์—์„œ json์ด ๋” ๋†’์€ ์œ„์น˜๋ฅผ ์ ํ•˜๊ณ  ์žˆ์–ด xml์€ ์žŠํ˜€์ง€๊ณ  ์žˆ๋Š” ์ถ”์„ธ์ด๋‹ค.

 

์ถœ์ฒ˜: https://velog.io/@surim014/JSON์ด๋ž€-๋ฌด์—‡์ธ๊ฐ€

https://aws.amazon.com/ko/compare/the-difference-between-json-xml/

https://lxxyeon.tistory.com/153