[java] SnakeYAML을 사용하여 YAML 파일의 매핑값 처리하기

이번 포스트에서는 Java 언어에서 YAML 파일의 매핑값을 처리하기 위해 SnakeYAML 라이브러리를 활용하는 방법을 살펴보겠습니다.

1. SnakeYAML이란?

SnakeYAML은 Java에서 YAML 형식의 데이터를 처리하기 위한 파서 라이브러리입니다. YAML은 사람이 쉽게 읽고 쓸 수 있는 데이터 직렬화 형식으로, 설정 파일 및 데이터 교환을 위해 종종 사용됩니다. SnakeYAML은 YAML을 파싱하여 Java 객체로 변환하거나, Java 객체를 YAML로 변환하는 역할을 합니다.

2. SnakeYAML 설치하기

SnakeYAML을 사용하기 위해 먼저 해당 라이브러리를 프로젝트에 추가해야 합니다. Maven을 사용하는 경우, pom.xml 파일에 다음과 같이 의존성을 추가합니다:

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

Gradle을 사용하는 경우, build.gradle 파일에 다음과 같이 의존성을 추가합니다:

implementation 'org.yaml:snakeyaml:1.28'

의존성을 추가한 후, 프로젝트를 빌드하면 SnakeYAML을 사용할 준비가 완료됩니다.

3. YAML 파일 로드하기

SnakeYAML을 사용하여 YAML 파일을 로드하려면 Yaml 클래스의 인스턴스를 생성해야 합니다. 다음과 같이 YAML 파일 경로를 매개변수로 전달하여 Yaml 객체를 생성합니다:

Yaml yaml = new Yaml();
File file = new File("example.yaml");
Map<String, Object> data = yaml.load(new FileInputStream(file));

위 예제에서는 example.yaml 파일을 로드하여 Map<String, Object> 형태로 반환하는 load() 메서드를 사용합니다.

4. 매핑값 처리하기

로드한 YAML 파일의 매핑값은 Map<String, Object> 형태로 반환됩니다. 따라서 이를 적절히 처리하기 위해 해당 객체들을 타입에 맞게 캐스팅해야 합니다.

예를 들어, 다음과 같은 YAML 파일이 있다고 가정해 봅시다:

fruit:
  name: apple
  color: red
  quantity: 10

이 YAML 파일을 로드한 후, 매핑값을 처리해 보겠습니다:

String fruitName = (String) data.get("fruit.name");
String fruitColor = (String) data.get("fruit.color");
int quantity = (int) data.get("fruit.quantity");

System.out.println("Fruit: " + fruitName);
System.out.println("Color: " + fruitColor);
System.out.println("Quantity: " + quantity);

위 예제에서는 data 맵에서 각각의 필드를 가져와서 타입에 맞게 캐스팅하고 출력합니다.

5. 결론

SnakeYAML을 사용하여 Java 언어에서 YAML 파일의 매핑값을 처리하는 방법에 대해 알아보았습니다. SnakeYAML은 간단한 사용법과 유연성을 제공하여 YAML 데이터를 쉽게 파싱하고 처리하는데 도움을 줍니다.