상세 컨텐츠

본문 제목

JSON vs XML 차이

IT

by JR 2026. 4. 30. 15:10

본문

300x250

 

기본 형태 비교

JSON (JavaScript Object Notation)

{
  "user": {
    "id": 1001,
    "name": "홍길동",
    "email": "hong@example.com",
    "roles": ["admin", "user"]
  }
}

XML (eXtensible Markup Language)

<user>
  <id>1001</id>
  <name>홍길동</name>
  <email>hong@example.com</email>
  <roles>
    <role>admin</role>
    <role>user</role>
  </roles>
</user>

한눈에 비교

구분 JSON XML
발표 시기 2001년경 (대중화 2005~) 1998년 (W3C 표준)
문법 키-값 쌍 ({}, []) 태그 기반 (<tag></tag>)
데이터 크기 작음 (가벼움) 큼 (태그 중복)
가독성 높음 (간결) 낮음 (장황함)
파싱 속도 빠름 느림
데이터 타입 string, number, boolean, null, object, array 모두 문자열 (타입 개념 없음)
속성(attribute) 없음 (다 키-값) 있음 (<user id="1001">)
주석 지원 안 함 지원 (<!-- -->)
스키마 검증 JSON Schema (선택적) XSD, DTD (강력·표준)
네임스페이스 없음 있음 (xmlns)
변환·표현 별도 도구 필요 XSLT, XPath, XQuery 내장
주 사용처 REST API, 모바일, 웹 SOAP, 금융 전문, 공공 표준, 설정 파일

상세 차이점

1. 데이터 크기 (같은 정보 기준 약 30~50% 차이)

같은 데이터를 표현할 때 XML이 태그가 열고 닫히기 때문에 훨씬 큽니다.

  • JSON: "name": "홍길동" → 18자
  • XML: <name>홍길동</name> → 21자

대용량 통신·모바일 환경에서 JSON이 유리한 가장 큰 이유입니다.

2. 데이터 타입

{ "age": 30, "active": true, "score": null }

JSON은 숫자·불리언·null이 구분됩니다.

<age>30</age>
<active>true</active>
<score></score>

XML은 전부 문자열이라 받는 쪽에서 타입 변환을 해야 합니다.

3. 배열 표현

JSON은 []로 깔끔하게:

"roles": ["admin", "user"]

XML은 같은 태그를 반복 (배열 개념이 없음):

<roles>
  <role>admin</role>
  <role>user</role>
</roles>

4. 속성(Attribute) 표현

XML은 같은 정보를 두 가지 방식으로 표현 가능:

<!-- 속성 방식 -->
<user id="1001" name="홍길동"/>

<!-- 엘리먼트 방식 -->
<user>
  <id>1001</id>
  <name>홍길동</name>
</user>

→ 어느 쪽으로 쓸지 설계 시 고민해야 함 (JSON은 이런 고민 없음).

5. 스키마 검증

  • XML: XSD(XML Schema Definition)가 표준이고 매우 강력 — 타입·필수/선택·범위까지 검증
  • JSON: JSON Schema가 있지만 선택적이고 후발주자

→ 금융·공공 표준처럼 엄격한 계약(Contract)이 필요한 도메인에선 XML이 여전히 강세


어디에 어떤 걸 쓰는가?

JSON이 사실상 표준인 영역

  • REST API (대부분의 현대 웹/모바일 서비스)
  • 모바일 앱 ↔ 서버 통신 (트래픽이 작아야 함)
  • NoSQL DB (MongoDB, Elasticsearch — 내부 저장 형식)
  • 설정 파일 (package.json, tsconfig.json)
  • 웹 프론트엔드 (자바스크립트와 자연스럽게 호환)

XML이 여전히 쓰이는 영역

  • SOAP 웹서비스 (구형 엔터프라이즈, 보험·은행 일부)
  • 금융 전문 표준 (ISO 20022, FIXML)
  • 공공기관 연계 (전자정부 표준, 국세청 홈택스 등 — 여전히 XML 많음)
  • Java/Spring 설정 (web.xml, applicationContext.xml — 요즘은 어노테이션·yaml로 이동)
  • Office 문서 (docx, xlsx 내부는 XML)
  • Android 레이아웃 (activity_main.xml)
  • RSS/Atom 피드, SVG, SOAP
연동 대상 주력 포맷
신규 PG / 간편결제 REST API JSON
카드사 VAN 전문통신 자체 바이너리 전문 (JSON·XML 아님)
오픈뱅킹 (금융결제원) JSON
ISO 20022 (국제 송금·차세대 결제) XML
일부 은행 펌뱅킹·구형 시스템 XML 또는 고정 전문
공공기관(국세청, 건강보험 등) XML 많음

한 줄 요약

JSON가볍고 빠르고 모바일·웹에 최적 → 현대 REST API의 사실상 표준 XML엄격한 스키마·메타데이터·표준화가 강점 → 금융 국제표준·공공·레거시에 여전히 살아있음

신규 서비스라면 JSON이 디폴트, 외부 표준·레거시 연동 시에만 XML 사용 — 이게 실무 기준입니다.

 

 

 

 

300x250

관련글 더보기