[java] SnakeYAML을 사용하여 YAML 파일의 구문 분석하기

YAML은 사람이 읽기 쉽고 이해하기 쉬운 데이터 직렬화 형식입니다. 이는 다양한 설정 파일이나 데이터 전송 형식으로 사용됩니다. Java에서 YAML 파일을 구문 분석하기 위해 SnakeYAML 라이브러리를 사용할 수 있습니다.

SnakeYAML은 Java로 작성된 간단하고 강력한 YAML 파서입니다. 이 라이브러리는 YAML 파일을 Java 객체로 변환하거나 Java 객체를 YAML 문자열로 변환할 수 있습니다. 따라서 SnakeYAML을 사용하면 YAML 파일을 쉽게 읽고 쓸 수 있습니다.

SnakeYAML 설치하기

SnakeYAML을 사용하기 위해 먼저 Maven 또는 Gradle과 같은 Java 프로젝트 관리 도구에서 라이브러리를 추가해야 합니다. Maven 기준으로는 다음과 같이 의존성을 추가합니다.

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

Gradle을 사용하는 경우, 다음과 같이 의존성을 추가합니다.

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

의존성을 추가한 후에는 프로젝트를 업데이트하고 SnakeYAML을 사용할 준비가 완료됩니다.

YAML 파일 구문 분석하기

이제 SnakeYAML을 사용하여 YAML 파일을 구문 분석하는 방법을 알아보겠습니다. 먼저 YAML 파일을 읽어오고 구문 분석하는 간단한 예제를 살펴보겠습니다.

import org.yaml.snakeyaml.Yaml;
import java.io.InputStream;
import java.util.Map;

public class YamlParser {
    public static void main(String[] args) {
        Yaml yaml = new Yaml();
        try {
            InputStream inputStream = YamlParser.class
                    .getClassLoader()
                    .getResourceAsStream("example.yaml");
            Map<String, Object> obj = yaml.load(inputStream);
            System.out.println(obj);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

위의 예제에서는 Yaml 클래스를 사용하여 YAML 파일을 구문 분석합니다. Yaml 객체를 생성한 후, load() 메서드를 사용하여 YAML 파일을 읽어옵니다. 이렇게 읽어온 YAML 파일은 Map 객체로 반환됩니다. 반환된 Map 객체를 원하는 대로 처리하면 됩니다.

위의 예제에서는 파일 이름이 “example.yaml”인 YAML 파일을 로드하고 그 내용을 Map 객체로 출력합니다. 실제 YAML 파일의 내용과 구조에 따라 출력 결과가 달라질 수 있습니다.

결론

SnakeYAML을 사용하면 Java에서 YAML 파일을 간단하게 구문 분석할 수 있습니다. SnakeYAML 라이브러리를 사용하여 YAML 파일을 Java 객체로 변환하거나 Java 객체를 YAML 문자열로 변환하는 작업을 수행할 수 있습니다. YAML 파일을 사용하여 설정 정보를 읽어오거나 데이터를 저장하는 등의 작업에 SnakeYAML을 활용할 수 있습니다.

참고 자료