Skip to main content
KO
guide

What is JSON? A Complete Beginner's Guide

2026-04-01 ยท 5 min read

JSON์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

**JSON(JavaScript Object Notation)**์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ตํ™˜ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒฝ๋Ÿ‰ ํ…์ŠคํŠธ ํ˜•์‹์ž…๋‹ˆ๋‹ค. ์ด๋ฆ„์— โ€œJavaScriptโ€๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ์ง€๋งŒ, ์‚ฌ์‹ค ์–ธ์–ด์— ๊ด€๊ณ„์—†์ด ์–ด๋””์„œ๋‚˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ”์šฉ ํ˜•์‹์ž…๋‹ˆ๋‹ค. Python, Java, PHP, Go, Ruby โ€” ๋ชจ๋“  ์ฃผ์š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ JSON์„ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

JSON์€ 2000๋…„๋Œ€ ์ดˆ๋ฐ˜ ๋”๊ธ€๋Ÿฌ์Šค ํฌ๋กํฌ๋“œ(Douglas Crockford)๊ฐ€ ์ œ์•ˆํ–ˆ์œผ๋ฉฐ, ์ง€๊ธˆ์€ ์›น API, ์„ค์ • ํŒŒ์ผ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‘๋‹ต ๋“ฑ ๊ฑฐ์˜ ๋ชจ๋“  ๊ณณ์—์„œ ํ‘œ์ค€์ฒ˜๋Ÿผ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.


JSON ๊ธฐ๋ณธ ๋ฌธ๋ฒ•

JSON์€ ๋‘ ๊ฐ€์ง€ ๊ตฌ์กฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

  • ๊ฐ์ฒด(Object): ํ‚ค-๊ฐ’ ์Œ์˜ ์ง‘ํ•ฉ. ์ค‘๊ด„ํ˜ธ {} ๋กœ ๊ฐ์Œ‰๋‹ˆ๋‹ค.
  • ๋ฐฐ์—ด(Array): ์ˆœ์„œ๊ฐ€ ์žˆ๋Š” ๊ฐ’์˜ ๋ชฉ๋ก. ๋Œ€๊ด„ํ˜ธ [] ๋กœ ๊ฐ์Œ‰๋‹ˆ๋‹ค.

์ง€์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…

ํƒ€์ž…์˜ˆ์‹œ
๋ฌธ์ž์—ด(String)"hello"
์ˆซ์ž(Number)42, 3.14
๋ถˆ๋ฆฌ์–ธ(Boolean)true, false
nullnull
๊ฐ์ฒด(Object){ "key": "value" }
๋ฐฐ์—ด(Array)[1, 2, 3]

๊ธฐ๋ณธ ์˜ˆ์‹œ

{
  "name": "ํ™๊ธธ๋™",
  "age": 30,
  "isStudent": false,
  "hobbies": ["๋…์„œ", "์ฝ”๋”ฉ", "๋“ฑ์‚ฐ"],
  "address": {
    "city": "์„œ์šธ",
    "zipCode": "03000"
  },
  "profileImage": null
}

์ด ์˜ˆ์‹œ์ฒ˜๋Ÿผ JSON์€ ์‚ฌ๋žŒ๋„ ์ฝ๊ธฐ ์‰ฝ๊ณ , ์ปดํ“จํ„ฐ๋„ ํŒŒ์‹ฑํ•˜๊ธฐ ์‰ฌ์šด ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.


JSON์€ ์–ด๋””์— ์‚ฌ์šฉ๋˜๋‚˜์š”?

1. ์›น API ์‘๋‹ต

๊ฐ€์žฅ ํ”ํ•œ ์‚ฌ์šฉ์ฒ˜์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‚ ์”จ ์•ฑ์ด ์„œ๋ฒ„์— ํ˜„์žฌ ๋‚ ์”จ๋ฅผ ์š”์ฒญํ•˜๋ฉด, ์„œ๋ฒ„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ JSON์„ ๋Œ๋ ค์ค๋‹ˆ๋‹ค.

{
  "location": "Seoul",
  "temperature": 18,
  "condition": "๋ง‘์Œ",
  "humidity": 55
}

2. ์„ค์ • ํŒŒ์ผ

package.json, tsconfig.json, .eslintrc.json ๋“ฑ ๊ฐœ๋ฐœ ๋„๊ตฌ ์„ค์ • ํŒŒ์ผ์— ๋„๋ฆฌ ์“ฐ์ž…๋‹ˆ๋‹ค.

{
  "name": "my-project",
  "version": "1.0.0",
  "scripts": {
    "start": "node index.js",
    "test": "jest"
  }
}

3. ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ์ „์†ก

์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ๋•Œ, ํ˜น์€ ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๋•Œ๋„ JSON ํ˜•์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.


JSON ๋ฌธ๋ฒ• ๊ทœ์น™ โ€” ๋ฐ˜๋“œ์‹œ ์ง€์ผœ์•ผ ํ•  ๊ฒƒ๋“ค

JSON์€ ์—„๊ฒฉํ•œ ๋ฌธ๋ฒ•์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทœ์น™์„ ์–ด๊ธฐ๋ฉด ํŒŒ์‹ฑ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๊ทœ์น™ 1: ํ‚ค๋Š” ๋ฐ˜๋“œ์‹œ ํฐ๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ธ์•ผ ํ•œ๋‹ค

// ์ž˜๋ชป๋œ ์˜ˆ (์ž‘์€๋”ฐ์˜ดํ‘œ ์‚ฌ์šฉ)
{ 'name': 'ํ™๊ธธ๋™' }

// ์˜ฌ๋ฐ”๋ฅธ ์˜ˆ
{ "name": "ํ™๊ธธ๋™" }

๊ทœ์น™ 2: ๋งˆ์ง€๋ง‰ ํ•ญ๋ชฉ ๋’ค์— ์‰ผํ‘œ๋ฅผ ๋ถ™์ด์ง€ ์•Š๋Š”๋‹ค (trailing comma ๊ธˆ์ง€)

// ์ž˜๋ชป๋œ ์˜ˆ
{
  "a": 1,
  "b": 2,   โ† ์ด ์‰ผํ‘œ๊ฐ€ ์˜ค๋ฅ˜๋ฅผ ์ผ์œผํ‚ด
}

// ์˜ฌ๋ฐ”๋ฅธ ์˜ˆ
{
  "a": 1,
  "b": 2
}

๊ทœ์น™ 3: ์ฃผ์„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค

JSON์€ // ๋‚˜ /* */ ์ฃผ์„์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฃผ์„์ด ํ•„์š”ํ•˜๋‹ค๋ฉด JSON5๋‚˜ JSONC ํ˜•์‹์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทœ์น™ 4: ๋ฌธ์ž์—ด์€ ๋ฐ˜๋“œ์‹œ ํฐ๋”ฐ์˜ดํ‘œ

์ž‘์€๋”ฐ์˜ดํ‘œ(')๋‚˜ ๋ฐฑํ‹ฑ(`)์€ JSON์—์„œ ์œ ํšจํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•ญ์ƒ ํฐ๋”ฐ์˜ดํ‘œ(")๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.


์ž์ฃผ ํ•˜๋Š” ์‹ค์ˆ˜์™€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

์‹ค์ˆ˜ 1: ํŠน์ˆ˜๋ฌธ์ž ์ด์Šค์ผ€์ดํ”„ ๋ˆ„๋ฝ

๋ฌธ์ž์—ด ์•ˆ์— ํฐ๋”ฐ์˜ดํ‘œ๋‚˜ ๋ฐฑ์Šฌ๋ž˜์‹œ๊ฐ€ ์žˆ๋‹ค๋ฉด ์ด์Šค์ผ€์ดํ”„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

{
  "message": "๊ทธ๊ฐ€ ๋งํ–ˆ๋‹ค, \"์•ˆ๋…•ํ•˜์„ธ์š”\"",
  "path": "C:\\Users\\hong\\Documents"
}

์‹ค์ˆ˜ 2: undefined ์‚ฌ์šฉ

JavaScript์—์„œ undefined๋Š” JSON์œผ๋กœ ์ง๋ ฌํ™”ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ฐ’์ด ์—†์Œ์„ ํ‘œํ˜„ํ•  ๋•Œ๋Š” null์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

์‹ค์ˆ˜ 3: ์ˆซ์ž๋ฅผ ๋ฌธ์ž์—ด๋กœ ์ €์žฅ

// ๋‚˜์œ ์˜ˆ โ€” ๋‚˜์ค‘์— ๊ณ„์‚ฐํ•  ๋•Œ ํƒ€์ž… ๋ณ€ํ™˜ ํ•„์š”
{ "price": "1000" }

// ์ข‹์€ ์˜ˆ
{ "price": 1000 }

JSON ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋ฐฉ๋ฒ•

์ž‘์„ฑํ•œ JSON์ด ์˜ฌ๋ฐ”๋ฅธ์ง€ ํ™•์ธํ•˜๋ ค๋ฉด:

  1. ์˜จ๋ผ์ธ JSON ํฌ๋งคํ„ฐ/๊ฒ€์ฆ๊ธฐ ์‚ฌ์šฉ โ€” ์ด ์‚ฌ์ดํŠธ์˜ JSON ํฌ๋งคํ„ฐ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ฆ‰์‹œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ๋ธŒ๋ผ์šฐ์ € ๊ฐœ๋ฐœ์ž ๋„๊ตฌ โ€” ์ฝ˜์†”์—์„œ JSON.parse('...') ๋ฅผ ์‹คํ–‰ํ•ด๋ณด์„ธ์š”. ์˜ค๋ฅ˜๊ฐ€ ์—†์œผ๋ฉด ์œ ํšจํ•œ JSON์ž…๋‹ˆ๋‹ค.
  3. ์ฝ”๋“œ ์—๋””ํ„ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ โ€” VS Code์—๋Š” JSON ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๊ฐ€ ๋‚ด์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

JSON vs XML โ€” ๋ฌด์—‡์ด ๋‹ค๋ฅผ๊นŒ?

๊ณผ๊ฑฐ์—๋Š” XML์ด ๋ฐ์ดํ„ฐ ๊ตํ™˜์˜ ํ‘œ์ค€์ด์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ JSON์ด ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ๋” ์„ ํ˜ธ๋ฉ๋‹ˆ๋‹ค.

๋น„๊ต ํ•ญ๋ชฉJSONXML
๊ฐ€๋…์„ฑ๋†’์Œ๋ณดํ†ต
ํŒŒ์ผ ํฌ๊ธฐ์ž‘์Œํผ
ํŒŒ์‹ฑ ์†๋„๋น ๋ฆ„๋А๋ฆผ
์ฃผ์„ ์ง€์›์—†์Œ์žˆ์Œ
์Šคํ‚ค๋งˆ ๊ฒ€์ฆJSON SchemaXSD

๋Œ€๋ถ€๋ถ„์˜ ํ˜„๋Œ€ REST API๋Š” JSON์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. XML์€ SOAP ํ”„๋กœํ† ์ฝœ์ด๋‚˜ ๋ ˆ๊ฑฐ์‹œ ์‹œ์Šคํ…œ์—์„œ ์—ฌ์ „ํžˆ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.


๋งˆ๋ฌด๋ฆฌ

JSON์€ ํ˜„๋Œ€ ์›น ๊ฐœ๋ฐœ์—์„œ ๋น ์งˆ ์ˆ˜ ์—†๋Š” ํ•ต์‹ฌ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ๋ฌธ๋ฒ•์ด ๋‹จ์ˆœํ•˜๊ณ  ์‚ฌ๋žŒ์ด ์ฝ๊ธฐ ํŽธํ•˜๋ฉฐ, ๋ชจ๋“  ์–ธ์–ด์—์„œ ์ง€์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ ๊ตํ™˜์˜ ์‚ฌ์‹ค์ƒ ํ‘œ์ค€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

JSON์„ ๋‹ค๋ฃจ๋‹ค ๋ณต์žกํ•˜๊ฒŒ ์ค‘์ฒฉ๋œ ๊ตฌ์กฐ๋ฅผ ๋ณด๊ธฐ ์ข‹๊ฒŒ ์ •๋ฆฌํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, JSON ํฌ๋งคํ„ฐ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์„ธ์š”. ํ•œ ๋ฒˆ์˜ ํด๋ฆญ์œผ๋กœ ๋“ค์—ฌ์“ฐ๊ธฐ์™€ ์ƒ‰์ƒ ๊ฐ•์กฐ๋กœ JSON์„ ํ›จ์”ฌ ์ฝ๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค.