[CS] JSON

박원준·2026년 3월 17일

📘 1. JSON이란?

JSON(JavaScript Object Notation)은 데이터를 저장하거나 전송할 때 사용하는 경량 데이터 포맷입니다.
자바스크립트 객체 표기법에서 파생되었지만, 현재는 특정 언어에 종속되지 않는 독립적인 데이터 표준으로 자리 잡았습니다.

✅ 주요 특징

  • 가독성: 사람이 읽고 쓰기 쉽고, 기계가 분석(Parsing)하기에도 용이
  • 언어 독립성: Java, Python, C++, Go 등 대부분의 언어에서 지원
  • 효율성: XML보다 구조가 단순하여 데이터 크기가 작고 전송 속도가 빠름

📘 2. JSON 문법 및 자료형

JSON은 Key - Value 구조를 기반입니다.

✅ 기본 규칙


  • Key: 반드시 큰따옴표(") 사용
  • 문자열 값: 반드시 큰따옴표 사용 (작은따옴표 ❌)
  • 데이터 구분: 쉼표(,)로 구분, 마지막 요소 뒤에는 쉼표 ❌

✅ 지원하는 자료형

자료형설명예시
String유니코드 문자열"name": "Velog"
Number정수 또는 실수"age": 25, "score": 95.5
Object중괄호 {}로 감싸진 구조"address": {"city": "Seoul"}
Array대괄호 []로 감싸진 목록"skills": ["Java", "JS"]
Booleantrue / false"isActive": true
null값 없음"token": null

📘 3. 라이브러리별 주요 어노테이션

Java 환경에서 JSON ↔ 객체 변환 시 사용하는 어노테이션 정리

🟢 Jackson (Spring Boot 기본)

  • @JsonProperty("name")
    👉 JSON key와 Java 필드명이 다를 때 매핑

  • @JsonIgnore
    👉 특정 필드를 JSON 변환 대상에서 제외

  • @JsonInclude(JsonInclude.Include.NON_NULL)
    👉 null 값 필드는 JSON에서 제외

  • @JsonFormat(pattern = "yyyy-MM-dd")
    👉 날짜/시간 포맷 지정

  • @JsonIgnoreProperties(ignoreUnknown = true)
    👉 JSON에 있지만 객체에 없는 필드 무시


📘 4. JSON vs XML vs YAML 비교

구분JSONXMLYAML
가독성높음보통 (태그 기반)매우 높음 (들여쓰기)
용도웹 API 데이터 전송문서 구조 정의설정 파일
데이터 크기작음큼 (닫기 태그)가장 작음
주석 지원

0개의 댓글