JavaScript Object Notation, JavaScript 필요 없음
JSON 은 2000 년대 초 Douglas Crockford 가 spec 했고 2017 년 RFC 8259 로 표준화. JavaScript object literal 문법의 부분집합으로 시작했지만 지금은 모든 언어에 파서가 있는 언어 중립 데이터 교환 포맷.
이미 JSON 쓰고 있는 곳
- HTTP API — REST 응답, GraphQL 쿼리/응답, webhook.
- 패키지 매니페스트 —
package.json(npm),composer.json(PHP),tsconfig.json,.eslintrc.json. - 에디터/도구 config — VS Code 설정, GitHub Actions output, Postman collection, Stripe webhook.
- 데이터 dump — Firebase export, MongoDB document, log record.
- 프로세스 간 메시지 — JSON-RPC, MCP, websocket frame.
왜 JSON 이 계속 이기나
세 가지 이유. 엄격 — 각 값을 쓰는 방법이 하나라서 두 구현이 항상 일치. 최소 — 데이터 타입 6, 문법 규칙 6, 놀라움 없음. 보편 — 모든 modern 언어가 빌트인 또는 stdlib 파서 가짐, 서드파티 설치 불필요.
원칙: JSON 은 wire 포맷이지 프로그래밍 표기가 아냐. 주석 없고, 함수 없고,
undefined 없음 — 그게 버그가 아니라 feature 야. 더 풍부한 것 (날짜, 정규식, tagged enum) 은 JSON 위에 layered 된 관행이야.