Introduction - 소개
복잡한 구조로 이루어진 객체를 상상 해 보세요.
예를 들어, 당신이 커다란 사전이나, 다른 값들의 묶음인 목록을 가지고 있습니다.
당신은 이것의 구조를 잃지 않고 객체를 보존해야 해야 합니다.
다른 말로, 당신은 이것을 직렬화하고 싶어합니다.
만약에 직렬화 된 포맷이 간단한 구문과 사람이 읽을 수 있는 경우에도 좋습니다.
따라서, YAML 이라 불리는 유명한 데이터 포맷에 정통 해 져 봅시다.
YAML 은 재귀적인 약어인데, YAML Ain't Markup Language 의 약어입니다.
이는 모든 프로그래밍 언어들에게 표준이 되는 인간이 읽을 수 있는 데이터 직렬화입니다.
YAML 은 보통 설정 파일로 사용되거나, 데이터를 저장하거나 전송하기 위해 사용됩니다.
만약 당신이 소프트웨어 설정 작업과 관련된 어떠한 것을 하는 동안에는 YAML 로부터 빠져나오기 힘듭니다.
그만큼 YAML 이 너무나 널리 사용되고 있다는 뜻이다.
YAML 파일의 확장자에 대한 주된 확장자명은 .yaml 그리고 .yml 입니다.
이 YAML 에 대한 간단함과 기능성에 감사하기 위해 이것을 더 가까이 지켜봅시다.
우리는 기본 타입, 구조, 그리고 문법을 배울 겁니다.
Basic data types - 기초 데이터 타입
YAML 은 숫자, 문자열, 불린, 등등 과 같은 모든 본질적인 데이터 유형들을 지원합니다.
또한 이것은 몇가지 언어에 특화된 데이터 타입들을 인지하는데,
date, timestamp, 그리고 특별한 수학적 값들을 인지합니다.
따라서, 기본적으로 YAML 데이터 타입들이 포함된 목록들입니다 :
- 정수 : 15, 123
- 문자열 : "15", 'Hello, YAML!' ==> 큰따옴표, 혹은 작은 따옴표로 둘러싸임
- 소수 : 15.033
- 불린 : true, false
- null : null
YAML 은 데이터의 타입을 자동으로 감지하지만,
유저들이 !! 를 사용하여 데이터의 타입을 지정 할 수 있습니다.
예를 들어, 만약 당신이 문자열 yes 를 지정해야 한다면,
!!str yes 로 작성해야 합니다.
이제 당신은 YAML 의 기본적인 데이터 유형을 알았습니다.
이제 YAML 의 구조와 문법을 이해 해 봅시다.
Maps - 맵
매핑은 키-값 쌍으로 구성됩니다. 예를 들어 :
---
object: Book
metadata:
name: Three Men in a Boat
author: Jerome K Jerome
genre: humorous account
published:
year: 1889
country: United Kingdom
첫 번째 줄의 --- 는 분리자 입니다.
이건 당신이 단 하나의 파일에서 여러 개의 구조들을 정의하려고 할 때 까지는 선택적입니다.
하나의 매핑, 즉 오브젝트만 만들거면 선택인데, 2개부터는
---로 분리 해 줘야 한다는 의미이다.
그 다음에 key : value 쌍이 블록으로서 있습니다.
이러한 key : value 쌍들은 스칼라(scalars) 라고 부릅니다.
구문은 깔끔하고 간단합니다.
자주 사용되는 기호들, 마치 괄호, 대괄호, 닫는 태그, 인용 부호와 같은 것들은 불필요합니다.
스칼라들은 콜론으로 분리되며, 맵 엘리먼트 사이에는 공백이 있어야 합니다.
YAML 에서는, 들여쓰기가 항상 공백으로 완료된다는 것을 참고하세요.
탭 (tab) 이 아닙니다.
Lists - 리스트 (목록)
YAML 에서의 리스트는 객체의 순서입니다.
밑의 예제가 보여주고 있습니다.
animals:
- cat
- dog
- bird
리스트의 수는 제한되지 않습니다.
리스트의 각각의 아이템은 하이픈 (hyphen -) 으로 시작해야 합니다.
엘리먼트들은 공백으로 상위 요소와 구분됩니다.
상위 요소의 이름 이후에, 콜론 (:) 이 와야 합니다.
위의 예제는 블록 스타일(block style) 을 표현하고 있습니다.
플로우 스타일 (flow style) 에서는 리스트가 이와 같이 표현됩니다 :
[cat, dog, bird].
이러한 것들은 구조입니다.
다음으로, 우리는 이것들을 어떻게 결합하는지 배울 겁니다.
Combination - Map, List 결합하기
맵과 리스트는 결합이 가능하므로,
하나의 요소가 맵의 맵 이거나, 맵의 리스트 이거나,
리스트의 리스트 이거나, 리스트의 맵 일 수도 있습니다.
한번 To-do 맵의 예제를 고려 해 봅시다.
이 예제의 key 는 요일들이며,
value 은 각각의 하루 동안 해야 할 일들의 리스트입니다 :
weekend:
saturday:
- order cleaning
- order a pizza
- watch new series
sunday:
- go to yoga
- hang out with a friend
또한, 만약 당신이 리스트를 대신해, 개행문자를 보존한 문자열을 표시해야 한다면, | 문자를 사용하세요 :
saturday: |
order cleaning
order a pizza
watch new series
좋습니다, 이제 당신은 어떻게 구조를 사용해야 하는지 알았습니다.
우리가 여기서 말해야 하는 마지막 중요한 것은 comment (주석) 입니다.
Comments - 주석
주석은 # 으로 시작하며, 개행이 될 때 까지 적용됩니다.
주석은 줄의 어디서든 만들어질 수 있습니다.
예를 들어 :
# The comment
metadata: # this is metadata
name: Three Men in a Boat
author: Jerome K Jerome
genre: humorous account
Conclusion - 결론
요약하여, 우리는 이러한 것들을 배웠습니다 :
- YAML 은 인간이 읽을 수 있는 텍스트 기반의 형식으로 되어 있어 당신이 쉽게 설정 유형 정보를 지정 할 수 있습니다.
- YAML 은 정수, 문자열, 소수, 불린, 널(null) 데이터 유형을 지원합니다.
- YAML 에는 두 가지 데이터 구조가 있는데, 이는 list 와 map 이며, 결합될 수 있습니다.
- 주석은 YAML 파일에 추가 될 수 있습니다 (
#)
words to remember
acquainted : 정통한, 사귀게 된, 안면이 있는
acronym : 약어
'Hyperskill - 컴퓨터 CS 및 영어 독해 > Introduction to Docker' 카테고리의 다른 글
| Coupling and Cohesion - 연결성과 응집도 (0) | 2024.07.11 |
|---|---|
| Code organization. Design principles - 디자인 원칙과 코드 정리 (0) | 2024.07.10 |
| Interfaces - 인터페이스 (0) | 2024.07.03 |
| What is object oriented programming - 객체지향 프로그래밍은 무엇인가 (0) | 2024.06.28 |
| Framework - 프레임워크 (0) | 2024.06.23 |