JSON ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ๋ฉด ์๋์ผ๋ก ํฌ๋งทํ ํ๊ณ ๊ฒ์ฆํฉ๋๋ค
JSON(JavaScript Object Notation)์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ ์กํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๊ฒฝ๋ ํ ์คํธ ๊ธฐ๋ฐ ๋ฐ์ดํฐ ๊ตํ ํ์์ ๋๋ค. 2001๋ ๋๊ธ๋ผ์ค ํฌ๋ฝํฌ๋(Douglas Crockford)๊ฐ ํ์คํํ์ผ๋ฉฐ, ํ์ฌ ์น ๊ฐ๋ฐ์์ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ ํ์์ ๋๋ค.
JSON์ ์ฌ๋์ด ์ฝ๊ณ ์ฐ๊ธฐ ์ฝ๊ณ , ๊ธฐ๊ณ๊ฐ ํ์ฑํ๊ณ ์์ฑํ๊ธฐ ์ฌ์ด ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. JavaScript์์ ์ ๋ํ์ง๋ง, ๊ฑฐ์ ๋ชจ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ์ง์ํฉ๋๋ค. REST API, ์ค์ ํ์ผ, NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค(MongoDB ๋ฑ) ๋ฑ ๋ค์ํ ๊ณณ์์ ์ฌ์ฉ๋ฉ๋๋ค.
์๋ธ๋ฆฌ์บํฌ์ JSON ํฌ๋งทํฐ๋ JSON ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ธฐ ์ข๊ฒ ์ ๋ฆฌํ๊ณ , ๋ฌธ๋ฒ ์ค๋ฅ๋ฅผ ์ฐพ์์ฃผ๋ฉฐ, ํธ๋ฆฌ ๋ทฐ๋ก ๊ตฌ์กฐ๋ฅผ ์๊ฐํํฉ๋๋ค. ๋ชจ๋ ์ฒ๋ฆฌ๋ ๋ธ๋ผ์ฐ์ ์์ ์ด๋ฃจ์ด์ ธ ๋ฐ์ดํฐ๊ฐ ์ธ๋ถ๋ก ์ ์ก๋์ง ์์ต๋๋ค.
JSON์ ๋ ๊ฐ์ง ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
๊ฐ์ฒด (Object): ์ค๊ดํธ {}๋ก ๊ฐ์ธ๊ณ , "ํค": ๊ฐ ํํ์ ์์ ์ผํ๋ก ๊ตฌ๋ถํฉ๋๋ค. {"name": "ํ๊ธธ๋", "age": 30}
๋ฐฐ์ด (Array): ๋๊ดํธ []๋ก ๊ฐ์ธ๊ณ , ๊ฐ์ ์ผํ๋ก ๊ตฌ๋ถํฉ๋๋ค. ["์ฌ๊ณผ", "๋ฐ๋๋", "์ค๋ ์ง"]
์ง์ํ๋ ๋ฐ์ดํฐ ํ์ ์ 6๊ฐ์ง์ ๋๋ค.
JSON์ ์์ฑํ ๋ ๋ฐ๋์ ์ง์ผ์ผ ํ๋ ๊ท์น๋ค์ ๋๋ค. ์ด ๊ท์น์ ์ด๊ธฐ๋ฉด ํ์ฑ ์๋ฌ๊ฐ ๋ฐ์ํฉ๋๋ค.
ํ์ ๊ท์น
์ฌ๋ฐ๋ฅธ ์์ {"name": "ํ๊ธธ๋", "age": 30}
์๋ชป๋ ์์ {name: "ํ๊ธธ๋", age: 30} โ ํค์ ๋ฐ์ดํ ์์ {'name': 'ํ๊ธธ๋'} โ ์์๋ฐ์ดํ ์ฌ์ฉ {"name": "ํ๊ธธ๋", "age": 30,} โ trailing comma {"name": "ํ๊ธธ๋" /* ์ด๋ฆ */} โ ์ฃผ์ ์ฌ์ฉ
๋ฐ์ดํฐ ๊ตํ ํ์์ผ๋ก JSON ์ธ์๋ XML๊ณผ YAML์ด ์์ต๋๋ค. ๊ฐ ํ์์ ํน์ง์ ๋น๊ตํฉ๋๋ค.
JSON
XML (eXtensible Markup Language)
YAML (YAML Ain't Markup Language)
ํ์ฌ ์น API์ 90% ์ด์์ด JSON์ ์ฌ์ฉํ๋ฉฐ, ๊ฐ์ฅ ๋ฒ์ฉ์ ์ธ ๋ฐ์ดํฐ ํ์์ ๋๋ค.
JSON ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅ์ฐฝ์ ๋ถ์ฌ๋ฃ๊ฑฐ๋ ์ง์ ์ ๋ ฅํฉ๋๋ค.
๋๊ตฌ ๋ชจ์์์ ์ํ๋ ๊ธฐ๋ฅ์ ์ ํํฉ๋๋ค.
๋ค์ฌ์ฐ๊ธฐ ๋จ์๋ฅผ ์ ํํฉ๋๋ค (2์นธ ๋๋ 4์นธ).
๋ทฐ ๋ชจ๋๋ฅผ ์ ํํฉ๋๋ค.
๋ฌธ๋ฒ ์ค๋ฅ๊ฐ ์์ผ๋ฉด ์ ๋ ฅ์ฐฝ ์๋์ ๋นจ๊ฐ์ ์๋ฌ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค.
JSON์ ์ ๋ ฅํ๋ฉด ๊ฒฐ๊ณผ๊ฐ ํ์๋ฉ๋๋ค
๋๊ตฌ ๊ณต์ ํ๊ธฐ