[java] SnakeYAML을 사용하여 YAML 파일의 객체 저장하기

YAML은 인간이 쉽게 읽고 쓸 수 있는 데이터 직렬화 형식입니다. Java에서는 SnakeYAML 라이브러리를 사용하여 YAML 파일을 쉽게 다룰 수 있습니다. 이 글에서는 SnakeYAML을 사용하여 YAML 파일에 객체를 저장하는 방법에 대해 알아보겠습니다.

SnakeYAML 라이브러리 추가하기

먼저, SnakeYAML 라이브러리를 Gradle이나 Maven과 같은 의존성 관리 도구를 통해 프로젝트에 추가해야 합니다. 다음은 Gradle을 사용하는 경우의 예시입니다.

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

객체를 YAML 파일로 저장하기

다음으로, YAML 파일에 저장할 객체를 만들고 데이터를 채워줍니다. 아래는 예시로 사용될 Person 클래스입니다.

public class Person {
    private String name;
    private int age;

    // 생성자, getter, setter 등 생략되었습니다.
}

SnakeYAML을 사용하여 Person 객체를 YAML 파일로 저장하기 위해서는 다음과 같은 단계를 따릅니다.

  1. Person 객체 생성
  2. DumperOptions 객체 생성 및 설정
  3. Yaml 객체 생성
  4. Person 객체를 YAML 문자열로 변환
  5. 변환된 YAML 문자열을 파일에 저장

아래 코드는 위 단계를 구현한 예시입니다.

import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Yaml;

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

public class Main {
    public static void main(String[] args) {
        // Person 객체 생성
        Person person = new Person("John Doe", 25);

        // DumperOptions 객체 생성 및 설정
        DumperOptions options = new DumperOptions();
        options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);

        // Yaml 객체 생성
        Yaml yaml = new Yaml(options);

        // Person 객체를 YAML 문자열로 변환
        String yamlString = yaml.dump(person);

        try {
            // 변환된 YAML 문자열을 파일에 저장
            FileWriter writer = new FileWriter("person.yaml");
            writer.write(yamlString);
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위 코드를 실행하면 person.yaml 파일이 생성되고, 파일 내에는 다음과 같은 내용이 저장됩니다.

!!com.example.Person
name: John Doe
age: 25

결론

SnakeYAML을 사용하여 Java에서 YAML 파일로 객체를 저장하는 방법에 대해 알아보았습니다. 위의 예시 코드를 참고하여 자신의 프로젝트에 적용해보세요. SnakeYAML은 Java와 YAML 간의 데이터 변환을 쉽고 편리하게 처리할 수 있도록 도와줍니다.

참고 자료