JSON이란 무엇인가? JavaScript Object Notation 완벽 가이드
JSON(JavaScript Object Notation)의 기본 개념부터 실제 활용까지. 웹 개발의 필수 데이터 형식인 JSON을 완벽하게 이해해보세요.
Big JSON Team
• Technical WriterExpert in JSON data manipulation, API development, and web technologies. Passionate about creating tools that make developers' lives easier.
# JSON이란 무엇인가?
JSON(JavaScript Object Notation)은 현대 웹 개발에서 가장 널리 사용되는 경량 데이터 교환 형식입니다. 사람이 읽고 쓰기 쉬우며, 기계가 파싱하고 생성하기도 용이한 텍스트 기반 형식입니다.
JSON의 정의
JSON은 키-값 쌍으로 데이터를 구조화하는 텍스트 형식으로, 2001년 Douglas Crockford에 의해 처음 지정되었습니다. 이름에서 알 수 있듯이 JavaScript의 객체 표기법에서 유래했지만, 현재는 거의 모든 프로그래밍 언어에서 지원되는 언어 독립적인 형식입니다.
JSON의 기본 구조
JSON은 다음 두 가지 기본 구조로 이루어져 있습니다:
1. 객체 (Object)
중괄호 {}로 둘러싸인 키-값 쌍의 집합입니다:
{
"이름": "김철수",
"나이": 30,
"직업": "개발자"
}
2. 배열 (Array)
대괄호 []로 둘러싸인 값들의 순서 있는 리스트입니다:
[
"사과",
"바나나",
"오렌지"
]
JSON 데이터 타입
JSON은 다음 6가지 데이터 타입을 지원합니다:
1. 문자열 (String)
큰따옴표로 둘러싸인 유니코드 문자열:
{
"인사말": "안녕하세요",
"메시지": "JSON을 배워봅시다"
}
2. 숫자 (Number)
정수나 부동소수점 숫자:
{
"정수": 42,
"소수": 3.14,
"지수": 1.5e10
}
3. 불린 (Boolean)
참 또는 거짓 값:
{
"활성화": true,
"완료됨": false
}
4. null
빈 값 또는 없는 값:
{
"중간이름": null
}
5. 객체 (Object)
중첩된 키-값 쌍:
{
"사용자": {
"이름": "이영희",
"이메일": "yhlee@example.com"
}
}
6. 배열 (Array)
값들의 순서 있는 컬렉션:
{
"취미": ["독서", "요리", "등산"]
}
실제 JSON 예제
다음은 사용자 정보를 담은 실제적인 JSON 예제입니다:
{
"사용자": {
"id": 1001,
"이름": "박지민",
"이메일": "jimin.park@email.com",
"등록일": "2026-01-15",
"활성": true,
"역할": ["사용자", "편집자"],
"설정": {
"언어": "ko",
"알림": true,
"테마": "다크"
},
"주소": {
"도시": "서울",
"우편번호": "12345"
}
}
}
JSON의 주요 장점
1. 가독성
JSON은 사람이 읽고 쓰기 쉬운 형식입니다. 데이터 구조가 명확하게 표현되어 개발자가 쉽게 이해할 수 있습니다.
2. 경량성
JSON은 XML과 같은 다른 데이터 형식에 비해 훨씬 간결합니다. 불필요한 태그가 없어 네트워크 대역폭을 절약할 수 있습니다.
3. 언어 독립성
거의 모든 프로그래밍 언어가 JSON 파싱 라이브러리를 제공합니다:
- JavaScript: 네이티브 지원 (
JSON.parse(),JSON.stringify()) - Python:
json모듈 - Java: Jackson, Gson 라이브러리
- C#: Newtonsoft.Json
- PHP:
json_encode(),json_decode()
4. 파싱 속도
JSON은 파싱이 빠르고 효율적입니다. 특히 JavaScript에서는 네이티브로 지원되어 추가 라이브러리 없이 사용할 수 있습니다.
JSON 사용 사례
1. RESTful API
현대 웹 API의 표준 응답 형식:
{
"상태": "성공",
"데이터": {
"상품": [
{
"id": 101,
"이름": "노트북",
"가격": 1200000
}
]
}
}
2. 설정 파일
애플리케이션 설정을 저장:
{
"앱이름": "내 애플리케이션",
"버전": "1.0.0",
"데이터베이스": {
"호스트": "localhost",
"포트": 5432
}
}
3. 데이터 저장
NoSQL 데이터베이스(MongoDB 등)에서 문서 형식으로 데이터 저장:
{
"_id": "507f1f77bcf86cd799439011",
"제목": "JSON 튜토리얼",
"작성자": "홍길동",
"태그": ["json", "튜토리얼", "웹개발"]
}
JSON 규칙과 제약사항
JSON을 올바르게 사용하기 위한 중요한 규칙들:
1. 키는 항상 문자열
키는 반드시 큰따옴표로 둘러싸여야 합니다:
// 올바른 예
{"이름": "값"}
// 잘못된 예
{이름: "값"}
{'이름': "값"}
2. 문자열은 큰따옴표 사용
작은따옴표는 사용할 수 없습니다:
// 올바른 예
{"메시지": "안녕하세요"}
// 잘못된 예
{"메시지": '안녕하세요'}
3. 마지막 항목 뒤 콤마 금지
후행 콤마는 허용되지 않습니다:
// 올바른 예
{
"a": 1,
"b": 2
}
// 잘못된 예
{
"a": 1,
"b": 2,
}
4. 주석 미지원
JSON은 주석을 지원하지 않습니다. 주석이 필요한 경우 JSON5나 JSONC를 고려해야 합니다.
JSON과 JavaScript 객체의 차이
많은 개발자가 혼동하는 부분입니다:
| 특징 | JSON | JavaScript 객체 |
|------|------|-----------------|
| 키 | 반드시 문자열 (큰따옴표) | 따옴표 선택적 |
| 문자열 | 큰따옴표만 가능 | 작은따옴표, 큰따옴표 모두 가능 |
| 함수 | 지원 안 함 | 지원 |
| undefined | 지원 안 함 | 지원 |
| 주석 | 지원 안 함 | 지원 |
JavaScript에서 JSON 사용하기
JSON 파싱 (문자열 → 객체)
const jsonString = '{"이름": "김철수", "나이": 30}';
const obj = JSON.parse(jsonString);
console.log(obj.이름); // "김철수"
JSON 직렬화 (객체 → 문자열)
const obj = {
이름: "이영희",
나이: 25,
취미: ["독서", "음악"]
};
const jsonString = JSON.stringify(obj, null, 2);
console.log(jsonString);
JSON 검증하기
유효한 JSON인지 확인하는 방법:
function isValidJSON(str) {
try {
JSON.parse(str);
return true;
} catch (e) {
return false;
}
}
console.log(isValidJSON('{"key": "value"}')); // true
console.log(isValidJSON('{key: value}')); // false
결론
JSON은 현대 웹 개발의 핵심 기술입니다. 간결하고 읽기 쉬우며 거의 모든 프로그래밍 언어에서 지원됩니다. API 통신, 데이터 저장, 설정 관리 등 다양한 곳에서 활용되며, JSON을 이해하는 것은 모든 웹 개발자에게 필수적인 기술입니다.
JSON의 기본을 마스터했다면, 다음 단계로 JSON 스키마, JSON Path, 그리고 다양한 JSON 도구들을 탐구해보세요!
관련 글
JSON 파일: 구조와 사용법 완벽 가이드
JSON 파일에 대한 종합 가이드 - .json 확장자, MIME 타입, 구조 및 JSON 파일을 효과적으로 생성, 열기, 사용하는 방법을 배워보세요.
JSON vs XML: 2026년 데이터 형식 비교
JSON과 XML의 차이점, 장단점, 사용 사례를 상세히 비교합니다. 프로젝트에 적합한 데이터 형식을 선택하는 방법을 알아보세요.
JSON 포맷하는 방법: 완벽 가이드 2026
JSON을 올바르게 포맷하는 방법을 배우세요. 온라인 도구, IDE 설정, 명령줄 도구 및 프로그래밍 방식 포맷팅에 대한 종합 가이드입니다.