상세 컨텐츠

본문 제목

YAML(YAML Ain't Markup Language)

프로그램 언어/Java

by husks 2023. 7. 10. 14:16

본문

반응형

YAML(YAML Ain't Markup Language)은 사람이 쉽게 읽고 쓸 수 있는 데이터 직렬화 형식입니다. 주로 설정 파일이나 데이터 구조를 표현하는 데 사용됩니다. 아래는 YAML의 기본적인 사용법에 대한 설명입니다:

기본 문법:

들여쓰기: 들여쓰기는 공백 문자로 이루어지며, 하위 항목을 나타냅니다. 일반적으로 공백 2개 또는 4개를 사용합니다.
키-값 쌍: 콜론(:)으로 키와 값을 구분합니다.
리스트: 대시(-)를 사용하여 목록을 나타냅니다.

 


주석: '#' 기호를 사용하여 주석을 작성할 수 있습니다. '#' 기호 뒤의 내용은 무시됩니다.

 


문자열:

따옴표: 작은 따옴표(')나 큰 따옴표(")를 사용하여 문자열을 감싸고 표현할 수 있습니다.
여러 줄 문자열: '|'를 사용하여 여러 줄의 문자열을 표현할 수 있습니다. 들여쓰기를 유지하면서 여러 줄의 텍스트를 작성할 수 있습니다.
이스케이프: 역슬래시()를 사용하여 특수 문자를 이스케이프할 수 있습니다.

 

 

데이터 유형:

숫자: 정수나 부동 소수점 숫자를 그대로 작성할 수 있습니다.
불리언: true나 false로 불리언 값을 표현할 수 있습니다.
널: null로 널 값을 표현할 수 있습니다.

 

 

객체와 중첩:

중첩된 객체: 들여쓰기를 사용하여 중첩된 객체를 표현할 수 있습니다.
키의 중복: 동일한 키를 사용하여 여러 값을 가진 객체를 표현할 수 있습니다. 나중에 선언된 값이 이전 값을 덮어씁니다.

 

 

리스트:

배열: 대시(-)를 사용하여 리스트를 표현할 수 있습니다. 각 항목은 새로운 줄에서 시작하고, 들여쓰기로 계층 구조를 표현합니다.

 

 

참조:

앵커(&)와 별칭(*) 기호를 사용하여 데이터를 참조할 수 있습니다. 앵커로 데이터를 정의하고, 별칭을 사용하여 다른 위치에서 해당 데이터를 참조할 수 있습니다.
YAML은 이외에도 더 많은 기능과 사용법을 제공합니다. 각 프로그래밍 언어에서 YAML을 해석하고 처리하는 방법은 다를 수 있으므로 해당 언어의 YAML 파서 또는 라이브러리의 문서를 참조해야 합니다.

 

# 주석 예제
person:
  name: John Doe
  age: 30
  isEmployed: true

address:
  street: 123 Main St
  city: Anytown
  country: USA

favoriteFruits:
  - Apple
  - Banana
  - Orange

nestedObject:
  subObject1:
    key1: value1
    key2: value2
  subObject2:
    key3: value3
    key4: value4

위 예제에서는 다음과 같은 YAML 문법과 구조를 보여줍니다:

  • 주석을 사용하여 설명을 추가할 수 있습니다.
  • 키와 값은 콜론(:)으로 구분하며, 들여쓰기로 계층 구조를 표현합니다.
  • 객체는 키-값 쌍으로 표현되며, 중첩하여 표현할 수 있습니다.
  • 리스트는 대시(-)로 표현되며, 여러 값을 가질 수 있습니다.
  • 문자열은 따옴표(' 또는 ")로 감싸서 표현합니다.
  • 숫자는 그대로 작성할 수 있고, 불리언은 true 또는 false로 표현합니다.
  • 위의 예제는 사람(person)과 주소(address)에 대한 정보를 포함하고 있으며, 좋아하는 과일(favoriteFruits)과 중첩된 객체(nestedObject)도 포함하고 있습니다.

 

Java에서 YAML을 파싱하고 처리하기 위해 사용할 수 있는 몇 가지 인기 있는 라이브러리가 있습니다. 다음은 그 중 몇 가지의 라이브러리와 간략한 요약입니다:

SnakeYAML:

SnakeYAML은 Java에서 YAML을 처리하기 위한 강력하고 유연한 라이브러리입니다.
YAML 문서를 Java 객체로 변환하거나 Java 객체를 YAML 문서로 직렬화할 수 있습니다.
객체 그래프를 유지하며 YAML을 처리할 수 있는 기능을 제공합니다.

 

 

Jackson YAML:

Jackson YAML은 Jackson 라이브러리의 일부로 제공되며, YAML을 파싱하고 생성하기 위한 기능을 제공합니다.
Jackson의 ObjectMapper를 사용하여 YAML을 Java 객체로 변환하거나 Java 객체를 YAML로 직렬화할 수 있습니다.
JSON과 YAML 간의 변환도 지원합니다.

 

 

SnakeYAML vs Jackson YAML:

SnakeYAML과 Jackson YAML은 둘 다 강력하고 널리 사용되는 라이브러리입니다.
SnakeYAML은 YAML 문서의 파싱과 생성에 특화되어 있으며, YAML의 일부 고급 기능을 지원합니다.
Jackson YAML은 Jackson 라이브러리의 확장 기능으로 제공되며, JSON과의 상호 운용성을 강조하면서 YAML을 처리합니다.

 

 

사용법:

각 라이브러리는 고유한 사용법과 API를 가지고 있으며, 자세한 내용은 각 라이브러리의 공식 문서와 예제를 참조해야 합니다.
라이브러리를 프로젝트에 추가하고, 해당 라이브러리의 클래스와 메서드를 사용하여 YAML을 처리할 수 있습니다.
위의 라이브러리들은 Java에서 YAML을 처리하는 데 널리 사용되는 몇 가지 옵션입니다. 각 라이브러리는 고유한 특징과 기능을 제공하므로 프로젝트의 요구 사항에 맞게 선택할 수 있습니다. 자세한 사용법과 예제는 각 라이브러리의 공식 문서를 참조하시기 바랍니다.

반응형

'프로그램 언어 > Java' 카테고리의 다른 글

Java 자릿수 랜덤(난수) 생성  (0) 2023.09.05
CMYK to RGB in JAVA  (1) 2023.06.14
Java 생성자 메소드  (0) 2023.03.09
Java IllegalArgumentException  (0) 2023.03.09
Java ArrayList <class>의 날짜 값으로 정렬  (0) 2023.03.02

관련글 더보기

댓글 영역