문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판이전 판다음 판 | 이전 판 | ||
| utils:yaml [2018/03/05 11:59] – taekgu | utils:yaml [2025/04/15 10:05] (현재) – 바깥 편집 127.0.0.1 | ||
|---|---|---|---|
| 줄 13: | 줄 13: | ||
| 이에 따라 YAML은 설정 파일의 목적으로 많이 쓰이는 거 같습니다. 하지만 JSON이 문법이 더 단순하기 때문에 훨씬 더 많이 사용되고 있고 YAML이 이를 뒤집기는 어려워 보입니다. 어떤 포맷이든 각자 장점이 있고 자주 사용되는 곳이 있으니 필요에 따라 그저 잘 사용하면 될 것 같습니다. | 이에 따라 YAML은 설정 파일의 목적으로 많이 쓰이는 거 같습니다. 하지만 JSON이 문법이 더 단순하기 때문에 훨씬 더 많이 사용되고 있고 YAML이 이를 뒤집기는 어려워 보입니다. 어떤 포맷이든 각자 장점이 있고 자주 사용되는 곳이 있으니 필요에 따라 그저 잘 사용하면 될 것 같습니다. | ||
| + | ==== 3. 용어 및 기본 구조 ==== | ||
| + | YAML의 기본 자료형(primitives)입니다. | ||
| + | * 스칼라(scalar) : 스트링 또는 숫자 | ||
| + | * 시퀀스(sequence) : 배열 또는 리스트 | ||
| + | * 맵핑(mapping) : 해시 또는 딕셔너리, | ||
| + | * 맵핑 시 키/값은 :를 이용해서 구분합니다. ex> key: value | ||
| + | * 각 블록은 들여쓰기를 통해 구분 | ||
| + | * 시퀀스는 들여쓰기와 -를 통해 표현 | ||
| + | * #으로 시작하면 주석 | ||
| + | * 하나의 스트림으로 여러개의 문서를 표현할 때에는 하이픈 세개(---)로 나눕니다. 마침표 세개(...)은 스트림의 끝을 나타냅니다. | ||
| + | * 반복되는 값은 &를 통해 alias를 설정할 수 있습니다. | ||
| + | |||
| + | ==== 4. 사용 예 ==== | ||
| + | 자세한 내용을 알면 좋겠지만 저는 YAML이 필요할 때 간단히 사용해보는 정도 수준으로 보려 합니다. 이정도의 목적이라면..바로 예제를 보는게 가장 좋겠죠. 아래에는 1.2 스펙 문서에 있는 내용을 그대로 옮겼습니다. | ||
| + | |||
| + | ===스칼라, | ||
| + | <code yaml> | ||
| + | # Sequence of scalars(ball player) | ||
| + | - Mark McGwire | ||
| + | - Sammy Sosa | ||
| + | - Ken Griffey | ||
| + | |||
| + | # Mapping of scalars to scalars(player statics) | ||
| + | hr: 65 # Home runs | ||
| + | avg: 0.278 # Batting average | ||
| + | rbi: 147 # Runs Batted In | ||
| + | |||
| + | # Mapping of scalars to sequences(ball clubs in each league) | ||
| + | american: | ||
| + | - Boston Red Sox | ||
| + | - Detroit Tigers | ||
| + | - New York Yankees | ||
| + | national: | ||
| + | - New York Mets | ||
| + | - Chicago Cubs | ||
| + | - Atlanta Braves | ||
| + | |||
| + | # Sequence of mappings(players' | ||
| + | - | ||
| + | name: Mark McGwire | ||
| + | hr: 65 | ||
| + | avg: 0.278 | ||
| + | - | ||
| + | name: Sammy Sosa | ||
| + | hr: 63 | ||
| + | avg: 0.288 | ||
| + | |||
| + | # in-line flow style for compact notation | ||
| + | - [name , hr, avg ] | ||
| + | - [Mark McGwire, 65, 0.278] | ||
| + | - [Sammy Sosa , 63, 0.288] | ||
| + | |||
| + | Mark McGwire: {hr: 65, avg: 0.278} | ||
| + | Mark McGwire: {hr: 65, avg: 0.278} | ||
| + | Sammy Sosa: { | ||
| + | hr: 63, | ||
| + | avg: 0.288 | ||
| + | } | ||
| + | </ | ||
| + | ===스트림 내 여러 문서 표현의 예=== | ||
| + | ==Two Documents in a Stream(each with a leading comment)== | ||
| + | <code yaml> | ||
| + | # Ranking of 1998 home runs | ||
| + | --- | ||
| + | - Mark McGwire | ||
| + | - Sammy Sosa | ||
| + | - Ken Griffey | ||
| + | |||
| + | # Team ranking | ||
| + | --- | ||
| + | - Chicago Cubs | ||
| + | - St Louis Cardinals | ||
| + | </ | ||
| + | ==Play by Play Feed from a Game== | ||
| + | <code yaml> | ||
| + | --- | ||
| + | time: 20:03:20 | ||
| + | player: Sammy Sosa | ||
| + | action: strike (miss) | ||
| + | ... | ||
| + | --- | ||
| + | time: 20:03:47 | ||
| + | player: Sammy Sosa | ||
| + | action: grand slam | ||
| + | ... | ||
| + | </ | ||
| + | ===앵커와 별명(alias)=== | ||
| + | ==Node for “Sammy Sosa”appears twice in this document== | ||
| + | <code yaml> | ||
| + | --- | ||
| + | hr: | ||
| + | - Mark McGwire | ||
| + | # Following node labeled SS | ||
| + | - &SS Sammy Sosa | ||
| + | rbi: | ||
| + | - *SS # Subsequent occurrence | ||
| + | - Ken Griffey | ||
| + | </ | ||
| + | ==== 5. 참고 자료 ==== | ||
| + | [[http:// | ||
| + | YAML 공식 페이지입니다. | ||
| + | |||
| + | [[http:// | ||
| + | YAML 1.0의 스펙 문서입니다. YAML에 대한 전반적인 설명을 볼 수 있습니다. | ||
| + | |||
| + | [[http:// | ||
| + | YAML 1.2의 스펙 문서입니다. | ||
| + | |||
| + | [[https:// | ||
| + | YAML의 한글 위키 페이지입니다. | ||