최근 바뀜
통계
임의의 문서로
도움말
문서
토론
원본 보기
역사 보기
로그인
YAML 문서 원본 보기
내위키
←
YAML
이동:
둘러보기
,
검색
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
데이터를 인간이 읽기도 쉽고, 컴퓨터가 처리하기도 쉽게 만든 형식. 더 고급지게 표현하면 '인간이 읽을 수 있는 데이터 직렬화 언어'. YAML은 재귀형 약어로, YAML ain't Markup Language이다. 즉 'YAML은 마크업 언어가 아니다'라는 뜻. <del>요즘 재귀형 약어가 너무 남발되고 있다.</del> XML 같은 덩치 크고 복잡한 마크업 언어가 아니란 뜻. 2001년에 클라크 에반스가 제안한 형식이다. 인간이 읽을 수 있는 데이터 직렬화 언어로는 [[XML]]이라는 표준이 있지만 덩치도 크고 쓸데 없이 길어서 가독성이 떨어지다 보니 [[JSON]] 같이 좀 더 간결한 대안들이 많이 쓰이고 있는데, YAML 역시 간결함 덕택에 여러 방면에 쓰이고 있다. 파일 확장자 역시 .yaml이다. ==목표== # YAML은 사람이 쉽게 읽을 수 있다. # YAML은 프로그래밍 언어들 사이에서 호환된다. # YAML은 애자일 언어들의 고유 데이터 구조와 잘 맞는다. # YAML은 제너릭 도구를 지원하기 위한 일관된 모델을 가지고 있다. # YAML은 한 단계 만에 처리될 수 있도록 지원한다. # YAML은 표현력과 확장성이 있다. # YAML은 구현하고 사용하기 쉽다. ==문법== * [[유니코드]] 인코딩을 사용한다. UTF-8, UTF-16을 사용한다. * 들여쓰기로 단계를 구분하지만 탭은 인정하지 않는다.<ref>예전에는 프로그램 코드에 탭을 많이 썼지만 환경에 따라 탭의 폭이 제각각이라 요즘은 권장하지 않는다. 요즈음 코드 편집기는 대부분 탭 키를 치면 미리 지정된 수의 공백 문자로 자동으로 바꾸어준다.</ref> * # 기호가 앞에 오면 주석을 뜻한다. * 리스트의 원소는 앞에 가로줄(-)을 붙인다. * 가로줄 세 개를 잇달아 쓰면 (---) 콘텐츠의 내용 분리를 뜻한다. * 리스트를 시작하려면 먼저 리스트의 이름에 콜론(:)을 불이고 빈칸<ref>줄바꿈도 당연히 빈칸으로 인정한다.</ref>을 하나 준다. URL 안에 들어가는 콜론과 구분하기 위해서 (https://newiki.net) 반드시 콜론 다음에 빈칸이 하나 있어어 한다. [[JSON]]에 비하면 널리 쓰이고 있지는 않지만 [[JSON]]보다 더 간결한 형식이라서 주로 설정 파일 형식으로 많이 쓰인다. [[파이썬|들여쓰기를 강제한다든가]] 하는 특징으로 사람이 읽기도 조금 낫다. ==다른 형식과 비교== 데이터의 구조와 의미를 표현하기 위한 마크업 언어로 널리 쓰이는 것으로는 [[XML]], [[JSON]]이 있다. 이중 [[XML]]은 가장 광범위한 표현이 가능하며, DTD를 통한 유효성 검증도 할 수 있다. 대신 너무 광범위한 표현력을 추구하다 보니 용량이 커지고 사람이 알아보기가 어립다. [[JSON]]은 [[XML]]보다는 훨씬 간결하여 네트워크에서 데이터를 주고받을 때 [[XML]]에 비해 용량이 줄어들며, 사람이 알아보기도 좀 더 쉽다. [[REST]]를 비롯한 많은 웹 [[API]]들은 [[JSON]] 형식을 사용하고 있으며, [[AJAX]] 역시 [[JSON]]을 사용한다. YAML 역시 [[XML]]에 비해서 간결하기 때문에 용량이 적으며, 사람이 보고 구조나 의미를 파악하기에도 좋다. [[XML]]은 태그, [[JSON]]은 괄호와 따옴표를 사용해서 데이터 블록을 표현하지만 YAML은 일반 문서에서 사용하는 방식인, 들여쓰기와 블릿 기호를 사용하기 때문이다. 대신 줄이 바뀌면 블록이 바뀌기 때문에 한 줄로 데이터를 표현할 수 없다. 기계끼리 데이터를 주고받을 때에는 [[JSON]]을<ref>원래 [[JSON]]이 [[자바스크립트]]의 객체를 직렬화하기 위한 언어로 시작했고 웹 환경에서는 [[자바스크립트]]가 가장 널리 쓰이고 있으므로 자연스러운 일이기도 하다.</ref>, 사람이 만져야 하는 설정 파일에는 YAML을 많이 쓰는 추세다. <del>[[XML]]은 점점 쩌리 신세로 전락 중이다.</del> 같은 데이터를 각각 [[XML]], [[JSON]], YAML로 표현해 보면 다음과 같다. 단, [[XML]]은 아래 예시 말고도 표현할 수 있는 방법이 아주 다양하다. <syntaxhighlight lang="xml"> <?xml version="1.0" encoding="UTF-8" ?> <person> <name>John Doe</name> <age>42</age> <height>180</height> <job>officeworker</job> <hobby>hiking</hobby> <hobby>swimming</hobby> <family> <father>Richard Doe</father> <mother>Jane Doe</mother> <wife>Clare Doe</wife> <children>Mat Doe</children> <children>Linda Doe</children> </family> </person> </syntaxhighlight> <syntaxhighlight lang="json"> { "name": "John Doe", "age": 42, "height": 180, "job": "officeworker", "hobby": [ "hiking", "swimming" ], "family": { "father": "Richard Doe", "mother": "Jane Doe", "wife": "Clare Doe", "children": [ "Mat Doe", "Linda Doe", ] } } </syntaxhighlight> <syntaxhighlight lang="yaml"> name: John Doe age: 42 height: 180 job: officeworker hobby: - hiking - swimming family: father: Richard Doe mother: Jane Doe wife: Clare Doe children: - Mat Doe - Linda Doe </syntaxhighlight> ==바깥 고리== * [https://yaml.org/ YAML 공식 웹사이트]. 들어가 보면 알겠지만 이 페이지조차도 YAML 형식으로 만들어 놓았다. {{각주}}
이 문서에서 사용한 틀:
틀:각주
(
원본 보기
)
YAML
문서로 돌아갑니다.
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
특수 문서 목록
문서 정보