[java] SnakeYAML을 사용하여 YAML 파일의 인덱스 처리하기

YAML은 인간이 쉽게 읽고 작성할 수 있는 데이터 직렬화 형식입니다. 다양한 프로그래밍 언어에서 YAML을 처리하는 라이브러리가 많이 있습니다. 이 중에서 SnakeYAML은 Java에서 YAML을 처리하기 위한 강력한 라이브러리입니다.

이번 블로그 포스트에서는 SnakeYAML을 사용하여 YAML 파일의 인덱스를 처리하는 방법을 알아보겠습니다.

1. SnakeYAML 라이브러리 추가하기

먼저 Maven이나 Gradle을 사용하여 프로젝트에 SnakeYAML 라이브러리를 추가해야 합니다. Maven의 경우 다음과 같이 pom.xml 파일에 의존성을 추가합니다.

<dependencies>
    <dependency>
        <groupId>org.yaml</groupId>
        <artifactId>snakeyaml</artifactId>
        <version>1.27</version>
    </dependency>
</dependencies>

Gradle의 경우 다음과 같이 build.gradle 파일에 의존성을 추가합니다.

dependencies {
    implementation 'org.yaml:snakeyaml:1.27'
}

의존성을 추가한 뒤 프로젝트를 빌드하면 SnakeYAML을 사용할 수 있게 됩니다.

2. YAML 파일의 인덱스 처리하기

SnakeYAML을 사용하여 YAML 파일의 인덱스를 처리하는 방법은 간단합니다. 먼저 YAML 파일을 읽어오고, YAML 파일의 구조를 정의하는 자바 클래스를 작성합니다.

import org.yaml.snakeyaml.Yaml;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.List;
import java.util.Map;

public class YAMLProcessor {
    
    public static void main(String[] args) {
        try {
            Yaml yaml = new Yaml();
            FileInputStream fis = new FileInputStream("example.yaml");
            
            Map<String, Object> data = yaml.load(fis);
            
            List<Map<String, String>> users = (List<Map<String, String>>) data.get("users");
            for (Map<String, String> user : users) {
                String name = user.get("name");
                int age = Integer.parseInt(user.get("age"));
                System.out.println("Name: " + name + ", Age: " + age);
            }
            
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

위의 코드에서는 example.yaml 파일을 읽어와서 사용자들의 이름과 나이를 출력하는 예제 코드입니다. YAML 파일의 구조에 따라 자바 클래스를 작성하여 필요한 데이터를 추출하면 됩니다.

3. 실행 결과

실행 결과는 다음과 같이 출력됩니다.

Name: John, Age: 25
Name: Alice, Age: 30
Name: Bob, Age: 27

위의 결과는 example.yaml 파일에 아래와 같이 정의된 데이터를 기반으로 합니다.

users:
  - name: John
    age: 25
  - name: Alice
    age: 30
  - name: Bob
    age: 27

SnakeYAML을 사용하여 YAML 파일의 인덱스를 처리하는 방법을 알아보았습니다. YAML 파일의 구조에 따라 자바 클래스를 작성하여 필요한 데이터를 추출하는 방법을 익혀두면 다양한 YAML 파일을 효율적으로 처리할 수 있습니다.

참고 자료