정지용
기술스택 목록
데이터

JSON

프로젝트 4에서 사용했습니다. 각 프로젝트에서 어떤 역할로 썼는지 아래에 정리했습니다.

이 기술은 무엇인가요?

키-값 구조로 데이터를 표현하는 가볍고 언어 독립적인 텍스트 데이터 포맷

JSON(JavaScript Object Notation)은 사람이 읽기 쉬우면서도 프로그램이 파싱하기 쉬운 텍스트 기반 데이터 표현 형식이다. 객체, 배열, 문자열, 숫자, 불리언, null 이라는 소수의 자료형만으로 복잡한 구조도 중첩 표현할 수 있다. 특정 언어에 종속되지 않아 서로 다른 시스템, 언어, 프로세스 간에 데이터를 주고받거나 설정값·상태값을 파일로 저장하는 용도로 널리 쓰인다. XML 같은 기존 포맷보다 문법이 단순해 파싱 비용과 가독성 부담을 줄이려는 목적으로 자리 잡았다.

이럴 때 사용합니다

  • 서로 다른 언어·시스템 간에 데이터를 교환해야 할 때
  • 설정값, 로컬 상태, 템플릿 등을 사람이 읽을 수 있는 파일로 저장하고 싶을 때
  • API 요청·응답처럼 구조화된 데이터를 주고받는 표준 포맷이 필요할 때
  • 복잡한 파서 없이 대부분의 언어에서 기본 지원되는 가벼운 포맷이 필요할 때

핵심 개념

object
중괄호로 감싼 키-값 쌍의 집합으로, 키는 항상 문자열이며 값에는 다른 객체나 배열도 올 수 있다.
array
대괄호로 감싼 값들의 순서 있는 목록으로, 서로 다른 타입의 값도 함께 담을 수 있다.
serialization / parsing
프로그램 내부의 자료구조를 JSON 텍스트로 바꾸는 과정(직렬화)과 그 반대로 텍스트를 자료구조로 복원하는 과정(파싱)을 가리킨다.
schema
JSON 문서가 가져야 할 필드, 타입, 필수 여부 등을 정의하는 별도의 규약으로, JSON 자체에는 강제되지 않는다.
data type 제한
JSON은 문자열, 숫자, 불리언, null, 객체, 배열 여섯 가지 타입만 지원하며 날짜나 함수 같은 타입은 표현할 수 없다.

기본 JSON 구조 예시

봇의 이름, 활성 여부, 이동평균 상태, 수익 이력 등을 객체와 배열, 다양한 타입의 값으로 표현한 예시이다.

JSON
{
  "name": "altcoin-bot",
  "active": true,
  "movingAverage": {
    "period": 20,
    "lastValue": 1523.7
  },
  "profitHistory": [1500, 1520, 1523.7],
  "note": null
}

처음 쓸 때 흔한 함정

  • 주석(comment)을 지원하지 않아 표준 JSON 파일에는 설명을 적을 수 없다.
  • 키는 반드시 큰따옴표로 감싸야 하며 작은따옴표나 트레일링 콤마는 허용되지 않는다.
  • 날짜나 undefined 같은 타입이 없어 문자열이나 숫자로 대체 표현해야 한다.

위 개요는 기술 학습을 돕기 위해 자동 생성된 일반 설명입니다. 정확한 사양과 최신 정보는 공식 문서를 확인하세요.

프로젝트별 활용 방식

위 개념이 실제 프로젝트에서 어떻게 쓰였는지 보여줍니다.

함께 사용한 기술

위 프로젝트들에서 같이 쓰인 다른 기술입니다.