가이드

JSON이란? 예시로 배우는 쉬운 설명

JSON(JavaScript Object Notation)은 고객, 주문, 상품 목록처럼 구조화된 데이터를 이름과 값의 쌍으로 적는 간단한 텍스트 형식입니다. 사람이 읽기 쉽고, 프로그램이 만들고 해석하기도 쉽습니다. 앱과 서비스가 웹에서 데이터를 교환할 때 JSON은 단연 가장 흔한 형식입니다.

AI로 만들 때 JSON이 중요한 이유

코드를 직접 작성하지 않더라도 JSON은 계속 마주치게 됩니다.

  • API. 앱의 화면이 백엔드에서 데이터를 불러오거나, 백엔드가 결제, 이메일, AI 서비스를 호출할 때 데이터는 보통 JSON으로 오갑니다. API란 무엇인가요를 참고하세요.
  • 설정 파일. 많은 프로젝트 설정 파일이 JSON입니다. 예를 들어 package.json은 JavaScript 프로젝트의 의존성 목록을 담습니다.
  • 데이터베이스. Postgres는 정형 행과 열에 맞지 않는 데이터를 위해 열(jsonb 타입)에 JSON을 저장할 수 있습니다. Postgres란 무엇인가요를 참고하세요.
  • AI 출력. AI 모델이 프로그램이 사용할 수 있는 형태, 예를 들어 태그 목록이나 추출된 청구서 항목을 돌려주기를 원할 때는 보통 JSON을 요청합니다.
  • 오류 메시지와 로그. 많은 오류가 JSON 형태로 전달되며, 이를 읽는 것이 무엇이 잘못되었는지 가장 빨리 알아내는 방법인 경우가 많습니다.

JSON을 읽을 수 있으면 앱이 실제로 받은 데이터를 확인하고, 빠진 필드를 찾아내고, 문제를 AI 빌더에게 정확히 설명할 수 있습니다.

일상적인 비유

종이 양식을 떠올려 보세요. 이름: ____, 전화번호: ____, 뉴스레터: ☐ 예 ☐ 아니요. 모든 입력란은 레이블과 그 옆의 값으로 이루어져 있습니다. JSON은 이런 양식을 텍스트로 적은 것이며, 컴퓨터가 추측하지 않고도 읽을 수 있도록 엄격한 형식을 따릅니다. 그리고 양식처럼 JSON에도 섹션 안의 섹션(도로명, 도시, 우편번호가 들어간 주소 블록)과 목록(여러 전화번호)이 들어갈 수 있습니다.

JSON 모습

다음은 예약 하나를 JSON으로 나타낸 것입니다.

{
  "id": 5001,
  "customer": "Lena Park",
  "service": "Haircut",
  "startsAt": "2026-10-03T14:00:00Z",
  "price": 35.5,
  "paid": false,
  "notes": null,
  "extras": ["beard trim", "hot towel"],
  "contact": {
    "email": "lena@example.com",
    "phone": "+44 20 7946 0000"
  }
}

읽는 방법은 다음과 같습니다.

  • 중괄호 { }는 객체를 감쌉니다. 이름과 값의 쌍을 모아 둔 것입니다.
  • 각 쌍은 "name": value 형태이며, 쉼표로 구분합니다.
  • 대괄호 [ ]는 배열을 감쌉니다. 순서가 있는 목록입니다.
  • 객체와 배열은 contact와 extras처럼 서로 안에 들어갈 수 있습니다.

여섯 가지 값의 종류

JSON의 값 타입은 여섯 가지뿐입니다. 이 작은 목록이 JSON이 어디서나 작동하는 큰 이유 중 하나입니다.

타입예시참고
문자열(텍스트)"Lena Park"항상 큰따옴표 사용
숫자35.5, -2, 1e6따옴표 없음. 통화 기호 없음
불리언true, false소문자, 따옴표 없음
nullnull"값 없음"
객체{ "city": "Leeds" }이름이 붙은 값들
배열[1, 2, 3]순서가 있는 목록. 항목은 어떤 타입이든 가능

날짜 타입은 없습니다. 날짜는 보통 위에서 보여 준 ISO 8601 형식의 문자열로 씁니다(2026-10-03T14:00:00Z에서 Z는 UTC를 뜻합니다). 이 형식에 합의하면 시간대 관련 버그 범주 전체를 피할 수 있습니다.

엄격한 규칙(오류가 생기는 곳)

JSON은 생각보다 관대하지 않습니다. 다음은 모두 잘못된 형식입니다.

{ name: "Lena" }            ← 큰따옴표 없는 키
{ 'name': 'Lena' }          ← 작은따옴표
{ "a": 1, "b": 2, }         ← 끝 쉼표
{ "a": 1 "b": 2 }           ← 쉼표 누락
{ "a": 1 // comment }       ← 주석은 허용되지 않음

여러분이 보게 될 "Unexpected token" 오류 대부분은 이 중 하나입니다. JSON 검사기나 포매터는 정확한 줄을 보여 줍니다.

실제 예시: 앱을 통해 오가는 JSON

고객이 미용실 앱에서 헤어컷을 예약합니다. 여기서 JSON이 나타나는 과정은 다음과 같습니다.

  1. 예약 양식이 앱의 백엔드로 다음을 보냅니다.
{ "service": "Haircut", "startsAt": "2026-10-03T14:00:00Z", "name": "Lena Park" }
  1. 백엔드는 예약을 데이터베이스에 저장하고, 상태 201 Created와 함께 다음을 응답합니다.
{ "id": 5001, "status": "confirmed" }
  1. 그 시간이 이미 찼다면, 대신 상태 409 Conflict와 함께 다음을 응답할 수 있습니다.
{ "error": "slot_taken", "message": "That time was just booked. Please pick another." }

페이지는 status 또는 error를 읽고 올바른 메시지를 보여 줍니다. 페이지에 빈 화면이 나타난다면, 브라우저 개발자 도구(Network 탭)를 열면 이 JSON을 볼 수 있습니다. 무엇이 잘못되었는지 알아내는 가장 빠른 단서인 경우가 많습니다.

핵심 용어

용어의미
키(Key)"email"처럼 이름과 값의 쌍에서 이름 부분입니다.
파싱(Parse)JSON 텍스트를 프로그램이 사용할 수 있는 데이터로 바꾸는 것입니다.
직렬화 / 스트링화(Serialize / stringify)데이터를 보내거나 저장하기 위해 JSON 텍스트로 바꾸는 것입니다.
페이로드(Payload)요청이나 응답으로 전송되는 데이터입니다.
스키마(Schema)데이터가 가져야 할 형태, 즉 어떤 필드가 있고 어떤 타입인지에 대한 설명입니다. JSON Schema는 이를 작성하는 표준 방식입니다.
JSONB인덱싱과 쿼리가 가능한 Postgres의 바이너리 JSON 열 타입입니다.
NDJSON / JSON Lines한 줄에 JSON 객체 하나씩 두는 형식으로, 로그와 스트리밍에 흔히 쓰입니다.

흔한 오해

  • "JSON은 JavaScript다." JavaScript 문법에서 나왔지만 특정 언어에 종속되지 않습니다. Python, Java, C#, Go 등 거의 모든 언어가 JSON을 읽습니다.
  • "숫자를 따옴표로 감싸도 괜찮다." "35"는 숫자가 아니라 문자열입니다. 둘을 섞으면 "35" + "5"가 "355"가 되는 것 같은 버그가 생깁니다. 금액은 반올림 문제를 피하기 위해 정수 센트(3550)로 저장하는 편이 나은 경우가 많습니다.
  • "그냥 데이터일 뿐이니 JSON은 안전하다." JSON은 비밀 정보를 포함해 무엇이든 담을 수 있습니다. 브라우저로 보내는 JSON에 API 키를 넣지 마세요.
  • "모든 것을 JSON 열에 넣어라." 유연한 추가 정보에는 편리하지만, 검색, 필터링, 조인의 기준이 되는 데이터는 보통 제대로 된 열에 두어야 합니다.
  • "AI는 항상 올바른 JSON을 돌려준다." 모델은 추가 텍스트를 넣거나 형식을 깨뜨릴 수 있습니다. 많은 제공업체가 구조화된 출력 모드를 제공하지만, 코드는 여전히 돌아온 결과를 검사해야 합니다.

AI 빌더에 요청하면 좋은 것

  • "이 엔드포인트가 반환하는 JSON 예시를 보여 줘."
  • "오류는 error 코드와 사람이 읽을 수 있는 message를 포함한 JSON으로 반환해 줘."
  • "날짜는 UTC 기준 ISO 8601 문자열로 저장하고, 화면에 표시할 때만 현지 시간으로 변환해 줘."
  • "가격은 정수 센트로 저장해 줘."
  • "들어오는 JSON은 서버에서 검증하고, 필드가 빠졌거나 타입이 잘못된 요청은 거부해 줘."
  • "AI 모델을 호출할 때는 이 정확한 형태의 JSON을 요청하고, 사용하기 전에 확인해 줘."

Mythex에서의 JSON

Mythex에서는 JSON을 직접 작성할 필요가 없습니다. 원하는 것을 설명하면 에이전트가 이를 주고받는 코드를 작성합니다. 그래도 JSON을 알아볼 줄 알면 도움이 됩니다. 무언가 고장 났을 때 JSON 오류를 채팅에 붙여 넣으면 에이전트에게 정확한 단서를 줄 수 있습니다. 문서의 REST API 백엔드 레시피는 처음부터 "명확한 JSON 오류"를 요구하며, 모든 API 연동 레시피는 외부 서비스 호출을 다룹니다. 더 넓은 맥락은 REST와 GraphQL 비교와 AI로 만든 앱을 디버그하는 방법을 참고하세요.

자주 묻는 질문

쉽게 말해 JSON이란 무엇인가요?

JSON(JavaScript Object Notation)은 구조화된 데이터를 "name": "Lena"처럼 이름과 값의 쌍으로 적는 일반 텍스트 형식입니다. 거의 모든 웹 API가 데이터를 주고받을 때 이를 사용하며, 많은 앱이 설정과 저장 데이터에도 사용합니다.

JSON은 프로그래밍 언어인가요?

아닙니다. JSON은 언어가 아니라 데이터 형식입니다. 그 자체로는 아무것도 실행하지 못하고, 데이터를 기술할 뿐입니다. JavaScript에서 시작되었지만, 사실상 거의 모든 프로그래밍 언어가 JSON을 읽고 쓸 수 있습니다.

JSON과 JavaScript 객체의 차이는 무엇인가요?

겉보기에는 비슷하지만 JSON이 더 엄격합니다. JSON에서는 모든 키를 큰따옴표로 감싸야 하고, 문자열도 큰따옴표를 사용하며, 주석이나 끝에 붙는 쉼표는 허용되지 않습니다. 값은 문자열, 숫자, true, false, null, 객체, 배열로 제한됩니다.

내 JSON이 잘못되었다고 나오는 이유는 무엇인가요?

흔한 원인은 마지막 항목 뒤의 끝 쉼표, 큰따옴표 대신 사용한 작은따옴표, 항목 사이의 빠진 쉼표, 닫히지 않은 괄호, 또는 주석입니다. JSON 검사기에 붙여 넣으면 문제가 있는 줄을 알려 줍니다.

Mythex · Pricing · AI로 무엇이든 만들기 · 웹사이트 및 앱 템플릿 · Mythex 비교 · AI 앱 개발 용어집 · 무료 AI 앱 개발 도구 · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)