[java] SnakeYAML을 사용한 YAML 파일의 중첩 구조 읽기

YAML(또는 “YAML Ain’t Markup Language”)은 사람과 기계 모두에게 친숙한 구조를 가진 데이터 직렬화 양식입니다. 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 파일의 구조를 읽으려면 다음과 같은 단계를 따르면 됩니다.

import org.yaml.snakeyaml.Yaml;

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

public class YamlReader {
    public static void main(String[] args) {
        try {
            // YAML 파일 읽기
            FileInputStream input = new FileInputStream("example.yaml");

            // YAML 파일 파싱
            Yaml yaml = new Yaml();
            Map<String, Object> data = yaml.load(input);

            // 중첩 구조 읽기
            String value = (String) data.get("key");

            System.out.println(value);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

위의 코드는 example.yaml 파일을 읽고 그 안에 있는 key 값에 접근하는 예제입니다. Yaml 클래스를 사용하여 YAML 파일을 파싱하고, load 메서드를 호출하여 파일의 내용을 Map<String, Object> 형태로 반환합니다. 이후에는 필요한 값을 data 맵에서 가져올 수 있습니다.

이 예제에서는 YAML 파일에 key라는 이름의 문자열 값을 가지고 있다고 가정했습니다. 실제 파일의 구조에 따라 코드를 조정해야할 수도 있습니다.

3. 결론

SnakeYAML을 사용하면 Java에서 YAML 파일의 구조를 간편하게 읽을 수 있습니다. 이 라이브러리를 사용하여 중첩된 YAML 파일의 데이터를 효과적으로 추출하고 활용할 수 있습니다.

더 많은 정보를 원한다면 https://bitbucket.org/asomov/snakeyaml/src을 참조하세요.