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

YAML은 데이터 직렬화에 사용되는 인간 친화적인 형식입니다. SnakeYAML은 YAML 형식 파일을 Java 객체로 매핑할 수 있는 유용한 라이브러리입니다. 이번 블로그 포스트에서는 SnakeYAML을 사용하여 YAML 파일에서 숫자 데이터를 처리하는 방법에 대해 알아보겠습니다.

1. SnakeYAML 라이브러리 추가

먼저, Maven 또는 Gradle과 같은 빌드 도구를 사용하여 SnakeYAML 라이브러리를 프로젝트에 추가해야 합니다. 다음과 같이 pom.xml 파일을 열고 의존성을 추가합니다.

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

또는 Gradle의 경우 build.gradle 파일에 다음과 같이 의존성을 추가합니다.

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

의존성을 추가한 후, 빌드 도구를 사용하여 라이브러리를 다운로드 및 프로젝트에 추가합니다.

2. 숫자 데이터가 있는 YAML 파일 작성

이제 숫자 데이터가 있는 YAML 파일을 작성해보겠습니다. 예를 들어, data.yml 파일을 생성하고 다음과 같은 내용을 입력합니다.

name: John Doe
age: 30
height: 175.5

위 예제에서는 ageheight라는 숫자 데이터가 포함된 YAML 파일을 사용합니다.

3. YAML 파일 읽기 및 숫자 데이터 처리

이제 SnakeYAML을 사용하여 YAML 파일을 읽고 숫자 데이터를 처리해보겠습니다. 다음은 Java 코드의 예입니다.

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

public class YamlReader {
    public static void main(String[] args) {
        try {
            Yaml yaml = new Yaml();
            FileInputStream input = new FileInputStream("data.yml");
            Map<String, Object> map = yaml.load(input);

            int age = (int) map.get("age");
            double height = (double) map.get("height");

            System.out.println("Age: " + age);
            System.out.println("Height: " + height);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

위 예제에서는 Yaml 클래스를 사용하여 data.yml 파일을 읽습니다. YAML 파일의 내용을 Map<String, Object>으로 로드 한 후, 이전에 정의한 ageheight 필드를 가져옵니다. ageint로 캐스팅하고 heightdouble로 캐스팅하여 출력합니다.

4. 결과 확인

마지막으로, 위 코드를 실행하여 결과를 확인해보세요. data.yml 파일에서 읽은 숫자 데이터를 정확하게 출력해야 합니다.

Age: 30
Height: 175.5

결론

이번 블로그 포스트에서는 SnakeYAML을 사용하여 YAML 파일에서 숫자 데이터를 처리하는 방법에 대해 알아보았습니다. YAML 파일을 읽고 데이터를 로드하여 숫자 데이터를 적절히 처리할 수 있습니다. SnakeYAML은 유연하고 강력한 YAML 처리를 위한 라이브러리이므로 프로젝트에 사용해보시기 바랍니다.

참고 자료