[java] YAML 문법 및 구조

YAML은 “YAML Ain’t Markup Language”의 약자로, 사람과 기계가 모두 읽기 쉬운 데이터 직렬화 형식입니다. 주로 설정 파일이나 데이터 전송을 위해 사용되며, 특히 자바 언어에서 자주 사용됩니다. 이번 포스트에서는 YAML의 기본적인 문법과 구조에 대해 알아보겠습니다.

1. 기본 문법

YAML은 들여쓰기와 콜론으로 구성된 간결한 문법을 가지고 있습니다. 아래는 YAML의 기본적인 문법 규칙입니다:

# YAML 예시
name: John Doe
age: 30
hobbies:
  - reading
  - hiking
address:
  street: "123 Main St"
  city: "New York"

위 예시에서는 name, age, hobbies, address 등의 요소들이 존재합니다. hobbiesaddress는 각각 리스트와 객체로 구성되어 있음을 볼 수 있습니다.

2. 구조를 통한 데이터 표현

YAML은 계층 구조를 사용하여 데이터를 표현합니다. 이를 통해 복잡한 구조의 데이터를 간결하게 표현할 수 있습니다. 예를 들어, 아래는 사용자 정보를 담고있는 YAML 예시입니다:

# YAML 예시
user:
  name: John Doe
  age: 30
  address:
    street: "123 Main St"
    city: "New York"
  hobbies:
    - reading
    - hiking

위 예시에서는 user라는 최상위 요소 아래에 name, age, address, hobbies 등의 요소들이 들어있는 것을 볼 수 있습니다. 이렇게 계층 구조를 통해 복잡한 데이터를 구성할 수 있게 됩니다.

3. 주석

YAML은 # 기호를 사용하여 주석을 추가할 수 있습니다. 주석은 데이터에 대한 설명이나 중요한 정보를 덧붙일 때 유용합니다.

# YAML 예시
# 사용자 정보
user:
  name: John Doe  # 사용자 이름
  age: 30  # 사용자 나이
  address:
    street: "123 Main St"  # 주소: 거리
    city: "New York"  # 주소: 도시
  hobbies:
    - reading  # 취미: 독서
    - hiking  # 취미: 등산

위 예시에서는 user 요소와 해당 요소들에 대한 설명을 주석으로 추가하였습니다.

4. 참조와 앵커

YAML에서는 &* 기호를 사용하여 데이터의 일부분을 참조할 수 있습니다. 이를 통해 반복되는 구조를 간결하게 표현할 수 있습니다.

# YAML 예시
person: &person
  name: John Doe
  age: 30

user1: *person
user2: *person

위 예시에서는 person이라는 앵커를 설정하여 user1user2가 동일한 데이터를 참조하고 있음을 볼 수 있습니다.

5. 문서 구분

YAML 문서는 --- 사이에 작성하여 구분할 수 있습니다. 하나의 YAML 파일에 여러 개의 문서를 작성할 수 있습니다.

# YAML 예시
---
name: John Doe
age: 30

---
name: Jane Smith
age: 25

위 예시에서는 두 개의 문서가 작성되었음을 알 수 있습니다. 문서 구분은 데이터를 그룹화하거나 다른 문서와 구분하여 사용할 때 유용합니다.

YAML은 간결하고 읽기 쉬운 문법을 제공하여 데이터를 효과적으로 표현할 수 있는 형식입니다. 위에서 소개한 기본 문법과 구조를 숙지하여 YAML을 활용하여 자바 언어에서 데이터를 효과적으로 다룰 수 있습니다.

참고 자료