[java] SnakeYAML을 사용하여 YAML 파일의 구조 변경하기

YAML은 사람이 읽고 쓰기 쉬운 데이터 형식입니다. Java에서 YAML 파일을 다루는 데에는 여러 가지 라이브러리가 있지만, 이 예제에서는 SnakeYAML을 사용해서 YAML 파일의 구조를 변경하는 방법을 알아보겠습니다.

1. SnakeYAML 소개

SnakeYAML은 Java에서 YAML 파일을 처리하기 위한 라이브러리입니다. YAML 파일을 로드하여 자바 객체로 변환하거나, 자바 객체를 YAML 파일로 저장하는 기능을 제공합니다. SnakeYAML은 간편한 사용법과 널리 사용되는 라이브러리입니다.

2. Maven 종속성 추가하기

먼저, Maven 프로젝트인 경우 pom.xml 파일에 다음의 종속성을 추가해야 합니다.

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

위의 종속성을 추가하면 Maven이 SnakeYAML을 프로젝트에 자동으로 추가합니다.

3. YAML 파일 구조 변경하기

만약 YAML 파일의 구조를 변경하고 싶다면, 먼저 YAML 파일을 로드하여 자바 객체로 변환해야 합니다. 그 다음 자바 객체를 다시 YAML 파일로 저장하는 방식을 사용하면 됩니다.

import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.representer.Representer;
import org.yaml.snakeyaml.constructor.Constructor;

import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;

public class YamlStructureChanger {
    public static void main(String[] args) {
        // YAML 파일 로드
        Yaml yaml = new Yaml(new Constructor(YourRootObject.class));
        try (FileInputStream inputStream = new FileInputStream("input.yaml")) {
            YourRootObject rootObject = yaml.load(inputStream);

            // 자바 객체를 변경하기 위한 로직 수행
            // ...

            // 변경된 자바 객체를 YAML 파일로 저장
            DumperOptions options = new DumperOptions();
            options.setPrettyFlow(true); // 가독성을 높이기 위해 YAML 파일을 보기 좋게 저장
            yaml = new Yaml(new Representer(), options);
            try (FileWriter writer = new FileWriter("output.yaml")) {
                yaml.dump(rootObject, writer);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 예제에서 YourRootObject는 YAML 파일의 최상위 객체에 해당하는 자바 클래스입니다. 만약 YAML 파일의 구조를 변경하기 위해서는 YourRootObject 클래스의 필드를 수정하거나 추가하여야 합니다.

4. 결과 확인하기

위의 예제 코드를 실행하면 input.yaml 파일의 구조가 변경된 후, output.yaml 파일로 저장됩니다. 저장된 output.yaml 파일을 확인하여 변경된 YAML 파일의 구조가 제대로 저장되었는지 확인할 수 있습니다.

5. 결론

SnakeYAML을 사용하여 YAML 파일의 구조를 변경하는 방법에 대해 알아보았습니다. SnakeYAML은 편리한 기능을 제공하므로, Java에서 YAML 파일을 다룰 때 유용하게 사용할 수 있습니다. YAML 파일의 구조를 변경할 수 있기 때문에 필요에 따라 쉽게 파일을 수정하거나 확장할 수 있습니다.

참고 자료