[java] SnakeYAML을 사용한 YAML 파일의 특정 속성 검색

YAML은 인간과 기계가 모두 쉽게 읽을 수 있는 데이터 형식입니다. SnakeYAML은 Java에서 YAML 파일을 파싱하고 조작하는 유용한 라이브러리입니다. 이 블로그 포스트에서는 SnakeYAML을 사용하여 YAML 파일에서 특정 속성을 검색하는 방법을 알아보겠습니다.

SnakeYAML 라이브러리 추가

먼저, 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'
}

YAML 파일 로드

SnakeYAML을 사용하여 YAML 파일을 로드하려면 Yaml 클래스를 생성하고, load() 메서드에 파일 경로 또는 입력 스트림을 전달해야 합니다. 예를 들면 다음과 같습니다:

import org.yaml.snakeyaml.Yaml;

public class Main {
    public static void main(String[] args) {
        Yaml yaml = new Yaml();

        try (InputStream inputStream = new FileInputStream("config.yml")) {
            Object data = yaml.load(inputStream);
            // YAML 파일의 데이터를 사용하는 코드 작성
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

특정 속성 검색

로드한 YAML 파일의 특정 속성을 검색하려면 YAML 데이터를 적절한 형식으로 캐스트해야 합니다. 예를 들어, YAML 파일에 다음과 같은 구조가 있다고 가정해보겠습니다:

server:
  host: example.com
  port: 8080
  ssl: true

위의 YAML 파일에서 host 속성 값을 검색하는 방법은 다음과 같습니다:

Map<String, Object> data = (Map<String, Object>) yaml.load(inputStream);
String host = (String) ((Map<String, Object>) data.get("server")).get("host");
System.out.println("Host: " + host);

이 코드는 YAML 파일에서 server 속성을 맵으로 캐스트한 다음, host 속성 값을 가져옵니다.

결론

SnakeYAML을 사용하여 YAML 파일에서 특정 속성을 검색하는 방법을 알아보았습니다. YAML은 다양한 설정 파일이나 데이터 파일에 많이 사용되므로 특정 속성 값을 쉽게 가져올 수 있다면 개발 과정을 더욱 편리하게 만들 수 있습니다. SnakeYAML은 이를 가능하게 해주는 강력한 도구입니다. 추가적인 정보를 원하신다면 SnakeYAML의 공식 문서를 참조하시기 바랍니다.

참고 자료: