JSON
기술노트
📄 JSON (JavaScript Object Notation)
JSON은 속성-값 쌍(attribute-value pairs) 또는 '키-값 쌍(key-value pairs)'으로 이루어진, 사람이 읽고 쓰기 쉬운 텍스트 기반의 데이터 교환 형식입니다. 이름에서 알 수 있듯이 본래 자바스크립트(JavaScript)의 객체 문법에서 파생되었지만, 현재는 특정 언어에 종속되지 않고 대부분의 프로그래밍 언어에서 사용할 수 있습니다.
웹 API에서 클라이언트와 서버가 데이터를 주고받을 때 가장 널리 사용되는 포맷입니다.
🧐 JSON의 기본 구조
JSON은 두 가지 기본 구조를 가집니다.
- 객체 (Object) : 중괄호 `{}` 로 둘러싸인 키-값 쌍의 집합입니다. 키는 반드시 문자열(큰따옴표로 감싸야 함)이어야 합니다.
```json {
"name": "홍길동", "age": 30, "isStudent": false
} ```
- 배열 (Array) : 대괄호 `[]` 로 둘러싸인 값의 순서 있는 목록입니다.
```json ["사과", "바나나", "딸기"] ```
이 두 구조를 조합하여 복잡한 데이터를 표현할 수 있습니다.
🆚 XML과의 비교
구분 | JSON | XML |
---|---|---|
형식 | 키-값 쌍 기반 | 태그 기반 |
가독성 | 간결하고 사람이 읽기 편함 | 태그 때문에 상대적으로 복잡함 |
파싱 속도 | 일반적으로 더 빠르고 메모리 소모가 적음 | 상대적으로 느리고 무거움 |
확장성 | 스키마가 없어 자유롭지만, 데이터 유효성 검증이 어려움 | DTD, XSD 등으로 엄격한 구조 정의 가능 |
💡 개발자 핵심 Point
- JSON은 현대 웹 개발에서 데이터 교환의 표준과 같은 위치에 있습니다.
- 대부분의 프로그래밍 언어는 JSON 문자열을 해당 언어의 객체나 자료구조로 변환(파싱, Parsing)하고, 그 반대로 변환(직렬화, Serialization)하는 라이브러리를 기본적으로 제공합니다.
- RESTful API를 설계하고 사용할 때, 요청(Request)과 응답(Response)의 본문(Body)은 대부분 JSON 형식으로 이루어집니다.
- 복잡한 설정 파일(Configuration)을 작성하는 데에도 널리 사용됩니다.