YAML에 대해 알아야 할 모든 것

4996 단어

YAML



또 다른 마크업 언어(이전 전체 형식)

YAML은 마크업 언어가 아닙니다(현재 전체 형식).

YAML이란 무엇입니까?


  • 데이터를 나타내는 데 사용할 수 있는 사람이 읽을 수 있는 간단한 언어
  • YAML은 프로그래밍 언어가 아닙니다
  • .
  • 데이터 교환에 사용되는 데이터 형식입니다
  • JSON 및 XML과 유사함
  • 일부 구성에 대한 일부 정보를 저장하는 데 사용됨
  • YAML에서는 명령이 아닌 데이터만 저장할 수 있습니다.

  • 데이터 - 직렬화



    직렬화:



    직렬화는 복잡한 데이터 구조에 있는 데이터 개체를 물리적 장치에서 이 데이터를 전송하는 데 사용할 수 있는 일련의 바이트(또는 스토리지)로 변환하는 프로세스입니다.
    또는
    이 데이터 객체를 일련의 바이트로 변환하는 과정은 쉽게 전송할 수 있는 객체의 상태를 저장합니다.

    image.png

    역직렬화:



    데이터 직렬화의 반대는 데이터 역직렬화입니다.

    image.png

    물체:



    코드와 데이터의 조합. 기본적으로 데이터 저장 장치입니다.

    일부 데이터 - 직렬화 언어


  • YAML
  • XML
  • JSON

  • YAML이 마크업 언어로 간주되지 않는 이유와 전체 형식이 변경된 이유는 무엇입니까?



    Markup 언어는 문서만 저장하는 데 사용되지만 YAML에서는 문서와 함께 개체 데이터를 저장할 수 있습니다. 이것이 마크업 언어로 간주되지 않는 이유입니다.

    데이터 직렬화 사용:


  • Docker/Kubernetes 등 구성 파일에 사용됨
  • 로그, 캐시 등

  • YAML의 이점:


  • 간단하고 읽기 쉬운
  • 구문이 엄격합니다. (들여쓰기 중요)
  • JSON, XML로 쉽게 변환 가능
  • 대부분의 언어에서 YAML을 사용함
  • 복잡한 데이터를 표현할 때 더 강력함
  • 파서 등 다양한 도구 사용 가능
  • 구문 분석이 쉽습니다. (파싱은 데이터를 읽는 것을 의미)

  • 몇 가지 중요한 사항:


  • YAML은 대소문자를 구분합니다. [사과!=사과]
  • YAML에서는 들여쓰기에 탭이 아닌 공백을 사용합니다
  • .
  • YAML에는 여러 줄 주석이 없습니다. (싱글만 댓글 가능)
  • 코드 블록을 분리하고 YAML 파일에서 문서로 처리하려면( --- )을 사용합니다.
  • 문서 사용의 끝으로 표시하려면( ... )
  • 시퀀스의 일부 키가 비어 있으며 희소 시퀀스라고 합니다.

  • YAML 구문




    #key-value-pairs
    "apple" : "This is a red fruit" 
    1 : "This is my roll no."
    
    ---
    
    #lists
    - apple
    - horse
    - Sourav
    - sourav
    
    ---
    
    #block
    cities:
     - New Delhi
     - Mumbai
     - Pune
     - Banglore
    
    --- 
    
    cities: [New Delhi, Mumbai, Pune, Banglore]
    
    ---
    
     {mango: "Yellow Fruit", qualtily: "A+"}
    
    ...
    


    데이터 유형




    #string variables
    myself : Sourav
    fruit : "Orange"
    job : 'DevOps Engineer'
    
    ---
    
    #multiple line strings
    
    bio:  |
     Hey, I'm Sourav Dhiman
     I'm a DevOps Engineer
    
    --- 
    
    #write a single line in multiple lines
    
    message: > 
     This is written 
     in multiple
     lines but it 
     will show in single line
    
    ---
    
    numbers: 3942
    makrs: 84.32
    booleanvalues: No #N, n, false, False, FALSE
    #same for true - Y, y, yes, True, TRUE
    
    #specify the type
    
    zero : !!int 0
    positivenum: !!int 34
    negativenum: !!int -12
    binarynum: 0b11001
    octalnum: !!int 043423
    hexalnum: !!int 0x45
    
    #floating point number
    
    marks: !!float 32.38
    infinite: !!float .inf
    not a num: !!float .nan
    
    #null
    
    surname: !!null Null # or null, NULL, ~
    ~: This is a null key
    


    고급 데이터 유형




    student: !!seq
    - marks
    - name
    - roll_no
    
    #like this also
    student: [marks, name, roll_no]
    
    #some of the keys of the seq will be empty
    #sparse seq
    sparce seq:
    - hey
    - how
    - 
    - null
    - sup
    
    #nested seq
    liking:
    - fruits:
       - banana
       - apple
    - vegetable:
       - sweet pototo
       - tomato   
    
    #key: value pairs are called maps
    !!map
    
    #nested mapping: map within a map
    name: Sourav
    role:
      - age: 19
      - job: student
    
    #same as
    name: Sourav 
    role: {age: 19, job: student}
    
    #pairs: keys may have duplicate values
    !!pairs
    
    pair examples: !!pairs 
     - job: student
     - job: teacher
    
     #same as
    
    pair example: !!pairs [job: student, job: teaacher]
    #this will be an array of hastables
    
    # set will allow you to have unique values
    
    Idenity:
     ? Sourav
     ? Nikhil
     ? Sidhant
    
     #dictionary !!omap
    
     people: !!omap
      - Sourav:
         - name: Sourav Dhiman
         - age: 19
         - height: 176
      - Nikhil:
         - name: Nikhil Sharma
         - age: 21
         - height: 174
    
    
    # reusing some properties using anchors
    
    likings: &likes
     fav fruit: mango
     dislikes: grapes
    
    
    person1:
     name: Sourav 
     <<: *likes
    
    person2:
     name: Nikhil
     <<: *likes
     dislikes: oranges
    
    #this will look like
    
    #person2:
     name: Nikhil
     fav fruit: mango
     dislikes: oranges
    
    person3:
     name: Sidhant
     <<: *likes 
    

    좋은 웹페이지 즐겨찾기