인프런 커뮤니티 질문&답변

kium님의 프로필 이미지

작성한 질문수

대세는 쿠버네티스 [초급~중급]

Getting started - Kubernetes (1/2)

yaml파일 이란 무엇인가요

19.11.08 00:15 작성

·

49K

21

안녕하세요 강사님

너무 질문이 많아서 죄송합니다.

yaml파일 이라는 단어를 요 근래 많이 듣고 있는데 정확인 무슨 파일인가요

검색해 보지도 않고 무조건 질문을 드리는것 같아서 죄송하지만 쉽게 알려 주실거라는 기대로 질문을 드립니다.

답변 부탁 드리겠습니다.

답변 11

81

일프로님의 프로필 이미지
일프로
지식공유자

2019. 11. 08. 06:06

안녕하세요^^

쉽게 설명할 수 있도록 노력해볼께요!

Xml과 Json 파일 포맷은 많이 들어보셨는지요?

아마 많이 쓰고 계실 걸로 생각 됩니다. 그럼 이런 포맷들은 왜 사용할까요?

그걸 먼저 설명드리면, 

우리가 타 시스템 간에 데이터를 주고 받을 때 데이터 포맷에 대한 약속이 필요합니다. 

혼자 시스템을 개발하거나 내부 시스템 끼리는 "1-김태민-강사,2-아무개-학생" 이라는 문자열을 만들어서 "-(하이픈)"을 파싱해서 순서대로 "1"은 일련번호, "김태민"은 이름, "강사"는 구분이라는 규칙과, ",(콤마)"는 리스트를 나타내는 구분자라는 규칙을 세울 수 있을 겁니다.

그럼 데이터를 내부 시스템에 전송할때 포맷에 대한 형태는 말로써 혹은 내부 문서로써 정의해 놓으면 되기 때문에 데이터 크기는 엄청 작아 질 수 있겠네요.

근데 문제는 타 시스템들과의 연동을 할때입니다.

내부에서 세운 규칙을 타 시스템들과 데이터를 주고 받을때다 문서로주고 받기도 번거롭고, 데이터 규칙에 대한 문서들이 많아지게 되는 문제가 있습니다.

그래서 Xml이나 Json과 같은 데이터 포맷을 정의하고 그 포맷에는 규칙도 있습니다. 

아주 오래전부터 사용되었던 포맷은 Xml이겠네요

좀 정신없는 그림이지만..

이렇게 태그형식을 통해서 KeyValue를 구분하고, 태그안에 태그를 넣어서 부모와 자식관계의 구조를 나타냅니다.

저도 요즘은 Xml 포맷을 자주 접하지 않아서 보고 있으면 어지럽네요;

근데 위에 ObjectArray 부분은 표시를 해놨지만 Xml포맷상으로는 구분이 안되는 부분도 있습니다.

다음은 똑같은 내용의 Json 포맷입니다.

딱 봐도 간소해 보이네요. 좀 눈에 피로가 풀리는것 같습니다. ㅎ

그리고 Object 일 경우 {} 로 감싸주고있고, Array일 경우 []로 감싸주고 있어서 구분도 되고요.

Key도 아까 Xml처러 두번 들어가지 않아서 좋네요.

근데 {}, [], "" 이런 문자들이 지금은 좀 거추장스러워 보입니다.

(yaml 파일을 알기 전까진 몰랐지만요 ㅎ)

다음은 Yaml 입니다. 야믈이라고 보통 읽고요. yml 이라고도 씁니다.

안구정화가 되네요. 

-(하이픈)을 통해서 Array임을 알수가 있습니다.

yaml을 몰라서 안쓴 사람은 있어도 한번 yaml을 쓰게되면 다른포맷은 불편하게 느껴지게 된다고 말씀드리고 싶네요.

가독성 비교를 한번 해볼까요?

yaml 포맷은 이제 많은 곳에서 사용되고 있습니다. 

저도 개발 시스템 설정파일은 예전엔 conig.properies를 사용했는데 이제는 대부분은 config.yaml로 모두 바꾼 상태고요.

쿠버네티스에서도 API를 전송할땐 json 규격도 사용되지만

일반적으로 yaml을 권장하고 있습니다.

Genie Lee님의 프로필 이미지

2022. 03. 15. 01:52

쉽게 설명하시려고 얼마나 노력하셨을지 막 느껴집니다. ㅜㅜ감사합니다!!

필로님의 프로필 이미지

2024. 01. 16. 18:59

정말 감사합니다. 성지 순례하러 왔습니다.

강사님의 성실함에 어떤 깨달음을 얻었습니다.

덕분에 쿠버네티스 적용을 7일 안에 끝마추었고, 도커 컴포즈와의 호환성도 확인이 되었습니다.
그리고 YAML답변 정말 감동이에요.

6

kium님의 프로필 이미지
kium
질문자

2019. 11. 08. 12:58

정말 감사합니다.

특별한 곳에서 사용하는 파일인줄 알았는데 기존의 json, xml파일과 같이 데이타 전송 파일로 생각하면 

되겠네요

2

만찐두빵님의 프로필 이미지

2021. 03. 17. 13:37

yaml에 안구정화.

강사님 답변에 안구정화 당하고 갑니다

2

HyunJin Choi님의 프로필 이미지

2020. 05. 07. 20:54

정말 정성들인 답변이네요. 많이 배워갑니다.

1

김예지님의 프로필 이미지

2023. 02. 17. 10:37

뇌에 쏙쏙 박히는 답변이었습니다 감사합니다

1

김성웅님의 프로필 이미지

2021. 10. 13. 21:50

정말 쉽게 알려주셨네요. 덕분에 머릿 속에 정립이 단번에 되었습니다. 감사합니다!

1

YoonJu Lee님의 프로필 이미지

2021. 07. 26. 10:05

상세하고 친절한 설명 덕분에 제대로 개념 이해하고 갑니다!! 

복받으십시오~~^!!

1

선준윤님의 프로필 이미지

2020. 12. 24. 16:26

너무 좋은 답변이였네요 ㅜㅜ 너무 감사합니다 ㅎㅎ 

1

군밤고굼님의 프로필 이미지

2020. 12. 15. 11:02

한번에 이해되네요 감사합니다

1

alpa-ca KIM님의 프로필 이미지

2020. 10. 31. 18:34

감사합니다.

1

Myeongkook Park님의 프로필 이미지

2020. 07. 17. 10:08

잘 배워갑니다.

kium님의 프로필 이미지

작성한 질문수

질문하기