YAML은 원래 "Yet Another Markup Language(또 하나의 마크업 언어)"라는 이름에서 시작되었다.
그러나 시간이 지나면서 YAML의 설계 목적이 데이터 표현에 더 집중되었고, XML 같은 마크업 언어와는 방향이 다르다는 점을 강조하기 위해 이름이 "YAML Ain’t Markup Language(마크업 언어가 아니다)"로 바뀌었다.
이 재미있는 네이밍은 YAML이 단순히 데이터를 꾸미는(markup) 것이 아니라,
사람이 읽고 쓰기 쉬운 방식으로 구조화된 데이터를 표현하는 데 목적이 있다는 것을 명확히 보여준다.
프로그래밍을 하다 보면 설정 파일을 작성할 일이 많다. 그럴 때 자주 보게 되는 것이 .yaml 혹은 .yml 확장자를 가진 파일이다.
언뜻 보면 그냥 들여 쓰기 된 텍스트처럼 보이지만, 이 YAML이라는 형식은 사람이 이해하기 쉬우면서도 컴퓨터가 읽을 수 있는 구조화된 데이터 표현 방식이다.
YAML은 "YAML Ain’t Markup Language"의 약자로, 처음에는 "Yet Another Markup Language"라는 이름이었지만, 현재는 데이터 직렬화(Data Serialization)에 초점을 맞춘 포맷으로 정의된다.
YAML은 구조화된 데이터를 간단하고 가독성 좋게 표현하기 위한 목적으로 만들어졌다. 설정 파일, 데이터 구성, 환경 설정 등 다양한 분야에서 활용된다.
YAML은 구조화된 데이터를 가독성 좋게 표현하기 위한 목적을 이루기 위한 특징이 가장 크다.
- 사람이 읽기 쉬움: 들여 쓰기 기반 구조로, XML이나 JSON보다 직관적
- 간단한 문법: 중괄호나 대괄호 없이도 계층 구조 표현 가능
- 코멘트 지원: #을 사용하여 주석 추가 가능
- 다양한 데이터 타입 지원: 문자열, 숫자, 리스트, 맵(딕셔너리), 불리언 등
물론, 직접 안 쓸 사람이 많지만, 어떻게 생겼는지는 구경해 보자.
# 주석도 가능
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의 차이를 비교해 보자.
YAML | JSON | |
가독성 | 높음 | 중간 |
문법 | 들여쓰기 기반 | 중괄호/대괄호 기반 |
주석 | 지원함 | 미지원 |
데이터 구조 | 리스트, 딕셔너리 등 | |
사용 용도 | 설정 파일, 환경 구성 | API 데이터 전송 등 |
YAML을 사용할 때 주의할 점이 있다. JSON은 중괄호, 대괄호를 사용하기 때문에 상관이 없는데, YAML은 들여 쓰기 할 때, 주의를 해야 한다.
- 들여 쓰기 오류: 스페이스로 들여 쓰기를 해야 하며, 탭 사용 금지
- 복잡한 구조: 너무 깊은 계층 구조는 오히려 가독성 저하
- 유효성 검사 어려움: 문법 오류 시 디버깅이 어렵고, 툴 지원도 한계 있음
YAML은 사람이 쉽게 읽고 작성할 수 있도록 설계된 데이터 표현 방식으로, 설정 파일이나 구성 데이터를 정의하는 데 자주 쓰인다.
가독성이 뛰어난 만큼 실수도 쉽게 반영되므로, 문법 규칙을 잘 이해하고 사용하는 것이 중요하다.
JSON보다 직관적인 설정 파일을 원한다면, YAML은 훌륭한 선택이 될 수 있다.
#YAML #설정파일 #데이터포맷 #JSON비교 #프로그래밍기초 #구성파일
'IT 정보 > 용어' 카테고리의 다른 글
HTTPS를 강제하는 보안 기술, HSTS란? (0) | 2025.05.26 |
---|---|
하나의 채널로 여러 신호를? 멀티플렉싱이란 (0) | 2025.05.25 |
SSL Strip이란? HTTPS를 HTTP로 바꾸는 공격이 있다고? (0) | 2025.05.23 |
크로스 플랫폼이란? 하나의 코드로 여러 환경에서 실행될 수 있다고? (0) | 2025.05.22 |
당신의 로그인 상태가 노출된다면? 세션 하이재킹(Session Hijacking)이란 (0) | 2025.05.21 |