XML,JSON,YAML에 대하여

Gunju Kim·2025년 3월 19일
0

필수시청 영상

목록 보기
12/32

XML이란?

XML (eXtensible Markup Language) 은 데이터를 태그(tag) 로 감싸 표현하는 마크업 언어입니다.

🔹 특징

  • 태그 기반으로 데이터를 표현합니다.
  • 태그는 직접 정의할 수 있어 확장성(extensible) 이 뛰어납니다.
  • 구조적 데이터를 표현하는 데 적합합니다.
  • 데이터와 표현이 명확하게 구분됩니다.

🔸 예시

<person>
    <name>홍길동</name>
    <age>25</age>
    <email>hong@example.com</email>
</person>

📍 장점

  • 사람과 기계 모두에게 가독성이 좋음
  • 다양한 시스템 간 데이터 교환 시 범용성 높음
  • 명확한 구조와 표현의 구분

📍 단점

  • 파일 크기가 상대적으로 큼(태그로 인해 오버헤드가 많음)
  • 구문이 다소 복잡할 수 있음

📍 주요 사용처

  • 안드로이드 앱 개발에서 UI 레이아웃 정의
  • 웹서비스 데이터 전달(SOAP API 등)
  • 문서 교환 및 설정 파일(예: Spring Framework의 applicationContext.xml)

JSON이란?

JSON (JavaScript Object Notation) 은 데이터를 키(key)와 값(value)의 쌍으로 이루어진 형태로 표현하는 가벼운 데이터 형식입니다.

🔹 특징

  • 데이터를 중괄호 {}와 대괄호 []로 묶어 표현합니다.
  • 데이터 표현이 간결하고 가볍습니다.
  • 웹과 JavaScript 기반 애플리케이션에서 많이 사용됩니다.

🔸 예시

{
    "name": "홍길동",
    "age": 25,
    "email": "hong@example.com",
    "skills": ["Java", "Python", "JavaScript"]
}

📍 장점

  • 구조가 간단하고 직관적이라 이해하기 쉬움
  • XML보다 데이터 크기가 작아 빠른 전송과 처리 가능
  • JavaScript와 호환성이 높아 웹 환경에서 주로 쓰임

📍 단점

  • XML만큼 강력한 표현(주석, 메타데이터 등)이 어려움
  • 스키마(schema) 정의가 별도로 필요할 수 있음(JSON Schema 등)

📍 주요 사용처

  • 웹서비스 API 데이터 송수신(REST API)
  • 자바스크립트 기반 프론트엔드 애플리케이션 데이터 교환(React, Vue 등)
  • 데이터베이스에 저장하는 문서형 데이터(MongoDB 등 NoSQL DB)

YAML이란?

YAML (YAML Ain't Markup Language) 은 사람이 읽기 쉽고, 간결한 데이터 직렬화 형식으로 JSON의 기능을 확장하여 보다 명확하고 직관적인 형식으로 데이터를 표현합니다.

🔹 특징

  • 키와 값을 콜론(:)으로 구분하고 들여쓰기를 사용하여 구조를 나타냅니다.
  • JSON과 호환되며 더 간결하게 데이터를 표현합니다.
  • 특히 설정 파일로 많이 사용됩니다.

🔸 예시

person:
  name: 홍길동
  age: 25
  email: hong@example.com
  skills:
    - Java
    - Python
    - JavaScript

📍 장점

  • 매우 간결하여 가독성이 뛰어남
  • 주석을 허용하여 설명을 추가할 수 있음
  • JSON의 구조를 포함하며 확장된 표현 가능

📍 단점

  • 들여쓰기(Indentation)에 민감하여 실수가 발생할 수 있음
  • XML보다 복잡한 메타데이터 표현이 어려움
  • 데이터가 복잡해질수록 이해가 어려워질 수 있음

📍 주요 사용처

  • 다양한 설정 파일 관리 (Spring Boot, Docker Compose, Kubernetes 설정 등)
  • 간단한 데이터 직렬화 및 구성 파일

🚩 언제 어떤 포맷을 쓰는 게 좋을까요?

  • XML: 명확한 구조와 복잡한 데이터를 표현하거나, 안드로이드 앱의 레이아웃이나 문서 표현을 할 때 좋습니다.

  • JSON: 웹 기반 API나 데이터 송수신 시 가장 효율적입니다. 특히 REST API와 JavaScript 환경에 적합합니다.

  • YAML: 설정 파일에 가장 적합합니다. 간결성과 가독성을 중시할 때 주로 사용됩니다.

🎯 한 줄 요약

  • XML은 태그 기반으로 범용적이지만 복잡하고 무거움.
  • JSON은 키-값 형태로 가볍고 직관적이며 웹 환경에 강력함.
  • YAML은 간결하고 가독성이 뛰어나 설정 파일에 최적화됨.
profile
처음이라서 그래 가본적 없던 길에

0개의 댓글