JSON 최종 수정일 2026-06-18 19:05 조회수 6
대시보드

JSON

기본 정보

  • 이름: JSON
  • 영문명: JavaScript Object Notation
  • 분류: 데이터 교환 형식(Data Interchange Format)
  • 최초 공개: 2001년
  • 표준: RFC 8259
  • 주요 용도: API 통신, 설정 파일, 데이터 저장 및 전송
  • 관련 주제: #JSON #API #REST #데이터포맷

개요

JSON(JavaScript Object Notation)은 사람이 읽기 쉽고 컴퓨터가 쉽게 처리할 수 있는 경량 데이터 교환 형식이다.

JavaScript 객체 표기법에서 유래했지만, 현재는 Java, PHP, Python, C#, Go, Node.js 등 거의 모든 프로그래밍 언어에서 지원하는 표준 데이터 형식으로 사용된다.

REST API와 모바일 앱, 웹 서비스 간 데이터 통신에서 가장 많이 사용되는 형식이다.


주요 특징

  • 텍스트 기반
  • 사람이 읽기 쉬움
  • 구조가 단순함
  • 언어 독립적
  • 데이터 전송에 최적화
  • 대부분의 언어에서 지원

기본 구조

{
  "name": "구름",
  "age": 30,
  "admin": true
}

JSON은 Key : Value 형태로 데이터를 표현한다.


데이터 타입

타입예시
String"홍길동"
Number100, 3.14
Booleantrue, false
Object{}
Array[]
Nullnull

객체(Object)

{
  "name": "홍길동",
  "age": 30,
  "city": "서울"
}

중괄호 {}로 표현한다.


배열(Array)

[
  "Apple",
  "Banana",
  "Orange"
]

대괄호 []로 표현한다.


객체 배열

[
  {
    "id": 1,
    "name": "홍길동"
  },
  {
    "id": 2,
    "name": "김철수"
  }
]

API에서 가장 많이 사용하는 형태이다.


중첩 객체

{
  "user": {
    "name": "구름",
    "age": 30
  }
}

객체 안에 객체를 포함할 수 있다.


중첩 배열

{
  "items": [
    {
      "title": "노트북"
    },
    {
      "title": "마우스"
    }
  ]
}

실제 쇼핑몰 API에서 자주 사용하는 구조이다.


JSON 규칙

  • Key는 반드시 큰따옴표(") 사용
  • 문자열은 큰따옴표 사용
  • 마지막 요소 뒤에 쉼표(,) 사용 불가
  • 주석(//, /* */) 지원하지 않음
  • UTF-8 사용 권장

JavaScript

객체 → JSON

const json = JSON.stringify(user);

JSON → 객체

const obj = JSON.parse(json);

PHP

배열 → JSON

echo json_encode($data);

JSON → 배열

$data = json_decode($json, true);

Python

객체 → JSON

import json

json.dumps(data)

JSON → 객체

json.loads(text)

Java

ObjectMapper mapper =
new ObjectMapper();

Jackson 라이브러리를 많이 사용한다.


C#

JsonSerializer.Serialize(obj);

JsonSerializer.Deserialize<User>(json);

REST API 예시

응답(Response)

{
  "success": true,
  "message": "정상 처리",
  "data": {
    "id": 1,
    "name": "구름"
  }
}

게시판 API 예시

{
  "wr_id": 100,
  "subject": "공지사항",
  "writer": "관리자",
  "created_at": "2026-06-18"
}

쇼핑몰 API 예시

{
  "product_id": 1,
  "name": "노트북",
  "price": 1500000,
  "stock": 20
}

장점

  • 가독성이 좋음
  • 데이터 크기가 작음
  • 언어 독립적
  • API 표준으로 널리 사용됨
  • 파싱 속도가 빠름
  • 구조가 단순함

단점

  • 주석 지원 안 함
  • 날짜 타입이 없음
  • 매우 큰 데이터에서는 XML보다 표현력이 제한될 수 있음
  • 중복 Key 사용 시 문제가 발생할 수 있음

XML과 비교

JSONXML
문법이 간결태그 기반
데이터 크기가 작음상대적으로 큼
파싱 속도가 빠름비교적 느림
API에서 많이 사용레거시 시스템에서 사용
가독성이 높음구조 표현력이 풍부

실무 메모

실무에서는 다음과 같은 방식이 권장된다.

  • snake_case 또는 camelCase 규칙 통일
  • 응답 구조 표준화 (success, message, data)
  • UTF-8 사용
  • 불필요한 데이터 제외
  • 날짜는 ISO 8601 형식 사용
  • Null 값 처리 정책 정의
  • API 버전 관리(/api/v1)
  • Swagger(OpenAPI) 문서 작성
  • 민감한 정보는 응답에 포함하지 않음
  • JSON Schema 검증 활용

JSON과 함께 사용하는 기술


대표 활용 분야

  • REST API
  • 모바일 앱
  • 웹 서비스
  • 설정 파일
  • AI API
  • 클라우드 서비스
  • 데이터 교환
  • NoSQL 데이터 저장

관련 문서


출처

  • JSON 공식 홈페이지
  • RFC 8259 - The JavaScript Object Notation (JSON) Data Interchange Format
  • ECMA-404 JSON 표준