[java] SnakeYAML을 사용한 YAML 파일의 유효성 검사

이번 포스트에서는 Java에서 YAML 파일의 유효성을 검사하는 방법을 알아보겠습니다. YAML은 인간이 쉽게 읽고 쓸 수 있는 데이터 직렬화 형식으로, 많은 프로젝트에서 설정 파일 등으로 사용됩니다.

Java에서 YAML 파일을 파싱하고 유효성을 검사하기 위해 SnakeYAML 라이브러리를 사용할 수 있습니다. SnakeYAML은 YAML 1.1 스펙을 구현하며, 파서를 통해 YAML 문서를 Java 객체로 변환할 수 있습니다.

SnakeYAML 라이브러리 추가

SnakeYAML을 사용하기 위해, Maven 또는 Gradle 프로젝트에 다음 의존성을 추가해야 합니다:

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

YAML 파일의 유효성 검사

SnakeYAML을 사용하여 YAML 파일을 유효성 검사하는 방법은 다음과 같습니다:

import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.SafeConstructor;
import org.yaml.snakeyaml.parser.ParserException;

public class YamlValidator {
    
    public boolean validateYaml(String yamlString) {
        try {
            Yaml yaml = new Yaml(new SafeConstructor());
            yaml.load(yamlString);
            return true;
        } catch (ParserException e) {
            return false;
        }
    }
    
    public static void main(String[] args) {
        String validYaml = "name: John\nage: 25";
        String invalidYaml = "name: John\nage: 25\n";

        YamlValidator validator = new YamlValidator();
        System.out.println(validator.validateYaml(validYaml)); // true
        System.out.println(validator.validateYaml(invalidYaml)); // false
    }
}

YamlValidator 클래스에는 validateYaml 메서드가 있습니다. 이 메서드는 주어진 YAML 문자열의 유효성을 검사하고, 유효한 경우 true를 반환하고 그렇지 않은 경우 false를 반환합니다.

위의 예제에서는 validYaml 변수에 유효한 YAML 문자열을, invalidYaml 변수에 유효하지 않은 YAML 문자열을 할당하여 검사 결과를 확인합니다. 출력은 각각 truefalse가 됩니다.

결론

SnakeYAML을 사용하면 Java에서 YAML 파일의 유효성을 간단하게 검사할 수 있습니다. YAML 파일이 프로젝트에서 중요한 역할을 하는 경우, 이러한 유효성 검사 기능을 활용하여 오류를 사전에 방지할 수 있습니다.

더 자세한 내용은 SnakeYAML 공식 문서를 참고하세요.