얄팍한 코딩사전 - XML, JSON, YAML이 뭔가요?

Kkd·2024년 11월 26일

코딩 영상 후기

목록 보기
6/34

movie

XML, JSON, YAML은 데이터를 구조화하고 표현하기 위한 포맷입니다. 각각의 특징과 사용 사례를 아래에 정리했습니다.


1. XML (eXtensible Markup Language)

  • 설명: 데이터를 계층적으로 표현하는 마크업 언어로, HTML과 유사한 구조를 가짐.
  • 특징:
    • 태그(<>)를 사용하여 데이터를 구조화.
    • 데이터와 메타데이터(설명)가 함께 포함될 수 있음.
    • 형식이 엄격하며, 확장성이 높음.
    • 사람이 읽기 어렵지만, 기계가 처리하기 적합.
    • 다양한 검증 도구 (DTD, XSD)를 통해 데이터의 유효성 검증 가능.
  • 사용 예:
    • 설정 파일 (예: Spring의 applicationContext.xml).
    • 문서 저장 (예: Microsoft Office 파일 포맷).
    • 데이터 교환 (SOAP 웹 서비스).
  • 예제:
    <user>
        <id>1</id>
        <name>John</name>
        <email>john@example.com</email>
    </user>

2. JSON (JavaScript Object Notation)

  • 설명: JavaScript 객체 표기법을 기반으로 한 경량 데이터 교환 포맷.
  • 특징:
    • 키-값 쌍(key-value)의 형태로 데이터를 표현.
    • 사람이 읽기 쉽고 기계도 쉽게 파싱 가능.
    • XML에 비해 간결하고 가볍지만, 스키마 검증은 기본적으로 제공되지 않음.
    • 거의 모든 프로그래밍 언어에서 지원.
  • 사용 예:
    • RESTful API 데이터 전송.
    • 프론트엔드와 백엔드 간의 데이터 교환.
  • 예제:
    {
        "id": 1,
        "name": "John",
        "email": "john@example.com"
    }

3. YAML (YAML Ain't Markup Language)

  • 설명: 사람이 읽기 쉽도록 설계된 데이터 직렬화 포맷.
  • 특징:
    • 들여쓰기를 기반으로 한 간결한 구조.
    • JSON보다 더 직관적이며 읽기 쉬움.
    • 파싱 및 처리 속도는 JSON보다 느릴 수 있음.
    • JSON과 호환 가능 (JSON은 YAML의 부분집합).
    • 주로 설정 파일에 사용.
  • 사용 예:
    • 애플리케이션 설정 파일 (예: Spring Boot의 application.yml).
    • DevOps 도구 설정 (예: Docker Compose, Kubernetes 매니페스트).
  • 예제:
    user:
      id: 1
      name: John
      email: john@example.com

비교

특성XMLJSONYAML
가독성낮음중간높음
구조화 방법태그 기반키-값 쌍들여쓰기 기반
파일 크기작음중간
사용 용도복잡한 데이터 표현API 및 데이터 교환설정 파일
검증 도구 지원강력함제한적제한적

결론적으로,

  • XML은 복잡하고 구조적인 데이터 교환이나 문서 처리에 적합합니다.
  • JSON은 간단한 데이터 교환(특히 웹 서비스)에 최적화되어 있습니다.
  • YAML은 사람이 읽기 쉬운 설정 파일이나 간단한 데이터 표현에 유리합니다.
profile
🌱

0개의 댓글