yaml(yml)

푸드테크·2022년 8월 8일
0
post-custom-banner

yml, ymal 대해 이해 해보도록 하는 포스팅을 작성하려고 합니다.

yml 이란?

YAML이라는 이름은 "YAML은 마크업 언어가 아니다 (YAML Ain't Markup Language)” 라는 재귀적인 이름에서 유래되었습니다.

기존 properties보단 직관적이지만 계층구조를 사용하기 때문에 잘못된 띄어쓰기나 탭으로 오류가 나기 쉽습니다.

yml 문법 정리

기본적인 사용법은 key : value의 형태로 이루어지면
key : value가 붙지 않도록 주의해야 합니다.

# this is a comment  #주석 입니다.

name: kyh  # 일반 String 입니다.

names: k1, k2, k33   # list 입니다.
truth: yes # boolean 입니다.

another_truth: True # boolean 입니다.

more_true: true # boolean 입니다.

false: no #false 값을 출력합니다.

colon_string: "my coureses: one two three" # :를 문자에 포함하고 싶을때 사용합니다.

include_new_lines:    # 줄 바꿈 입니다.
  new line1
  new line2
  new line3
  
ignore_new_lines: >   # 표현은 줄을 바꿨지만 출력시 문장은 이어져 있습니다.
  string 0
  string 1
  string 2

보통 java 내에서는 호출할때 @Value 어노테이션과 함께 호출되며
사용방법은 아래와 같습니다.

코드를 입력@Configuration
public class propertiConfig {
    
    @Value("${name}")
    String name;
    
    @Value("${names}")
    private List<String> names;
    
    @Value("${truth}")
    Boolean truth;
    
    @Value("${another_truth}")
    Boolean anotherTruth;
     
    @Value("${more_true}")
    Boolean moreTrue;

    @Value("${false}")
    Boolean false2;

    @Value("${include_new_lines}")
    String includeNewLines;

    @Value("${ignore_new_lines}")
    String ignoreNewLines;


    @PostConstruct
    public void init(){
    
        System.out.println(name);
        names.forEach(System.out::println);
        System.out.println(truth);
        System.out.println(anotherTruth);
        
        System.out.println(moreTrue);
        System.out.println(false2);
        System.out.println(includeNewLines); 
        System.out.println(ignoreNewLines);
    }

}

아래는 실제 출력물 입니다.

감사합니다.

profile
푸드 테크 기술 블로그
post-custom-banner

1개의 댓글

comment-user-thumbnail
2022년 8월 9일

Yaml이 그런 귀여운 이름인줄 몰랐네요!
글 잘보았습니다 Yaml 의 사용 이유와 예시가 조금 더 보고싶어지네요!

답글 달기