```json { "id": 12345, "title": "JSON Example", "tags": ["data", "format", "api"], "author": { "name": "Kim Daeseong", "email": "[email protected]" }, "published": true, "comments": [ { "user": "alice", "message": "Great post!", "likes": 10 }, { "user": "bob", "message": "Very helpful, thanks!", "likes": 7 } ] } ``` ### 1. 소개 (Introduction) - JSON이란 무엇인가? - 이름의 의미 (JavaScript Object Notation) - XML 등 다른 데이터 포맷과의 비교 ### 2. 기본 문법 - 데이터 구조 - 객체(Object) - 배열(Array) - 값(Value: 문자열, 숫자, 불리언, null) - 키-값 쌍 규칙 - 따옴표 사용 규칙 (Double quotes) ### 3. 예제 - 간단한 JSON 객체 - 중첩 구조 (Nested JSON) - 배열을 포함한 JSON ### 4. 활용 사례 - 설정 파일 (e.g., `package.json`, `tsconfig.json`) - API 요청 및 응답 포맷 - 데이터 저장 및 전송 ### 5. JSON과 프로그래밍 언어 - JavaScript에서 JSON 다루기 (`JSON.parse`, `JSON.stringify`) - Python의 `json` 모듈 - Java, Go, R 등 다른 언어에서의 활용 ### 6. 확장 및 응용 - JSON Schema (데이터 유효성 검증) - JSON5 (주석, 단일 따옴표 허용 등 확장 문법) - BSON, MessagePack 등 파생 포맷 ### 7. 장점과 한계 - 장점: 경량, 읽기 쉬움, 언어 독립성 - 한계: 주석 불가, 대규모 데이터 비효율성 ### 8. 베스트 프랙티스 - 들여쓰기와 포맷팅 - 데이터 크기 최소화 - UTF-8 인코딩 권장 - 키 이름 명확하게 작성하기 ### 9. 도구 및 에코시스템 - JSON Validator, Linter - JSON Viewer/Formatter - 온라인 편집기 및 시각화 툴 ### 10. 최신 동향 - OpenAPI/Swagger에서 JSON의 역할 - GraphQL과 JSON의 관계 - JSON 기반 설정 관리 트렌드