[java] YAML 파일을 Java 객체로 변환하기

YAML(YAML Ain’t Markup Language)은 사람이 읽고 쓰기에 편리한 데이터 직렬화 형식입니다. YAML 파일을 Java 객체로 변환하는 방법에 대해 알아보겠습니다.

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

YAML 파일을 Java 객체로 변환하기 위해서는 Jackson 라이브러리를 사용해야 합니다. Maven을 사용한다면 pom.xml 파일에 다음 의존성을 추가해주세요:

<dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-yaml</artifactId>
    <version>2.9.10</version>
</dependency>

Gradle을 사용한다면 build.gradle 파일에 다음 의존성을 추가해주세요:

implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.10'

2. YAML 파일 읽기

YAML 파일을 읽어와 Java 객체로 변환하는 코드를 작성해보겠습니다. 아래는 예시로 사용할 data.yml 파일의 내용입니다.

# data.yml 파일 내용
name: John Doe
age: 30
email: johndoe@example.com
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
import java.io.File;
import java.io.IOException;

public class YamlToObjectConverter {
    public static void main(String[] args) {
        File yamlFile = new File("data.yml");
        ObjectMapper objectMapper = new ObjectMapper(new YAMLFactory());

        try {
            // YAML 파일을 Java 객체로 변환
            MyObject myObject = objectMapper.readValue(yamlFile, MyObject.class);
            System.out.println(myObject.toString());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

3. 변환할 Java 객체 정의하기

YAML 파일의 내용을 담을 Java 객체를 정의해야 합니다. 예제에서는 MyObject 클래스를 만들어 사용하겠습니다.

public class MyObject {
    private String name;
    private int age;
    private String email;

    // Getters and setters

    @Override
    public String toString() {
        return "MyObject{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", email='" + email + '\'' +
                '}';
    }
}

4. 실행 결과 확인하기

변환된 Java 객체를 출력하여 결과를 확인할 수 있습니다. 실행 결과는 다음과 같을 것입니다.

MyObject{name='John Doe', age=30, email='johndoe@example.com'}

이처럼 Jackson 라이브러리를 사용하여 YAML 파일을 Java 객체로 변환할 수 있습니다. 이 방법을 활용하여 YAML 파일과 Java 객체 간의 데이터 전환을 자유롭게 할 수 있습니다.

참고 자료