[java] SnakeYAML을 사용하여 YAML 파일의 문자열 데이터 처리하기

YAML은 인간이 쉽게 읽고 쓸 수 있는 데이터 직렬화 형식입니다. Java에서 YAML 파일을 처리할 때 SnakeYAML 라이브러리가 많이 사용됩니다. 이 블로그 포스트에서는 SnakeYAML을 사용하여 YAML 파일에서 문자열 데이터를 읽고 처리하는 방법에 대해 알아보겠습니다.

목차

SnakeYAML이란?

SnakeYAML은 YAML 파일을 파싱하고 사용하기 쉽게 자바 객체로 변환할 수 있는 Java용 YAML 라이브러리입니다. SnakeYAML을 사용하면 YAML 파일의 복잡한 구조를 쉽게 다룰 수 있습니다.

의존성 설정

먼저 Maven을 사용하는 경우 pom.xml 파일에 다음 의존성을 추가해야 합니다.

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

Gradle을 사용한다면 build.gradle 파일에 다음 의존성을 추가합니다.

implementation 'org.yaml:snakeyaml:1.27'

의존성을 설정한 후에는 프로젝트를 다시 빌드해야 합니다.

YAML 파일에서 문자열 데이터 읽기

SnakeYAML을 사용하여 YAML 파일에서 문자열 데이터를 읽는 방법은 간단합니다. YAML 파일을 로드하고 YAML 데이터를 Map으로 변환한 다음, Map에서 원하는 문자열 데이터를 가져오면 됩니다.

다음은 data.yaml 파일에서 nameemail 데이터를 읽어오는 예제입니다.

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

public class ReadYamlExample {
    public static void main(String[] args) {
        Yaml yaml = new Yaml();
        try {
            FileInputStream inputStream = new FileInputStream("data.yaml");
            Map<String, String> data = yaml.load(inputStream);
            
            String name = data.get("name");
            String email = data.get("email");
            
            System.out.println("Name: " + name);
            System.out.println("Email: " + email);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

위 예제에서 data.yaml 파일은 다음과 같은 형식을 가지고 있어야 합니다.

name: John Doe
email: johndoe@example.com

YAML 파일에 문자열 데이터 쓰기

SnakeYAML을 사용하여 Java 코드에서 생성된 문자열 데이터를 YAML 파일에 쓰는 것도 간단합니다. Map에 데이터를 담은 후 dump() 메서드를 사용하여 YAML 형식으로 변환하고, 파일에 쓰기 작업을 수행합니다.

다음은 문자열 데이터를 data.yaml 파일에 쓰는 예제입니다.

import org.yaml.snakeyaml.Yaml;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

public class WriteYamlExample {
    public static void main(String[] args) {
        Yaml yaml = new Yaml();
        
        Map<String, String> data = new HashMap<>();
        data.put("name", "John Doe");
        data.put("email", "johndoe@example.com");
        
        try {
            FileWriter writer = new FileWriter("data.yaml");
            yaml.dump(data, writer);
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

실행 후 data.yaml 파일을 열어보면 다음과 같은 내용이 기록되어 있을 것입니다.

name: John Doe
email: johndoe@example.com

이제 SnakeYAML을 사용하여 YAML 파일의 문자열 데이터를 읽고 쓰는 방법에 대해 알게 되었습니다. SnakeYAML을 사용하면 YAML 파일을 쉽게 다룰 수 있으며, 복잡한 데이터 구조도 간단하게 처리할 수 있습니다.

더 자세한 정보는 SnakeYAML 공식 문서를 참고하세요.