diff options
Diffstat (limited to 'ko-kr')
-rw-r--r-- | ko-kr/json-kr.html.markdown | 80 | ||||
-rw-r--r-- | ko-kr/markdown-kr.html.markdown | 308 | ||||
-rw-r--r-- | ko-kr/xml-kr.html.markdown | 168 | ||||
-rw-r--r-- | ko-kr/yaml-kr.html.markdown | 172 |
4 files changed, 728 insertions, 0 deletions
diff --git a/ko-kr/json-kr.html.markdown b/ko-kr/json-kr.html.markdown new file mode 100644 index 00000000..462bf63a --- /dev/null +++ b/ko-kr/json-kr.html.markdown @@ -0,0 +1,80 @@ +--- +language: json +filename: learnjson-kr.json +contributors: + - ["Anna Harren", "https://github.com/iirelu"] + - ["Marco Scannadinari", "https://github.com/marcoms"] + - ["himanshu", "https://github.com/himanshu81494"] + - ["Michael Neth", "https://github.com/infernocloud"] +translators: + - ["Wooseop Kim", "https://github.com/linterpreteur"] +lang: ko-kr +--- + +JSON은 아주 간단한 데이터 교환 포맷입니다. [json.org](http://json.org/json-ko.html)에 의하면, 사람이 읽고 쓰기 쉬우며 기계가 분석하고 생성하기 쉽습니다. + +JSON 한 개는 반드시 이하의 둘 중 하나를 나타내야 합니다. +* 이름과 값 쌍의 모임(`{ }`). 이는 다양한 언어에서 객체, 레코드, 구조체, 딕셔너리, 해시 테이블, 키 리스트, 혹은 연관 배열로 구현됩니다. +* 값에 순서가 있는 리스트 (`[ ]`). 이는 다양한 언어에서 배열, 벡터, 리스트, 시퀀스로 구현됩니다. + +순수한 JSON은 사실 주석이 없지만 대부분의 파서는 C 스타일의 주석(`//`, `/* */`)도 받아들일 겁니다. 일부 파서는 꼬리에 오는 쉼표, 즉 배열의 마지막 원소 혹은 객체의 마지막 속성 다음에 오는 쉼표도 인정하겠지만, 호환성을 위해 쓰지 않는 것이 좋습니다. + +이 튜토리얼의 목적에 따라 모든 것은 100% 유효한 JSON입니다. 다행스럽게도 JSON은 다소 자기서술적입니다. + +지원하는 데이터 형: + +* 문자열: `"안녕"`, `"\"따옴표.\""`, `"\u0abe"`, `"개행 문자.\n"` +* 수: `23`, `0.11`, `12e10`, `3.141e-10`, `1.23e+4` +* 객체: `{ "키": "값" }` +* 배열: `["값 값 값"]` +* 기타: `true`, `false`, `null` + +```json +{ + "키": "값", + + "키는": "반드시 큰따옴표 안에 있어야 합니다.", + "수": 0, + "문자열": "Hellø, wørld. 모든 유니코드와 \"탈출 문자\"가 지원됩니다.", + "부울도 있나?": true, + "아무 것도 없는 건": null, + + "큰 수": 1.2e+100, + + "객체": { + "주석": "문서 구조의 대부분은 객체가 될 것입니다.", + + "배열": [0, 1, 2, 3, "배열 안에는 무엇이든 올 수 있습니다.", 5], + + "다른 객체": { + "주석": "객체는 객체를 포함할 수 있습니다. 아주 유용하죠." + } + }, + + "장난이지롱": [ + { + "칼륨이 풍부한": ["바나나"] + }, + [ + [1, 0, 0, 0], + [0, 1, 0, 0], + [0, 0, 1, "neo"], + [0, 0, 0, 1] + ] + ], + + "다른 방식": { + "주석": "여기 보세요!" + , "쉼표의 위치는": "상관 없습니다. 다음 키 전에만 온다면 유효합니다." + , "다른 주석": "참 좋죠" + }, + + "공백은": "상관이 없습니다.", + + "짧았죠": "끝입니다. JSON의 모든 것을 터득하셨습니다." +} +``` + +## 더 읽기 + +* [JSON.org](http://json.org/json-ko.html) 플로우차트와 같은 그래픽을 이용해 설명한 JSON의 모든 것. diff --git a/ko-kr/markdown-kr.html.markdown b/ko-kr/markdown-kr.html.markdown new file mode 100644 index 00000000..bfa2a877 --- /dev/null +++ b/ko-kr/markdown-kr.html.markdown @@ -0,0 +1,308 @@ +--- +language: markdown +contributors: + - ["Dan Turkel", "http://danturkel.com/"] + - ["Jacob Ward", "http://github.com/JacobCWard/"] +filename: markdown-kr.md +lang: ko-kr +--- + +마크다운은 2004년에 존 그루버가 창시했습니다. HTML으로 (그리고 이제는 다른 다양한 형식으로도) 쉽게 변환되는 읽고 쓰기 쉬운 문법입니다. + +마크다운은 또한 파서마다 구현이 다양합니다. 본 문서는 어떤 기능이 보편적인지, +혹은 어떤 기능이 특정 파서에 종속되어 있는지 명확히 하고자 합니다. + +- [HTML 요소](#html-elements) +- [제목](#headings) +- [간단한 텍스트 꾸미기](#simple-text-styles) +- [문단](#paragraphs) +- [목록](#lists) +- [코드](#code-blocks) +- [수평선](#horizontal-rule) +- [링크](#links) +- [이미지](#images) +- [기타](#miscellany) + +## HTML 요소 +HTML은 마크다운의 수퍼셋입니다. 모든 HTML 파일은 유효한 마크다운이라는 것입니다. +```markdown +<!--따라서 주석과 같은 HTML 요소들을 마크다운에 사용할 수 있으며, 마크다운 파서에 영향을 +받지 않을 것입니다. 하지만 마크다운 파일에서 HTML 요소를 만든다면 그 요소의 안에서는 +마크다운 문법을 사용할 수 없습니다.--> +``` +## 제목 + +텍스트 앞에 붙이는 우물 정 기호(#)의 갯수에 따라 `<h1>`부터 `<h6>`까지의 HTML 요소를 +손쉽게 작성할 수 있습니다. +```markdown +# <h1>입니다. +## <h2>입니다. +### <h3>입니다. +#### <h4>입니다. +##### <h5>입니다. +###### <h6>입니다. +``` +또한 h1과 h2를 나타내는 다른 방법이 있습니다. +```markdown +h1입니다. +============= + +h2입니다. +------------- +``` +## 간단한 텍스트 꾸미기 + +마크다운으로 쉽게 텍스트를 기울이거나 굵게 할 수 있습니다. +```markdown +*기울인 텍스트입니다.* +_이 텍스트도 같습니다._ + +**굵은 텍스트입니다.** +__이 텍스트도 같습니다.__ + +***기울인 굵은 텍스트입니다.*** +**_이 텍스트도 같습니다._** +*__이것도 같습니다.__* +``` +깃헙 전용 마크다운에는 취소선도 있습니다. +```markdown +~~이 텍스트에는 취소선이 그려집니다.~~ +``` +## 문단 + +문단은 하나 이상의 빈 줄로 구분되는, 한 줄 이상의 인접한 텍스트입니다. + +```markdown +문단입니다. 문단에 글을 쓰다니 재밌지 않나요? + +이제 두 번째 문단입니다. +아직도 두 번째 문단입니다. + +나는 세 번째 문단! +``` +HTML `<br />` 태그를 삽입하고 싶으시다면, 두 개 이상의 띄어쓰기로 문단을 끝내고 +새 문단을 시작할 수 있습니다. + +```markdown +띄어쓰기 두 개로 끝나는 문단 (마우스로 긁어 보세요). + +이 위에는 `<br />` 태그가 있습니다. +``` + +인용문은 > 문자로 쉽게 쓸 수 있습니다. + +```markdown +> 인용문입니다. 수동으로 개행하고서 +> 줄마다 `>`를 칠 수도 있고 줄을 길게 쓴 다음에 저절로 개행되게 내버려 둘 수도 있습니다. +> `>`로 시작하기만 한다면 차이가 없습니다. + +> 한 단계 이상의 들여쓰기를 +>> 사용할 수도 있습니다. +> 깔끔하죠? +``` + +## 목록 +순서가 없는 목록은 별표, 더하기, 하이픈을 이용해 만들 수 있습니다. +```markdown +* 이거 +* 저거 +* 그거 +``` + +또는 + +```markdown ++ 이거 ++ 저거 ++ 그거 +``` + +또는 + +```markdown +- 이거 +- 저거 +- 그거 +``` + +순서가 있는 목록은 숫자와 마침표입니다. + +```markdown +1. 하나 +2. 둘 +3. 셋 +``` + +숫자를 정확히 붙이지 않더라도 제대로 된 순서로 보여주겠지만, 좋은 생각은 아닙니다. + +```markdown +1. 하나 +1. 둘 +1. 셋 +``` +(위의 예시와 똑같이 나타납니다.) + +목록 안에 목록이 올 수도 있습니다. + +```markdown +1. 하나 +2. 둘 +3. 셋 + * 이거 + * 저거 +4. 넷 +``` + +심지어 할 일 목록도 있습니다. HTML 체크박스가 만들어집니다. + +```markdown +x가 없는 박스들은 체크되지 않은 HTML 체크박스입니다. +- [ ] 첫 번째 할 일 +- [ ] 두 번째 할 일 +이 체크박스는 체크된 HTML 체크박스입니다. +- [x] 완료된 일 +``` + +## 코드 + +띄어쓰기 네 개 혹은 탭 한 개로 줄을 들여씀으로서 (`<code> 요소를 사용하여`) 코드를 +나타낼 수 있습니다. + +```markdown + puts "Hello, world!" +``` + +탭을 더 치거나 띄어쓰기를 네 번 더 함으로써 코드를 들여쓸 수 있습니다. + +```markdown + my_array.each do |item| + puts item + end +``` + +인라인 코드는 백틱 문자를 이용하여 나타냅니다. ` + +```markdown +철수는 `go_to()` 함수가 뭘 했는지도 몰랐어! +``` + +깃헙 전용 마크다운에서는 코드를 나타내기 위해 특별한 문법을 쓸 수 있습니다. + +<pre> +<code class="highlight">```ruby +def foobar + puts "Hello world!" +end +```</code></pre> + +위의 경우에 들여쓰기가 필요없을 뿐 아니라 \`\`\` 뒤에 특정해 준 언어의 문법에 따라 +색을 입혀줄 것입니다. + +## 수평선 + +수평선(`<hr/>`)은 셋 이상의 별표나 하이픈을 이용해 쉽게 나타낼 수 있습니다. +띄어쓰기가 포함될 수 있습니다. +```markdown +*** +--- +- - - +**************** +``` +## 링크 + +마크다운의 장점 중 하나는 링크를 만들기 쉽다는 것입니다. 대괄호 안에 나타낼 텍스트를 쓰고 +괄호 안에 URL을 쓰면 됩니다. + +```markdown +[클릭](http://test.com/) +``` + +괄호 안에 따옴표를 이용해 링크에 제목을 달 수도 있습니다. + +```markdown +[클릭](http://test.com/ "test.com으로 가기") +``` + +상대 경로도 유효합니다. + +```markdown +[music으로 가기](/music/). +``` + +참조하는 식으로 링크를 걸 수도 있습니다. + +<pre><code class="highlight">[<span class="nv">이 </span>][<span class="ss">링크</span>]에서 더 알아보세요! +[<span class="nv">원하신다면 </span>][<span class="ss">foobar</span>]도 참고하세요. + +[<span class="nv">링크</span>]: <span class="sx">http://test.com/</span> <span class="nn">"좋아!"</span> +[<span class="nv">foobar</span>]: <span class="sx">http://foobar.biz/</span> <span class="nn">"됐다!"</span></code></pre> + +제목은 작은 따옴표나 괄호에 들어갈 수도 있고, 완전히 생략할 수도 있습니다. 참조는 문서의 +어느 곳에든 올 수 있고 참조 ID는 유일하다면 무엇이든 될 수 있습니다. + +링크 텍스트를 ID로 사용하는 "묵시적 이름"도 있습니다. + +<pre><code class="highlight">[<span class="nv">이것</span>][]은 링크입니다. + +[<span class="nv">이것</span>]: <span class="sx">http://thisisalink.com/</span></code></pre> + +하지만 보통 그렇게 추천하지는 않습니다. + +## 이미지 +이미지는 링크와 같지만 앞에 느낌표가 붙습니다. + +```markdown +![이미지의 alt 속성](http://imgur.com/myimage.jpg "제목") +``` + +참조 방식도 가능합니다. + +<pre><code class="highlight">![<span class="nv">alt 속성</span>][<span class="ss">이미지</span>] + +[<span class="nv">이미지</span>]: <span class="sx">relative/urls/cool/image.jpg</span> <span class="nn">"제목이 필요하다면 여기에"</span></code></pre> + +## 기타 +### 자동 링크 + +```markdown +<http://testwebsite.com/>와 +[http://testwebsite.com/](http://testwebsite.com/)는 동일합니다. +``` + +### 이메일 자동 링크 +```markdown +<foo@bar.com> +``` +### 탈출 문자 + +```markdown +*별표 사이에 이 텍스트*를 치고 싶지만 기울이고 싶지는 않다면 +이렇게 하시면 됩니다. \*별표 사이에 이 텍스트\*. +``` + +### 키보드 키 + +깃헙 전용 마크다운에서는 `<kbd>` 태그를 이용해 키보드 키를 나타낼 수 있습니다. + +```markdown +컴퓨터가 멈췄다면 눌러보세요. +<kbd>Ctrl</kbd>+<kbd>Alt</kbd>+<kbd>Del</kbd> +``` + +### 표 + +표는 깃헙 전용 마크다운에서만 쓸 수 있고 다소 복잡하지만, 정말 쓰고 싶으시다면 +```markdown +| 1열 | 2열 | 3열 | +| :--------| :-------: | --------: | +| 왼쪽 정렬 | 가운데 정렬 | 오른쪽 정렬 | +| 머시기 | 머시기 | 머시기 | +``` +혹은 +```markdown +1열 | 2열 | 3열 +:-- | :-: | --: +으악 너무 못생겼어 | 그만 | 둬 +``` +--- +추가 정보를 위해, 존 그루버의 공식 문법 [(영어) 문서](http://daringfireball.net/projects/markdown/syntax)와 애덤 프릿차드의 훌륭한 [(영어) 치트싯](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet)을 확인하세요. diff --git a/ko-kr/xml-kr.html.markdown b/ko-kr/xml-kr.html.markdown new file mode 100644 index 00000000..9beef581 --- /dev/null +++ b/ko-kr/xml-kr.html.markdown @@ -0,0 +1,168 @@ +--- +language: xml +filename: learnxml-kr.xml +contributors: + - ["João Farias", "https://github.com/JoaoGFarias"] + - ["Rachel Stiyer", "https://github.com/rstiyer"] + - ["Deepanshu Utkarsh", "https://github.com/duci9y"] +translators: + - ["Wooseop Kim", "https://github.com/linterpreteur"] +lang: ko-kr +--- + +XML은 데이터를 저장하고 전송하기 위해 설계된 마크업 언어입니다. 인간과 기계 모두가 읽을 수 있도록 만들어졌습니다. + +XML은 HTML과는 달리 데이터를 보여주는 방법이나 그 형식을 특정하지 않습니다. 단지 데이터를 담을 뿐입니다. + +차이는 **내용**과 **마크업**에 있습니다. 내용은 무엇이든 될 수 있지만, 마크업은 정의되어 있습니다. + +## 기초 정의 및 도입 + +XML 문서는 기본적으로 자신을 설명하는 *속성*을 가질 수 있으며 자식으로서 텍스트 혹은 다른 요소를 가질 수 있는 *요소*들로 이루어집니다. 모든 XML 문서는 반드시 루트 요소를 가져야 합니다. 루트 요소는 문서에 있는 모든 다른 요소들의 조상입니다. + +XML 파서는 매우 엄격하게 설계되어 있으므로 문서의 형식이 틀렸다면 파싱을 멈출 것입니다. 그러므로 모든 XML 문서는 [(영어) XML 문법 규칙](http://www.w3schools.com/xml/xml_syntax.asp)을 따른다고 보장할 수 있습니다. + +```xml +<!-- 주석에는 두 개의 연속된 하이픈(-)이 들어갈 수 없습니다. --> +<!-- 주석은 여러 줄로 + 이어질 수 있습니다. --> + +<!-- 요소 --> +<!-- 요소는 XML의 기본적 구성품입니다. 요소에는 두 개의 유형이 있습니다. --> +<element1 attribute="value" /> <!-- 빈 요소는 내용을 담지 않습니다. --> +<!-- 그리고 비지 않은 요소가 있습니다. --> +<element2 attribute="value">내용</element2> +<!-- 요소 이름에는 알파벳과 숫자만이 허용됩니다. --> + +<empty /> <!-- 요소는 어떠한 내용도 없이 순수한 마크업인 --> +<!-- 빈 요소 태그로 구성될 수 있습니다. --> + +<notempty> <!-- 혹은 여는 태그와 --> + <!-- 내용, --> +</notempty> <!-- 그리고 닫는 태그로 구성될 수도 잇습니다. --> + +<!-- 요소 이름은 대소문자를 구별합니다. --> +<element /> +<eLEMENT /> +<!-- 둘은 같지 않습니다. --> + +<!-- 속성 --> +<!-- 속성은 요소 안에 존재하는 키와 값의 쌍입니다. --> +<element attribute="value" another="anotherValue" many="space-separated list" /> +<!-- 속성은 원소에서 단 한 번만 나타날 수 있습니다. 속성은 단 하나의 값만 갖습니다. + 이에 대한 흔한 해결책은 공백으로 구분된 리스트를 포함하는 것입니다. --> + +<!-- 중첩 요소 --> +<!-- 한 요소의 내용은 다른 요소들을 포함할 수 있습니다. --> +<parent> + <child>Text</child> + <emptysibling /> +</parent> +<!-- 표준적인 트리 명칭이 사용됩니다. 각각의 요소는 노드라고 부릅니다. + 한 단계 위의 조상은 부모이며, 한 단계 아래의 후손은 자식입니다. + 같은 부모 요소를 가진 요소들은 자매입니다. --> + +<!-- XML은 공백을 보존합니다. --> +<child> + Text +</child> +<child>Text</child> +<!-- 둘은 같지 않습니다. --> +``` + +## XML 문서 + +XML이 유용한 것은 인간도 읽을 수 있다는 것입니다. 다음의 문서는 에릭 레이의 XML 배우기를 포함해 세 권의 책을 파는 서점을 정의한다는 것을 알 수 있습니다. XML 파서 없이도 이렇게 쉽습니다. + +```xml +<?xml version="1.0" encoding="UTF-8"?> +<!-- XML 프롤로그라는 것입니다. 필수는 아니지만, 권장됩니다. --> +<bookstore> + <book category="COOKING"> + <title lang="ko">매일 이탈리아 요리</title> + <author>지아다 데 라우렌티스</author> + <year>2005</year> + <price>30.00</price> + </book> + <book category="CHILDREN"> + <title lang="ko">해리 포터</title> + <author>J K 롤링</author> + <year>2005</year> + <price>29.99</price> + </book> + <book category="WEB"> + <title lang="ko">XML 배우기</title> + <author>에릭 레이</author> + <year>2003</year> + <price>39.95</price> + </book> +</bookstore> +``` + +## 적격성과 유효성 + +XML 문서는 문법적으로 정확할 경우 *적격*합니다. 하지만 문서 유형 정의(DTD)를 이용하여 문서에 제약을 더 추가할 수 있습니다. 한 문서의 요소와 속성이 DTD 안에 정의되어 있고 그 파일에 특정된 문법을 따른다면 *적격*할 뿐만 아니라 그 DTD에 대하여 *유효*하다고 말합니다. + +```xml +<!-- DTD를 외부에 선언: --> +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE bookstore SYSTEM "Bookstore.dtd"> +<!-- bookstore가 루트 요소이며 'Bookstore.dtd'가 DTD 파일의 + 경로임을 선언합니다. --> +<bookstore> + <book category="COOKING"> + <title lang="en">Everyday Italian</title> + <author>Giada De Laurentiis</author> + <year>2005</year> + <price>30.00</price> + </book> +</bookstore> + +<!-- DTD 파일 --> +<!ELEMENT bookstore (book+)> +<!-- bookstore 요소는 하나 이상의 book 요소를 자식으로 가질 수 있습니다. --> +<!ELEMENT book (title, price)> +<!-- 각각의 book은 title과 price를 자식으로 반드시 갖습니다. --> +<!ATTLIST book category CDATA "Literature"> +<!-- book은 category 속성을 가져야 합니다. 그렇지 않다면 그 기본값은 'Literature'입니다. --> +<!ELEMENT title (#PCDATA)> +<!-- title 요소는 반드시 PCDATA만 포함해야 합니다. 즉, + 파서가 읽을 텍스트만을 포함해야 하며 자식을 포함할 수 없습니다. + CDATA와 비교해 보세요. --> +<!ELEMENT price (#PCDATA)> +]> + +<!-- DTD는 XML 파일 안에 선언될 수도 있습니다. --> + +<?xml version="1.0" encoding="UTF-8"?> + +<!DOCTYPE bookstore [ +<!ELEMENT bookstore (book+)> +<!ELEMENT book (title, price)> +<!ATTLIST book category CDATA "Literature"> +<!ELEMENT title (#PCDATA)> +<!ELEMENT price (#PCDATA)> +]> + +<bookstore> + <book category="COOKING"> + <title>Everyday Italian</title> + <price>30.00</price> + </book> +</bookstore> +``` + +## DTD 호환성과 XML 스키마 정의 + +DTD는 오래되었기 때문에 지원이 광범위합니다. 불행히도 네임스페이스와 같은 현대적 XML 기능은 DTD에서 지원하지 않습니다. XML 스키마 정의(XSD)가 XML 문서의 문법을 정의하기 위한 DTD의 대체재입니다. + +## Resources + +* [(영어) Validate your XML](http://www.xmlvalidation.com) + +## Further Reading + +* [(영어) XML 스키마 정의 튜토리얼](http://www.w3schools.com/xml/xml_schema.asp) +* [(영어) DTD 튜토리얼](http://www.w3schools.com/xml/xml_dtd_intro.asp) +* [(영어) XML 튜토리얼](http://www.w3schools.com/xml/default.asp) +* [(영어) XPath 쿼리로 XML 파싱하기](http://www.w3schools.com/xml/xml_xpath.asp) diff --git a/ko-kr/yaml-kr.html.markdown b/ko-kr/yaml-kr.html.markdown new file mode 100644 index 00000000..b6d1de41 --- /dev/null +++ b/ko-kr/yaml-kr.html.markdown @@ -0,0 +1,172 @@ +--- +language: yaml +filename: learnyaml-kr.yaml +contributors: + - ["Adam Brenecki", "https://github.com/adambrenecki"] + - ["Suhas SG", "https://github.com/jargnar"] +translators: + - ["Wooseop Kim", "https://github.com/linterpreteur"] +lang: ko-kr +--- + +YAML은 인간이 직접 쓰고 읽을 수 있도록 설계된 데이터 직렬화 언어입니다. + +YAML은 마치 파이썬처럼 개행과 들여쓰기에 문법적으로 의미를 준 JSON의 엄격한 수퍼셋입니다. +하지만 파이썬과는 달리 YAML은 탭 문자를 전혀 허용하지 않습니다. + +```yaml +# YAML의 주석은 이런 식입니다. + +############ +# 스칼라 형 # +############ + +# 문서 내내 이어질 루트 객체는 맵입니다. +# 맵은 다른 언어의 딕셔너리, 해시, 혹은 객체에 해당됩니다. +키: 값 +다른_키: 다른 값이 여기 옵니다. +숫자_값: 100 +# 숫자 1을 값으로 가지기 위해서는 따옴표에 담아야 합니다. +# 그러지 않는다면 YAML 파서는 그것을 참 값을 가지는 불리언으로 해석할 것입니다. +과학적_표기법: 1e+12 +불리언: true +널_값: null +띄어서 쓴 키: 값 +# 문자열에 따옴표를 칠 필요는 없습니다. 하지만 칠 수도 있습니다. +하지만: "따옴표에 담은 문자열" +"키도 따옴표에 담을 수 있습니다.": "키에 ':'을 넣고 싶다면 유용합니다." + +# 여러 줄의 문자열은 (|을 이용한) '리터럴 블락' 혹은 (>을 이용한) '접은 블락'으로 +# 쓸 수 있습니다. +리터럴_블락: | + 개행을 포함한 이 모든 덩어리가 '리터럴_블락' 키에 대응하는 값이 될 것입니다. + + 리터럴 값은 들여쓰기가 끝날 때까지 계속되며 들여쓰기는 문자열에 포함되지 + 않습니다. + + '들여쓰기를 더 한' 줄은 나머지 들여쓰기를 유지합니다. + 이 줄은 띄어쓰기 4개만큼 들여쓰기 됩니다. +접는_방식: > + 이 텍스트 덩어리가 전부 '접는_방식' 키의 값이 되지만, 이번에는 모든 개행 문자가 + 띄어쓰기 하나로 대체됩니다. + + 위와 같이 텅 빈 줄은 개행 문자로 바뀝니다. + + '더 들여쓴' 줄 역시 개행 문자를 유지합니다. + 이 텍스트는 두 줄에 걸쳐 나타날 것입니다. + +########## +# 모임 형 # +########## + +# 중첩은 들여쓰기로 가능합니다. +중첩된_맵: + 키: 값 + 다른_키: 다른 값 + 다른_중첩된_맵: + 안녕: 안녕 + +# 맵은 반드시 문자열 키를 가지는 것은 아닙니다. +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 형 # +############### + +# Strings and numbers aren't the only scalars that YAML can understand. +# 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 공식 사이트](http://yaml.org/) ++ [(영어) 온라인 YAML 검사기](http://codebeautify.org/yaml-validator) |