1.1 JSON의 출현
JSON (JavaScript Object Notation) — 이건 데이터를 교환하기 위한 텍스트 형식이야. 2000년대 초반에 더글러스 크록포드가 개발했고, 그 단순함과 사용의 용이성 덕분에 인기를 끌었어.
JSON의 주된 아이디어는 사람이 읽기 쉽고 프로그램이 파싱하고 생성하기 쉬운 형식을 만드는 거야. JSON은 원래 JavaScript 문법을 바탕으로 개발되었지만, 그 형식이 너무 범용적이어서 많은 다른 프로그래밍 언어에서도 사용되고 지원하게 되었어. 지금은 JavaScript와 독립적으로 JSON을 사용할 수 있고, 다양한 시스템과 애플리케이션에서 프로그래밍 언어와 상관없이 데이터 교환의 표준이 되었어.
JSON은 사실 JavaScript 언어로 객체의 상태를 기록하는 거야. 거의 그렇지. 그래서 JSON은 프론트엔드를 위한 API를 작성하는 사람들 사이에서 특히 인기가 많아. 또한, JSON은 구성 파일과 로그를 저장하는 데 널리 사용돼.
JSON의 주요 특징들
읽기 쉬움:
JSON 형식은 사람들도 쉽게 읽고 이해할 수 있어. 이 점 덕분에 구성 파일이나 클라이언트와 서버 간의 데이터 교환에 유용하게 사용돼.
언어 독립성:
비록 JSON이 JavaScript 문법을 기반으로 하고 있지만, 모든 프로그래밍 언어에서 사용될 수 있어. 많은 프로그래밍 언어에서 JSON 작업을 위한 내장 라이브러리를 제공해.
파싱의 용이함:
파싱(영어 "parsing"에서) — 데이터, 보통 텍스트나 코드의 구조를 분석하고 이해할 수 있는 정보를 추출하는 과정이야. 프로그래밍 맥락에서 파싱은 자주 텍스트 데이터 처리를 위해 사용돼. JSON은 클라이언트와 서버 측에서 쉽게 파싱하고 생성할 수 있어. 지금은 모든 프로그래밍 언어에 객체를 JSON으로 변환하고 다시 되돌리는 라이브러리가 존재해.
표준과 명확한 리더:
10년 전만 해도 JSON은 XML과 API의 표준으로 경쟁했어. 지금 JSON은 승리했고 명확한 리더가 되었어. 백엔드 API에서는 JSON만 지원해도 충분해, 다른 서버들이 호출하는 경우에도 말이야.
1.2 JSON 구조
JSON은 "키-값" 쌍의 모음으로, 그 문법은 두 가지 주요 구조로 이루어져 있어:
객체: 객체는 비정렬된 "키-값" 쌍의 모음이야. 키는 문자열이고 값은 JSON이 지원하는 데이터 유형일 수 있어.
{
"name": "John",
"age": 30,
"isStudent": false,
"courses": ["Math", "Science"],
"address": {
"city": "New York",
"zipCode": "10001"
}
}
배열/리스트: 배열은 값의 정렬된 모음이야 (Python의 리스트와 비슷해). 값은 JSON이 지원하는 데이터 유형일 수 있어.
["Apple", "Banana", "Cherry", 100, 3.14, true]
Python 객체와 아주 비슷하지 않아?
사실 JSON은 JavaScript 데이터 기록 표준이야, 그리고 JavaScript는 Python에 영감을 받아 개발됐어. JSON을 사용하는 걸 좋아하게 될 거야.
1.3 JSON의 데이터 유형
JSON은 다음 데이터 유형을 지원해:
문자열: 큰따옴표로 표시돼.
"name": "John"
숫자: 정수거나 소수점이 있을 수 있어.
"age": 30
객체: 비정렬된 "키-값" 쌍의 모음이야.
"address": {
"city": "New York",
"zipCode": "10001"
}
배열/리스트: 값의 정렬된 모음이야.
"courses": ["Math", "Science"]
부울 값: true 또는 false.
"isStudent": false
Python과 달리, true와 false는 여기서 소문자로 작성돼.
null: 빈 값을 나타내.
"middleName": null
날짜 및 시간: 문자열로 전달돼.
{
"datetime": "2023-05-15T14:30:00Z",
"date": "2023-05-15",
"time": "14:30:00"
}
예전에 이들을 UNIX timestamp 형식의 숫자로 전달하기도 했었지만, 그 방식은 이제 과거의 일이야.
GO TO FULL VERSION