YAML 모듈

YAML 모듈

YAML은 "YAML Ain't Markup Language"라는 뜻의 이름을 가진 모듈이에요. 데이터를 YAML 형식으로 직렬화(serialization)하기 위한 Ruby 인터페이스를 제공하며, 사실상 Ruby의 YAML 엔진인 Psych의 별칭(alias)이에요. 다시 말해 YAML을 쓰면 내부적으로는 Psych가 동작한다고 보면 돼요.

출처: Ruby 4.0 API — YAML

본문

사용법 (Usage)

YAML 사용은 아주 간단해요.

require 'yaml'
# YAML 문자열 파싱
YAML.load("--- foo") #=> "foo"

# YAML 생성
YAML.dump("foo")     # => "--- foo\n...\n"
{ :a => 'b'}.to_yaml  # => "---\n:a: b\n"

구현은 Psych 라이브러리가 담당하므로, 더 자세한 문서는 Psych의 문서(표준 라이브러리의 일부)에서 확인할 수 있어요.

보안 (Security)

신뢰할 수 없는 데이터를 YAML.load로 읽지 마세요. 안전하지 않으며, 악의적인 입력이 애플리케이션 안에서 임의의 코드를 실행하게 만들 수도 있어요. 자세한 내용은 doc/security.rdoc을 참고하세요. 신뢰할 수 없는 데이터는 YAML.safe_loadPsych.safe_load 같은 안전한 로딩 방식을 쓰는 게 좋아요.

역사 (History)

Syck은 Ruby 표준 라이브러리에 있던 원래의 YAML 구현으로, why the lucky stiff가 개발했어요. 원한다면 여전히 Syck으로 YAML을 파싱·생성할 수 있지만, 이제는 syck gem을 설치해야 해요.

오래된 Ruby(1.9 이하)에서는 Syck이 여전히 포함되어 있었지만, Ruby 2.0.0에서 완전히 제거되었어요.

더 알아보기 (More info)

구현에 대한 더 자세한 내용은 Psych를, 스펙 상세는 yaml.org를 참고하면 좋아요. Psych는 Aaron Patterson이 github.com/ruby/psych에서 관리하고, Syck은 github.com/ruby/syck에서 찾을 수 있어요.

상수 (Constants)

LOADER_VERSION

YAML 래퍼의 버전을 나타내는 상수예요.