[java] SnakeYAML을 사용한 YAML 파일의 속성 쓰기

YAML은 인간에게 읽기 및 쓰기가 쉬운 데이터 직렬화 형식입니다. Java에서는 SnakeYAML 라이브러리를 사용하여 YAML 파일을 읽고 쓸 수 있습니다. 이번 블로그 포스트에서는 SnakeYAML을 사용하여 YAML 파일의 속성을 쓰는 방법을 알아보겠습니다.

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

SnakeYAML을 사용하기 위해 먼저 해당 라이브러리를 프로젝트에 추가해야 합니다. Maven을 사용하는 경우, pom.xml 파일에 다음 의존성을 추가하세요.

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

Gradle을 사용하는 경우, build.gradle 파일에 다음 의존성을 추가하세요.

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

의존성을 추가한 후, 프로젝트를 빌드해주세요.

2. YAML 파일에 쓰기

YAML 파일에 속성을 쓰기 위해 다음 단계를 따르세요.

2.1 YAML 객체 정의하기

먼저, 쓰기를 위한 YAML 객체를 생성해야 합니다. YAML 파일의 구조를 클래스로 정의하고, 해당 클래스의 객체를 생성합니다. 예를 들어, 다음과 같은 YAML 파일을 쓰기 위한 클래스를 정의해봅시다.

# sample.yaml
name: John Doe
age: 30
email: john.doe@example.com

위 YAML 파일의 속성을 표현하는 클래스는 다음과 같이 정의할 수 있습니다.

public class Person {
    private String name;
    private int age;
    private String email;
    
    // getters and setters
    // ...
}

2.2 YAML 파일 쓰기

YAML 파일에 속성을 쓰기 위해 SnakeYAML을 사용합니다. 다음 코드를 사용하여 YAML 파일에 속성을 쓸 수 있습니다.

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

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

public class YAMLWriter {
    public static void main(String[] args) {
        // YAML 객체 생성
        Person person = new Person();
        person.setName("John Doe");
        person.setAge(30);
        person.setEmail("john.doe@example.com");

        // YAML 파일 쓰기
        DumperOptions options = new DumperOptions();
        options.setPrettyFlow(true);
        Yaml yaml = new Yaml(options);
        
        try (FileWriter writer = new FileWriter("sample.yaml")) {
            yaml.dump(person, writer);
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        System.out.println("YAML 파일 쓰기 완료!");
    }
}

위 코드는 Person 클래스의 객체를 생성하고, SnakeYAML의 Yaml 클래스를 사용하여 객체를 YAML 형식으로 변환하여 파일에 씁니다. DumperOptions를 사용하여 파일에 쓰기 전에 YAML 형식을 설정할 수 있습니다. 마지막으로, Yaml 클래스의 dump 함수를 사용하여 YAML 파일에 객체를 씁니다.

결론

SnakeYAML을 사용하여 YAML 파일에 속성을 쓰는 방법을 알아보았습니다. SnakeYAML은 간단하고 직관적인 API를 제공하여 YAML 파일을 쉽게 다룰 수 있습니다. YAML 파일을 다루어야 하는 Java 프로젝트가 있다면 SnakeYAML을 사용해보세요.

참고 자료