JavaScript Object Notation, JavaScript 필요 없음
JSON 은 2000 년대 초에 Douglas Crockford 가 정리했고 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 이 계속 이기나
이유는 세 가지야. 엄격해서 — 값 하나를 적는 방법이 하나뿐이라 서로 다른 구현이 늘 같은 결론에 닿아. 작아서 — 데이터 타입 여섯에 문법 규칙 여섯이면 끝이고, 놀랄 구석이 없어. 어디에나 있어서 — 요즘 언어면 파서가 언어 자체나 표준 라이브러리에 들어 있어서 따로 깔 게 없어.
원칙: JSON 은 주고받는 포맷이지 프로그래밍 표기가 아니야. 주석도 없고 함수도 없고
undefined 도 없어. 그게 버그가 아니라 설계야. 날짜나 정규식, tagged enum 같은 더 풍부한 것들은 전부 JSON 위에 사람들이 얹어 쓰는 관행이고.