← 블로그로 돌아가기

JSON이란 무엇인가? JavaScript Object Notation 완벽 가이드

JSON(JavaScript Object Notation)의 기본 개념부터 실제 활용까지. 웹 개발의 필수 데이터 형식인 JSON을 완벽하게 이해해보세요.

Big JSON Team8분 소요beginner
B

Big JSON Team

Technical Writer

Expert in JSON data manipulation, API development, and web technologies. Passionate about creating tools that make developers' lives easier.

8 분 읽기

# 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 도구들을 탐구해보세요!

Share:

관련 글

Read in English