[Java] Yaml, Yml 사용하기

    최근 Yaml(야믈이라 부른다) 혹은 Yml이라는 포맷이 뜨고 있는데 Java 진영에서 가장 핫한 Spring Boot에서 Yaml 등을 적극적으로 사용하기도 하며 최근에 나오는 어플리케이션이 Yaml을 종종 사용하기 때문에 사용해보기로 하였다. 필자는 Spring-Boot를 사용하는 일이 없기 때문에 그냥 만들어본 것이며, 보다 자세한 내용이 궁금하다면 Yaml에 관련된 내용을 찾아보면 될 것이다.

     

    Yaml은 기본적으로 사람이 알아보기 쉬운 구조로 만들어진 Json의 느낌이 강하다. XML보다 무겁지 않고, 그렇다고 JSON보다 너무 가볍지 않은 중간 정도의 느낌인데 yaml은 최근 들어서 config와 같은 설정 파일에 많이 사용되고 있다.

     

     

    pom.xml (dependency 추가)

     <!-- yaml 설정 --> 
    <dependency> 
    	<groupId>org.yaml</groupId> 
    	<artifactId>snakeyaml</artifactId> 
    	<version>1.20</version> 
    </dependency>

     

    yaml 파일 생성

    test:
      human:
        # 주석
        name: 스티브로저스
        spec:
            height: 183
            weight: 90
        nickname:
          - 캡틴아메리카
          - 퍼스트어벤져

     

    예제코드

    package com.tistory.needneo;
    
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.util.Map;
    
    import org.yaml.snakeyaml.Yaml;
    
    public class test {
    
    	public static void main(String[] args) {
    		try {
    			Map<String, Object> propMap = new Yaml().load(new FileReader("test.yml"));
    			System.out.println(propMap);			
    			System.out.println(propMap.get("test"));
    		} catch (FileNotFoundException e) {
    			e.printStackTrace();
    		}
    	}
    }
    

     

    출력 내용

    {test={human={name=스티브로저스, spec={height=183, weight=90}, nickname=[캡틴아메리카, 퍼스트어벤져]}}}
    {human={name=스티브로저스, spec={height=183, weight=90}, nickname=[캡틴아메리카, 퍼스트어벤져]}}
    

     

    이와같이 config에 있는 계층의 형태에 따라 값들이 저장되는 것을 볼 수 있다. 배열부터 문자형, 정수형 다양하게 저장할 수 있다는 것이 매우 큰 장점이라 볼 수 있다.

    반응형

    댓글

    Designed by JB FACTORY