코딩스토리/파이썬

파이썬 YAML 사용방법

Tech&Fin 2023. 11. 2. 14:43
반응형

목차 - 클릭하면 이동합니다.

    YAML이란?

    YAML은 한글로 읽는 방법이 정해져 있지는 않지만 일반적으로 야믈이라고 읽고 있습니다. 이 YAML(야믈) 파일은 파이썬에서만 사용하는 특정한 양식은 아니고 프로그래밍을 하면서 접하게 되는 많은 파일 형식 중에 하나라고 보시면 됩니다.

     

    주로 환경 파일을 작성하는데 사용되는 형식으로 JSON, XML 형식등과 비슷한 것이라고 생각하시면 됩니다.

     

    YAML파일의 장점

    YAML(야믈) 파일의 장점을 이야기하려면 JSON 형식과 비교를 하는 것이 좋을 것 같은데요. 그럼 먼저 JSON 파일의 문법을 살펴 보겠습니다.

     

    JSON 형식

    {
      "name": "name",
      "description": "description",
      "license": "MIT",
      "version": "1.0.0",
      "array": ["1", "2", "3"],
      "author": {
        "name": "Tech&Fin",
        "url": "https://technfin.tistory.com/"
      }
    }

    JSON은 위와 같이 {} 괄호를 사용합니다. 단계적인 트리 구조를 만들 수 있으며 괄호안에 괄호를 사용하여 하위 변수를 관리할 수 있습니다.

     

    YAML 형식

    ---
    name: name
    description: description
    license: MIT
    version: 1.0.0
    # 배열사용
    array:
    - '1'
    - '2'
    - '3'
    author:
      name: Tech&Fin
      url: https://technfin.tistory.com/

    같은 내용을 YAML 형식으로 변경하면 위와 같이 만들 수 있습니다.

     

    YAML 형식의 장점

    1. 괄호가 사라지니 전체적인 글자수가 줄어 들게 됩니다. 파일 전송 시 파일 사이즈가 즐어들어 리소스 낭비가 줄어 듭니다.

    2. 간결해진 문법 덕에 가독성이 뛰어납니다.

    3. 파일 내 주석을 사용할 수 있습니다.

     

    YAML 파일 사용법

    기본 문법

    key: value 형태로 key에 value를 매핑하여 사용합니다.

    Value 타입

    int type: 1
    string type : "string"
    boolean type : true

    위와 같이 3가지의 자료형이 사용 가능 합니다.

    하위 구조 및 배열

    key:
      sub_key:
      sub_key1:
        - list1
        - list2

    위와 같이 하위 구조는 인덴트(들여쓰기)로 구분하고 변수 내 배열은 -(마이너스) 기호를 사용하여 표현합니다.

    텍스트

    # Output
    # This text treated with line break.
    # Next line.
    text_line_break: |
      This text treated with line break.
      Next line.
    
    # Output
    # This text treated without line break.Line Break will be ignored.
    text_line_ignore: >
      This text treated without line break.
      Line Break will be ignored.

    | 는 줄바꿈이 포함되고, > 는 줄바꿈이 무시됩니다.

    마치며

    YAML 파일을 파이썬에서 사용하여 각종 환경변수를 관리하면 편리합니다. 추후 저희가 진행하는 프로젝트에서도 YAML파일을 이용하여 환경변수를 관리할 예정이오니 참고하시면 좋을 것 같습니다.

    반응형