[java] SnakeYAML을 사용하여 YAML 파일의 값을 가진 자바 객체 생성하기

YAML은 사람과 컴퓨터 모두가 이해하기 쉬운 형식으로 데이터를 저장하는 데이터 직렬화 형식입니다. 자바에서는 SnakeYAML 라이브러리를 사용하여 YAML 파일을 읽고 쓸 수 있습니다. 이 블로그 포스트에서는 SnakeYAML을 사용하여 YAML 파일에서 값을 읽어와 자바 객체를 생성하는 방법을 알아보겠습니다.

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

먼저 Maven이나 Gradle과 같은 의존성 관리 도구를 사용하여 프로젝트에 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'
}

의존성을 추가한 후, 프로젝트를 빌드하여 SnakeYAML 라이브러리를 가져옵니다.

2. YAML 파일에서 값을 읽어 자바 객체 생성하기

이제 SnakeYAML을 사용하여 YAML 파일에서 값을 읽어와 자바 객체를 생성하는 방법을 알아보겠습니다.

import org.yaml.snakeyaml.Yaml;
import java.io.FileInputStream;
import java.io.FileNotFoundException;

public class Main {

    public static void main(String[] args) {
        try {
            Yaml yaml = new Yaml();
            FileInputStream fileInputStream = new FileInputStream("example.yaml");
            MyClass myClass = yaml.loadAs(fileInputStream, MyClass.class);
            System.out.println(myClass);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

위의 예제에서는 example.yaml 파일에서 값을 읽어와 MyClass 객체를 생성합니다. Yaml 객체의 loadAs 메서드를 사용하여 YAML 파일을 자바 객체로 로드할 수 있습니다. MyClass는 YAML 파일과 동일한 구조로 필드를 가지고 있는 클래스여야 합니다. 객체 생성 후, 해당 객체를 출력하여 확인할 수 있습니다.

3. YAML 파일 예시

아래는 예시로 사용된 example.yaml 파일의 내용입니다:

name: John Doe
age: 30
email: johndoe@example.com

위의 YAML 파일은 name, age, email이라는 세 개의 필드를 가지고 있습니다.

이제 SnakeYAML을 사용하여 YAML 파일의 값을 읽어와 자바 객체를 생성하는 방법에 대해 알게 되었습니다. SnakeYAML은 간단하고 유연한 라이브러리로, YAML 파일을 다룰 때 많은 도움이 됩니다. 자세한 내용은 SnakeYAML 공식 문서를 참조하시기 바랍니다.