What is JSON? A Complete Beginner's Guide
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 |
| null | null |
| 객체(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이 올바른지 확인하려면:
- 온라인 JSON 포매터/검증기 사용 — 이 사이트의 JSON 포매터 도구를 사용하면 즉시 확인할 수 있습니다.
- 브라우저 개발자 도구 — 콘솔에서
JSON.parse('...')를 실행해보세요. 오류가 없으면 유효한 JSON입니다. - 코드 에디터 플러그인 — VS Code에는 JSON 유효성 검사가 내장되어 있습니다.
JSON vs XML — 무엇이 다를까?
과거에는 XML이 데이터 교환의 표준이었습니다. 하지만 JSON이 대부분의 경우 더 선호됩니다.
| 비교 항목 | JSON | XML |
|---|---|---|
| 가독성 | 높음 | 보통 |
| 파일 크기 | 작음 | 큼 |
| 파싱 속도 | 빠름 | 느림 |
| 주석 지원 | 없음 | 있음 |
| 스키마 검증 | JSON Schema | XSD |
대부분의 현대 REST API는 JSON을 사용합니다. XML은 SOAP 프로토콜이나 레거시 시스템에서 여전히 사용됩니다.
마무리
JSON은 현대 웹 개발에서 빠질 수 없는 핵심 기술입니다. 문법이 단순하고 사람이 읽기 편하며, 모든 언어에서 지원하기 때문에 데이터 교환의 사실상 표준이 되었습니다.
JSON을 다루다 복잡하게 중첩된 구조를 보기 좋게 정리하고 싶다면, JSON 포매터 도구를 사용해보세요. 한 번의 클릭으로 들여쓰기와 색상 강조로 JSON을 훨씬 읽기 쉽게 만들어줍니다.