본문 바로가기
IT 정보/용어

읽기 쉬운 데이터 포맷, YAML이란?

by 희품 2025. 5. 24.
반응형

읽기 쉬운 데이터 포맷, YAML이란? 썸네일 이미지


YAML은 원래 "Yet Another Markup Language(또 하나의 마크업 언어)"라는 이름에서 시작되었다.
그러나 시간이 지나면서 YAML의 설계 목적이 데이터 표현에 더 집중되었고, XML 같은 마크업 언어와는 방향이 다르다는 점을 강조하기 위해 이름이 "YAML Ain’t Markup Language(마크업 언어가 아니다)"로 바뀌었다.

이 재미있는 네이밍은 YAML이 단순히 데이터를 꾸미는(markup) 것이 아니라,
사람이 읽고 쓰기 쉬운 방식으로 구조화된 데이터를 표현하는 데 목적이 있다는 것을 명확히 보여준다.

 

YAML 이란?

yaml을 사용하는 옵션 파일의 실제 예시를 보여주는 캡처화면

프로그래밍을 하다 보면 설정 파일을 작성할 일이 많다. 그럴 때 자주 보게 되는 것이 .yaml 혹은 .yml 확장자를 가진 파일이다.

언뜻 보면 그냥 들여 쓰기 된 텍스트처럼 보이지만, 이 YAML이라는 형식은 사람이 이해하기 쉬우면서도 컴퓨터가 읽을 수 있는 구조화된 데이터 표현 방식이다.

 

YAML은 "YAML Ain’t Markup Language"의 약자로, 처음에는 "Yet Another Markup Language"라는 이름이었지만, 현재는 데이터 직렬화(Data Serialization)에 초점을 맞춘 포맷으로 정의된다.

 

YAML은 구조화된 데이터를 간단하고 가독성 좋게 표현하기 위한 목적으로 만들어졌다. 설정 파일, 데이터 구성, 환경 설정 등 다양한 분야에서 활용된다.

 

YAML의 특징

YAML은 구조화된 데이터를 가독성 좋게 표현하기 위한 목적을 이루기 위한 특징이 가장 크다.

쉽게 보고 읽을 수 있는 것을 표현한 이미지

  • 사람이 읽기 쉬움: 들여 쓰기 기반 구조로, XML이나 JSON보다 직관적
  • 간단한 문법: 중괄호나 대괄호 없이도 계층 구조 표현 가능
  • 코멘트 지원: #을 사용하여 주석 추가 가능
  • 다양한 데이터 타입 지원: 문자열, 숫자, 리스트, 맵(딕셔너리), 불리언 등
YAML의 사용 예시

물론, 직접 안 쓸 사람이 많지만, 어떻게 생겼는지는 구경해 보자.

# 주석도 가능
server:
  host: localhost
  port: 8080

# 기본은 key: value
# list는 - 로 표현
users: 
  - name: Alice 
    email: alice@example.com
  - name: Bob
    email: bob@example.com

위 예시는 서버 설정과 사용자 목록을 나타낸 YAML 파일로, server는 딕셔너리 형태이고 users는 리스트 형태다.

눈치챈 사람도 있겠지만, YAML은 들여 쓰기를 조심해야 한다.

 

JSON과의 비교

Json과 Yaml을 비교하기 시작하는 것을 보이는 이미지

가장 대표적이고 잘 알려진 데이터 직렬화 포맷은 JSON이다. JSON과 YAML의 차이를 비교해 보자.

  YAML JSON
가독성 높음 중간
문법 들여쓰기 기반 중괄호/대괄호 기반
주석 지원함 미지원
데이터 구조 리스트, 딕셔너리 등
사용 용도 설정 파일, 환경 구성 API 데이터 전송 등

 

YAML을 사용할 때 주의할 점이 있다. JSON은 중괄호, 대괄호를 사용하기 때문에 상관이 없는데, YAML은 들여 쓰기 할 때, 주의를 해야 한다.

  • 들여 쓰기 오류: 스페이스로 들여 쓰기를 해야 하며, 탭 사용 금지
  • 복잡한 구조: 너무 깊은 계층 구조는 오히려 가독성 저하
  • 유효성 검사 어려움: 문법 오류 시 디버깅이 어렵고, 툴 지원도 한계 있음

YAML은 사람이 쉽게 읽고 작성할 수 있도록 설계된 데이터 표현 방식으로, 설정 파일이나 구성 데이터를 정의하는 데 자주 쓰인다.

가독성이 뛰어난 만큼 실수도 쉽게 반영되므로, 문법 규칙을 잘 이해하고 사용하는 것이 중요하다.

JSON보다 직관적인 설정 파일을 원한다면, YAML은 훌륭한 선택이 될 수 있다.

궁금하신 내용이 있으면 댓글 남겨주세요. 꼬리말 이미지.

 

#YAML #설정파일 #데이터포맷 #JSON비교 #프로그래밍기초 #구성파일

 

 

반응형