JSON이 뭐야? 데이터 주고받는 표준 형식 5분 정리
AI API를 처음 호출해 보면 응답이 이런 모양으로 온다.
{
"id": "msg_01ab...",
"type": "message",
"content": [{"type": "text", "text": "안녕하세요"}],
"usage": {"input_tokens": 10, "output_tokens": 5}
}
이게 JSON이다. AI 시대에 들어 거의 모든 데이터 통신이 이 한 형식 위에서 일어난다.

JSON 한 줄 정의
**JSON(JavaScript Object Notation)**은 프로그램끼리 데이터를 주고받을 때 가장 많이 쓰는 텍스트 형식이다.
이름에 JavaScript가 들어가지만 이제는 모든 언어·모든 시스템에서 표준처럼 쓰인다. AI API, 자동화 도구, 설정 파일, 모바일 앱 통신까지 거의 모든 곳에 들어간다.
핵심 매력은 단순함이다. 사람도 읽을 수 있고, 기계가 파싱하기도 쉽다. 그 균형 때문에 90년대 후반부터 자리를 잡아 지금까지 자리를 지키고 있다.
중학생도 이해하는 비유
JSON을 이해하는 가장 쉬운 비유는 편지에 적힌 표 양식이다.
상자(객체)와 목록(배열) 두 가지로 거의 모든 정보를 표현할 수 있다.
{
"이름": "토큰",
"나이": 30,
"직업": ["블로그 운영자", "AI 도구 사용자"],
"도구": {
"에디터": "Cursor",
"AI": ["Claude", "ChatGPT"]
}
}
이 작은 글에 한 사람의 정보가 다 담겼다. 상자 안에 또 상자, 목록 안에 또 상자를 넣을 수 있어서 복잡한 정보도 자연스럽게 표현된다.
또 한 가지 중요한 점. JSON은 텍스트다. 메모장이든 카톡이든 어디로든 그대로 복사·붙여넣기 가능하다. 이 단순함이 JSON의 가장 큰 강점이다.
JSON의 기본 규칙 6가지
처음 JSON을 본다면 이 6가지만 알면 거의 모든 JSON을 읽을 수 있다.
- 객체
{ "키": 값 }— 중괄호로 감싸고 키:값 쌍 - 배열
[ 값, 값 ]— 대괄호로 감싸고 콤마로 구분 - 문자열
"hello"— 항상 큰따옴표 (작은따옴표 X) - 숫자
42,3.14— 따옴표 없이 - 불리언
true,false— 소문자 - null
null— 값이 없음을 의미
이 외에 콤마·콜론·따옴표 위치 정도만 신경 쓰면 된다. 형식 위반은 IDE·온라인 검증기가 즉시 잡아준다.
실제 사용 예시
예시 1: AI API 응답 ChatGPT·Claude API에 질문을 보내면 답변이 JSON으로 돌아온다. 사용자 코드는 그 JSON에서 답변 텍스트만 꺼내 화면에 보여준다.
예시 2: 자동화 워크플로 설정 ai-tong-tong의 publish-queue.json은 다음과 같이 슬롯별 글을 관리한다.
{
"morning": ["cache", "chatgpt-tasks-..."],
"lunch": ["cloud"],
"evening": ["domain", "claude-code-vs-cursor-..."]
}
cron이 매일 시점에 이 JSON을 읽어 어떤 글을 발행할지 결정한다.
예시 3: package.json Node.js 프로젝트의 의존성 정보가 담긴 핵심 파일도 JSON이다.
예시 4: AI Function Calling LLM이 도구를 호출할 때 인자를 JSON으로 표현한다. JSON Schema로 함수 입력 형식을 미리 정의해 둔다.
AI API 응답 한 번 직접 읽어보기
Anthropic API 응답을 일부 단순화해 보자.
{
"id": "msg_01XYZ",
"model": "claude-sonnet-...",
"content": [
{"type": "text", "text": "안녕하세요, 무엇을 도와드릴까요?"}
],
"stop_reason": "end_turn",
"usage": {
"input_tokens": 12,
"output_tokens": 8
}
}
여기서 사용자에게 보여줄 답변은 content[0].text 한 칸이다. 토큰 사용량은 usage.input_tokens, usage.output_tokens. 이 정도만 꺼낼 줄 알면 첫 API 호출 코드는 끝난다.
비슷한 용어와 차이
| 용어 | 뜻 | JSON과의 차이 |
|---|---|---|
| YAML | 들여쓰기 기반 데이터 형식 | 사람이 읽기 더 편함, 기계 파싱은 좀 더 까다로움 |
| XML | 태그 기반 데이터 형식 | JSON 등장 전 표준, 더 무거움 |
| CSV | 표 한 장 형식 | 중첩 구조 표현 어려움 |
| JSON Schema | JSON의 구조 정의 | JSON을 검증하는 별도 표준 |
| JSONC | 주석 허용 JSON | 표준 JSON은 주석 X |
따라서 “JSON = 무거운 형식”이 아니다. JSON은 가볍고 단순한 텍스트이고, 더 간결한 형식이 필요하면 YAML이나 CSV로 옮겨가기도 한다.
언제 JSON을 마주치나
- AI API 응답·요청: 거의 항상 JSON
- package.json·tsconfig.json: 개발 프로젝트 설정 파일
- 자동화 큐 관리: ai-tong-tong의 publish-queue 같은 파일
- Postman·Insomnia 같은 API 테스트 도구: 모든 응답이 JSON으로 표시
- AI Function Calling: LLM이 함수 호출 시 인자를 JSON으로 표현
관련 용어
- HTTP: JSON이 운반되는 통로. HTTP가 뭐야? 참고.
- API: JSON으로 데이터를 주고받는 약속. API가 뭐야? 참고.
- API 키: JSON 요청의 헤더에 실리는 비밀 문자열. API 키가 뭐야? 참고.
- YAML: JSON과 비슷하지만 사람이 읽기 더 편한 형식. GitHub Actions 워크플로 등에서 사용.
JSON은 “프로그램끼리 데이터를 주고받는 표준 텍스트 형식”이다. 단순하고 가볍고, 사람도 어느 정도 읽을 수 있어서 AI 시대에 들어 거의 모든 통신의 뼈대가 됐다. 객체·배열·문자열·숫자·불리언·null 6가지만 이해하면 첫 JSON 읽기는 끝난다.
출처
- ECMA-404, JSON 표준 문서, https://www.ecma-international.org/publications-and-standards/standards/ecma-404/
- MDN, JSON 가이드, https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/JSON
- json.org, 공식 페이지, https://www.json.org/