지식 · IT·데이터·DX

JSON

JavaScript Object Notation

📂IT·데이터·DX읽기 3분📊입문🔗관련 4

JSON이란?

한 줄 정의
자바스크립트 객체 표기법(JavaScript Object Notation)으로, 프로그램끼리 데이터를 주고받을 때 널리 쓰는, 사람도 읽기 쉬운 텍스트 형식. '이름: 값' 쌍으로 데이터를 표현한다.
이 주제, 사내 교육으로📚 관련 과정💬 교육 문의
⚡ 3줄 요약
  • 프로그램 간 데이터 교환 형식
  • 사람도 읽기 쉬운 텍스트
  • '이름:값' 쌍으로 표현

데이터를 넘길 때 가장 자주 깨지는 지점은 '몇 번째 칸에 무슨 값이 있느냐'입니다. 엑셀이나 CSV로 주고받으면 컬럼 하나가 밀리는 순간 수취인 이름 자리에 전화번호가 들어갑니다. JSON은 값마다 이름표를 붙여 두기 때문에 항목 순서가 뒤바뀌어도, 중간에 새 항목이 하나 늘어도 나머지는 그대로 읽힙니다. 데이터 안에 설명서가 함께 들어 있는 셈이라 받는 쪽이 별도 안내 없이도 무엇이 무엇인지 알아봅니다. 연동 협의에서 줄어드는 시간의 대부분이 순서와 칸 위치를 맞추는 실랑이에서 나옵니다.

담을 수 있는 값은 여섯 가지뿐입니다. 문자열, 숫자, 참/거짓, 빈 값(null), 여러 개를 나열하는 배열([ ]), 이름-값 묶음인 객체({ })입니다. 핵심은 배열과 객체를 겹쳐 쓰는 것으로, '주문 한 건 안에 상품 세 개, 상품마다 수량과 단가'처럼 접히는 구조를 그대로 표현합니다. 엑셀이라면 주문번호를 세 줄 반복해야 할 내용이 JSON에서는 한 덩어리로 끝납니다. 표 한 장으로는 못 담는 계층을 담는다는 점이 기존 양식과의 실질적인 차이입니다.

그렇다고 모든 데이터를 JSON으로 바꿀 이유는 없습니다. 행이 수십만 개인 단순한 표는 CSV가 용량도 작고 엑셀에서 바로 열려 더 실용적입니다. 같은 내용을 XML로 적을 때보다 태그 반복이 없어 글자 수가 줄어드는 것이 JSON의 이점이고, 로그처럼 계속 쌓이는 데이터는 한 줄에 한 건씩 적는 JSONL 형식으로 다룹니다. 주고받을 항목의 이름과 타입을 강제하고 싶다면 JSON Schema를 규격서에 붙입니다. API 문서에 적힌 '응답 예시'가 대개 이 덩어리입니다.

실무에서 사고는 대부분 문법에서 납니다. 쉼표 하나가 더 붙거나 큰따옴표가 작은따옴표로 바뀌면 파일 전체가 통째로 읽히지 않습니다. 엑셀처럼 '한 칸만 이상하고 나머지는 멀쩡'이 없어서, 500건짜리 응답이 한 글자 때문에 0건이 됩니다. 주석을 달 수 없다는 것도 자주 잊어, AI가 준 설정 파일에 설명을 덧붙였다가 서비스가 뜨지 않는 일이 흔합니다. 날짜와 앞자리 0도 단골입니다. JSON에는 날짜 타입이 없어 '2026-03-01' 같은 문자열로 쓰기로 미리 정해야 하고, 우편번호 06234를 숫자로 넣으면 6234가 됩니다. 한글은 UTF-8로 저장하지 않으면 깨집니다.

💡 쉽게 말하면
택배 송장처럼 — '이름:값'으로 정보를 적어 프로그램끼리 주고받는 표준 양식입니다.
실무에서 왜 중요한가
웹에서 데이터가 오가는 공통 언어입니다. JSON을 읽을 줄 알면 API·설정·오류 메시지를 이해하기 쉬워집니다.
유래와 출처

더글러스 크록포드(Douglas Crockford)가 2000년대 초 자바스크립트의 데이터 표기법을 정리·명세화하며 대중화했습니다. 이후 언어를 가리지 않는 데이터 교환 표준이 됐습니다.

출처 · 더글러스 크록포드(Douglas Crockford)가 2000년대 초 규격화·대중화 · 원문 보기
사례로 이해하기

가상의 사례로 살펴보겠습니다. 임직원 140명, 연매출 300억 원대 생활용품 유통사 A사는 자사몰 주문 월 4,200건을 엑셀로 정리해 물류사에 넘기고 있었습니다. 담당자 두 명이 하루 2시간씩 컬럼을 맞췄는데도 수취인과 연락처가 뒤바뀐 오배송이 월 6~7건씩 났습니다. 물류사가 API 연동을 제안하며 JSON 규격서를 보냈지만, 읽을 사람이 없어 3주를 그냥 흘려보냈습니다.

  1. 온라인사업팀 김 팀장이 규격서를 열어 '주문번호, 수취인, 상품목록' 세 이름을 짚으며 '엑셀 헤더가 그대로 들어가 있는 거네요'라고 정리했습니다.
  2. 물류사 연동 담당자는 '상품목록은 대괄호 안에 들어가는 배열이라, 한 주문에 상품이 세 개면 그 안에 세 덩어리가 들어갑니다'라며 주문 한 건이 한 덩어리로 묶이는 구조를 설명했습니다.
  3. A사 IT 담당 박 대리가 샘플 5건을 무료 JSON 검사기에 붙여넣자 쉼표 누락 두 곳이 빨갛게 잡혔고, 고치는 데 걸린 시간은 10분이었습니다.
  4. 테스트 3일 차에 우편번호 06234가 6234로 출력되자, 김 팀장이 '우편번호와 사번은 숫자 말고 문자열로' 보내달라고 요청해 규격을 수정했습니다.
  5. 8주 뒤 연동이 끝나 월 4,200건 이관에 들던 하루 2시간이 10분으로 줄었고, 순서 밀림 오배송은 월 6~7건에서 2개월 연속 0건이 됐습니다.
관련 용어
이 용어와 연결된 교육
📚디지털 트랜스포메이션나눔경영컨설팅 기업교육 · 대면/온라인과정 보기 →
이 주제로 사내 교육이 필요하신가요?
담당자 맞춤 커리큘럼·견적을 바로 받아보세요.
교육 문의하기
최종 수정 2026-09-13 · 감수 김종혁

자주 묻는 질문

아닙니다. '데이터를 적는 형식'입니다. 자바스크립트에서 나왔지만 모든 언어에서 쓰입니다.
가볍고, 사람도 읽기 쉽고, 대부분의 언어가 쉽게 다룰 수 있어서입니다.
아닙니다. 데이터를 표현하는 '형식(포맷)'입니다. 언어가 아니라 약속된 텍스트 양식입니다.
사람도 읽기 쉽고 거의 모든 언어가 지원해, 프로그램 간 데이터 교환의 사실상 표준이 됐습니다.