JSON이란?
JSON(JavaScript Object Notation)은 데이터를 저장하고 교환하기 위한 경량 텍스트 형식입니다. 2001년 Douglas Crockford가 제안했으며, 현재 웹 개발에서 가장 널리 사용되는 데이터 포맷입니다.
이름에 JavaScript가 들어있지만, 사실상 모든 프로그래밍 언어에서 지원합니다. Python, Java, Go, Rust, PHP 등 어떤 언어를 쓰든 JSON을 다루게 됩니다.
왜 JSON이 표준이 되었나?
JSON 이전에는 XML이 데이터 교환의 표준이었습니다. 하지만 JSON이 빠르게 대체한 이유가 있습니다.
JSON vs XML 비교
같은 데이터를 표현할 때의 차이를 보면:
// JSON (간결함)
{
"name": "홍길동",
"age": 30,
"skills": ["JavaScript", "Python"]
}
// XML (장황함)
<person>
<name>홍길동</name>
<age>30</age>
<skills>
<skill>JavaScript</skill>
<skill>Python</skill>
</skills>
</person>JSON의 장점은 명확합니다:
- 가독성: 사람이 읽기 쉬움
- 경량: 같은 데이터를 더 적은 용량으로 표현
- 파싱 속도: XML보다 파싱이 빠름
- JavaScript 호환: 웹 환경에서 네이티브 지원
JSON 기본 문법
JSON은 6가지 데이터 타입을 지원합니다.
1. 문자열 (String)
반드시 큰따옴표로 감싸야 합니다. 작은따옴표는 허용되지 않습니다.
{ "name": "홍길동" } // ✅ 올바름
{ "name": '홍길동' } // ❌ 작은따옴표 불가
{ name: "홍길동" } // ❌ 키에도 큰따옴표 필수2. 숫자 (Number)
정수와 소수 모두 가능하며, 따옴표 없이 사용합니다.
{ "age": 30, "height": 175.5, "score": -10 }3. 불린 (Boolean)
소문자 true, false만 허용됩니다.
{ "active": true, "deleted": false }4. null
값이 없음을 나타냅니다. undefined는 JSON에서 사용할 수 없습니다.
{ "middleName": null }5. 배열 (Array)
대괄호로 감싸며, 서로 다른 타입을 혼합할 수 있습니다.
{ "tags": ["개발", "프론트엔드", 42, true, null] }6. 객체 (Object)
중괄호로 감싸며, 중첩이 가능합니다.
{
"user": {
"name": "홍길동",
"address": {
"city": "서울",
"zip": "06000"
}
}
}실무에서 자주 하는 실수 TOP 5
1. 마지막 쉼표 (Trailing Comma)
JavaScript에서는 허용되지만, JSON에서는 문법 오류입니다.