learnxinyminutes-docs/ko/yaml.md

184 lines
6.1 KiB
Markdown
Raw Normal View History

---
filename: learnyaml-kr.yaml
contributors:
- ["Leigh Brenecki", "https://github.com/adambrenecki"]
- ["Suhas SG", "https://github.com/jargnar"]
translators:
- ["Wooseop Kim", "https://github.com/linterpreteur"]
- ["Justin Yang", "https://github.com/justin-themedium"]
---
YAML은 인간이 직접 쓰고 읽을 수 있도록 설계된 데이터 직렬화 언어입니다.
YAML은 마치 파이썬처럼 개행과 들여쓰기에 문법적으로 의미를 준 JSON의 엄격한 수퍼셋입니다.
하지만 파이썬과는 달리 YAML은 탭 문자를 들여쓰기에 사용하지 않습니다.
```yaml
--- # 문서 시작
# YAML의 주석은 이런 식입니다.
############
# 스칼라 형 #
############
# 문서 내내 이어질 루트 객체는 맵입니다.
# 맵은 다른 언어의 딕셔너리, 해시, 혹은 객체에 해당합니다.
키: 값
다른_키: 다른 값이 여기 옵니다.
숫자_값: 100
과학적_표기법: 1e+12
# 숫자 1은 불리언이 아닌 값으로 처리됩니다. 불리언으로 처리하고 싶다면
# true를 사용하세요.
불리언: true
널_값: null
띄어서 쓴 키: 값
# 문자열에 따옴표를 칠 필요는 없습니다. 하지만 칠 수도 있습니다.
하지만: '따옴표에 담은 문자열'
'키도 따옴표에 담을 수 있습니다.': "키에 ':'을 넣고 싶다면 유용합니다."
작은 따옴표: '는 ''하나''의 이스케이프 패턴을 갖습니다'
큰 따옴표: "는 많이 갖습니다. \", \0, \t, \u263A, \x0d\x0a == \r\n, 그리고 더."
# UTF-8/16/32 문자는 인코딩되어야 합니다.
첨자 2: \u00B2
# 여러 줄의 문자열은 (|을 이용한) '리터럴 블락' 혹은 (>을 이용한) '접은 블락'으로
# 쓸 수 있습니다.
리터럴_블락: |
개행을 포함한 이 모든 덩어리가 '리터럴_블락' 키에 대응하는 값이 될 것입니다.
리터럴 값은 들여쓰기가 끝날 때까지 계속되며 들여쓰기는 문자열에 포함되지
않습니다.
'들여쓰기를 더 한' 줄은 나머지 들여쓰기를 유지합니다.
이 줄은 띄어쓰기 4개만큼 들여쓰기 됩니다.
접는_방식: >
이 텍스트 덩어리가 전부 '접는_방식' 키의 값이 되지만, 이번에는 모든 개행 문자가
띄어쓰기 하나로 대체됩니다.
위와 같이 텅 빈 줄은 개행 문자로 바뀝니다.
'더 들여쓴' 줄 역시 개행 문자를 유지합니다.
이 텍스트는 두 줄에 걸쳐 나타날 것입니다.
##########
# 모임 형 #
##########
# 중첩은 들여쓰기를 사용합니다. 2칸 띄어쓰기가 많이 쓰입니다(필수는 아닙니다).
중첩된_맵:
키: 값
다른_키: 다른 값
다른_중첩된_맵:
안녕: 안녕
# 맵은 반드시 문자열 키를 가지는 것은 아닙니다.
0.25: 실수형 키
# 키는 여러 줄에 걸친 객체와 같이 복합적일 수도 있습니다.
# ?와 그 뒤의 띄어쓰기로 복합 키의 시작을 나타냅니다.
? |
여러 줄짜리
: 그리고 그 값
# YAML은 복합 키 문법으로 연속열 간의 매핑도 지원합니다.
# 일부 파서는 지원하지 않을 수 있습니다.
# 예시
? - 맨체스터 유나이티드
- 레알 마드리드
: [2001-01-01, 2002-02-02]
# 리스트 혹은 배열에 대응되는 연속열은 다음과 같습니다.
# (들여쓰기처럼 '-'를 세는 것에 주의하세요)
연속열:
- 하나
-
- 0.5 # 연속열은 다른 형을 포함 가능
-
- 키: 값
다른_키: 다른_값
-
- 연속열 안의
- 또 다른 연속열
- - - 중첩된 연속열 지시자
- 접힘 가능
# YAML은 JSON의 수퍼셋이기 때문에, JSON식으로 맵과 연속열을 작성할 수도
# 있습니다.
제이슨_맵: {"키": "값"}
제이슨_열: [3, 2, 1, "발사"]
#################
# 기타 YAML 기능 #
#################
# YAML은 '앵커'라는 편리한 기능이 있습니다. 앵커를 이용하면 문서에서
# 손쉽게 내용을 복제할 수 있습니다. 이 키들은 같은 값을 갖습니다.
앵커된_내용: &앵커_이름 이 문자열은 두 키의 값으로 나타납니다.
다른_앵커: *앵커_이름
# 앵커는 속성을 복제하거나 상속할 수 있습니다.
기반: &기반
이름: 모두 이름이 같다
# 정규식 << 는 병합 키 언어-비종속 타입으로 불립니다. 이는 하나
# 이상 지정된 맵의 모든 키가 현재 맵 안으로 삽입됨을 나타냅니다.
멍멍:
<<: *기반
나이: 10
야옹:
<<: *기반
나이: 20
# 멍멍이와 야옹이도 '이름: 모두 이름이 같다'를 갖습니다.
# 또한 YAML에는 명시적으로 형을 선언할 수 있는 태그가 있습니다.
명시적_문자열: !!str 0.5
# 파이썬의 복소수 형을 나타내는 다음 태그처럼, 일부 파서는 언어에 종속된 태그를
# 구현합니다.
파이썬_복소수: !!python/complex 1+2j
# YAML 복합 키를 언어 종속 태그와 함께 사용할 수도 있습니다.
? !!python/tuple [5, 7]
: 오십칠
# 파이썬에서의 {(5, 7): '오십칠'} 객체
###############
# 기타 YAML 형 #
###############
# YAML이 이해할 수 있는 스칼라가 문자열과 수만 있는 것은 아닙니다.
# ISO 형식 날짜와 시간 리터럴 또한 해석됩니다.
시간: 2001-12-15T02:59:43.1Z
띄어쓰기_한_시간: 2001-12-14 21:59:43.10 -5
날짜: 2002-12-14
# !!binary 태그는 문자열이 실제로는 base64로 인코딩된
# 이진수 객체(BLOB)라는 것을 나타냅니다.
이미지_파일: !!binary |
R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5
OTk6enp56enmlpaWNjY6Ojo4SEhP/++f/++f/++f/++f/++f/++f/++f/++f/+
+f/++f/++f/++f/++f/++SH+Dk1hZGUgd2l0aCBHSU1QACwAAAAADAAMAAAFLC
AgjoEwnuNAFOhpEMTRiggcz4BNJHrv/zCFcLiwMWYNG84BwwEeECcgggoBADs=
# YAML에는 다음과 같은 집합도 있습니다.
집합:
? 하나
? 둘
? 셋
# 집합은 단지 널 값을 갖는 맵입니다. 위는 다음과 같습니다.
집합2:
하나: null
둘: null
셋: null
... # 문서 끝
```
### 더 읽기
+ [(영어) YAML 공식 사이트](https://yaml.org/)
+ [(영어) 온라인 YAML 검사기](http://www.yamllint.com/)