티스토리 뷰
반응형
입사할 때에는 프론트엔드 개발자(리액트)였지만, 이번 프로젝트에서는 앵귤러 + 자바(스프링 부트)로 된 프로젝트를 개발하게 됐다.
프론트를 시작하면 package.json을 먼저 살펴보듯이 application.yml을 먼저 살펴보았다.
파이썬처럼 Indent로 구분하나 보군.
string은 큰 따옴표("")로 묶지 않아도 되는구나.
대시(-) 있는 것과 없는 것의 차이는 뭘까?
...
문법이 궁금해졌다.
YAML 파일이란?
YAML 파일은 .yml 또는 .yaml 확장자를 사용하며 특정 구문 규칙을 따른다.
[.yaml 과 .yml 차이점]
결론부터 말하자면 yaml과 yml파일 확장자는 모두 해석 및 구문이 동일하다.
이렇게 분리된 이유는, 옛날 Windows에서 Extensions는
파일확장자가 3자로 제한되는 특성이 있었기 때문이다.
- YAML은 JSON의 상위 집합이므로 YAML에서 JSON 파일을 사용할 수 있다고 한다.
- JSON 과 달리 주석을 사용할 수 있다.
- 중괄호, 대괄호, 닫기 태그 또는 따옴표와 같은 통상적인 형식 기호는 없다.
- Python 스타일의 들여쓰기를 사용해 구조를 결정하고 중첩을 표시하므로 더 읽기 쉽다.
yaml 파일 기본 예시
#Comment: This is a supermarket list using YAML
#Note that - character represents the list
---
food:
- vegetables: tomatoes #first list item
- fruits: #second list item
citrics: oranges
tropical: bananas
nuts: peanuts
sweets: raisins
YAML 문법
1. 코멘트 (주석)
- 해시 기호(#)로 식별한다.
- 여러 줄의 코멘트를 지원하지 않으므로 각 줄의 맨 앞에는 해시 기호(#)가 와야 한다.
2. 문서의 시작과 끝 (Optional)
- 3개의 대시(—-)로 문서의 시작을 알리는데 사용한다.
- 3개의 점(…)으로 문서의 끝을 알리는데 사용한다.
3. key: Value 표기
- json 포맷과 같이 기본적으로 key와 value는 콜론(:)을 기준으로 구분한다.
- 주의할 점은 반드시 콜론(:)뒤에 띄어쓰기를 한번 해줘야 한다.
4. 개행
- json 포맷과 다르게 데이터가 있어도 콤마(,)를 쓰지 않고 바로 개행한다.
5. 들여쓰기(indent)
- 파이썬과 같이 들여쓰기로 계층 구조를 표현한다.
- 기본적으로 2칸 혹은 4칸을 지원한다.
6. 따옴표 표현
- 기본적으로는 자동으로 숫자와 문자열을 인식한다.
- 만약 값에 콜론(:)이 들어간 경우에는 무조건 따옴표로 묶어야한다.
- url의 경우에는 따옴표 없이도 특별한 형식으로 올바르게 인식한다.
- 큰 따옴표는 이스케이프 처리해주고, 작은 따옴표는 그대로 문자열 처리한다.
7. Boolean
- yes, no ,true, false (대소문자 가리지 않는다.)
8. 계층
yaml 파일을 json 파일로 어떻게 변환되는지 모양을 함께 살펴보면 이해하기 쉽다.
배열
- yaml
# 1번 방식
animals:
- 강아지
- 고양이
- 기린
# 2번 방식
animals: [강아지, 고양이, 기린]
- json
{
"animals" : [
"강아지",
"고양이",
"기린"
]
}
배열 & 객체
- yaml
students:
- name: Mark
major: Math
age: 20
- name: Julie
major: Arts
age: 23
- name: Tommy
major: Music
age: 25
- json
{
"students": [
{
"name": "Mark",
"major": "Math",
"age": 20
},
{
"name": "Julie",
"major": "Arts",
"age": 23
},
{
"name": "Tommy",
"major": "Music",
"age": 25
}
]
}
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- custom hooks
- withcredentials
- css
- this
- jdk
- 상태관리
- javascript
- button
- 스크롤
- useMemo
- React Hooks
- background-attachment
- Pressable
- React Native
- window.location
- touchableopacity
- CORS
- yml
- 고정
- jenv
- React
- useReducer
- useState
- 리액트
- useRef
- zoom
- bind
- yaml
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함
반응형