작성
·
49K
21
안녕하세요 강사님
너무 질문이 많아서 죄송합니다.
yaml파일 이라는 단어를 요 근래 많이 듣고 있는데 정확인 무슨 파일인가요
검색해 보지도 않고 무조건 질문을 드리는것 같아서 죄송하지만 쉽게 알려 주실거라는 기대로 질문을 드립니다.
답변 부탁 드리겠습니다.
답변 11
81
안녕하세요^^
쉽게 설명할 수 있도록 노력해볼께요!
Xml과 Json 파일 포맷은 많이 들어보셨는지요?
아마 많이 쓰고 계실 걸로 생각 됩니다. 그럼 이런 포맷들은 왜 사용할까요?
그걸 먼저 설명드리면,
우리가 타 시스템 간에 데이터를 주고 받을 때 데이터 포맷에 대한 약속이 필요합니다.
혼자 시스템을 개발하거나 내부 시스템 끼리는 "1-김태민-강사,2-아무개-학생" 이라는 문자열을 만들어서 "-(하이픈)"을 파싱해서 순서대로 "1"은 일련번호, "김태민"은 이름, "강사"는 구분이라는 규칙과, ",(콤마)"는 리스트를 나타내는 구분자라는 규칙을 세울 수 있을 겁니다.
그럼 데이터를 내부 시스템에 전송할때 포맷에 대한 형태는 말로써 혹은 내부 문서로써 정의해 놓으면 되기 때문에 데이터 크기는 엄청 작아 질 수 있겠네요.
근데 문제는 타 시스템들과의 연동을 할때입니다.
내부에서 세운 규칙을 타 시스템들과 데이터를 주고 받을때다 문서로주고 받기도 번거롭고, 데이터 규칙에 대한 문서들이 많아지게 되는 문제가 있습니다.
그래서 Xml이나 Json과 같은 데이터 포맷을 정의하고 그 포맷에는 규칙도 있습니다.
아주 오래전부터 사용되었던 포맷은 Xml이겠네요
좀 정신없는 그림이지만..
이렇게 태그형식을 통해서 Key와 Value를 구분하고, 태그안에 태그를 넣어서 부모와 자식관계의 구조를 나타냅니다.
저도 요즘은 Xml 포맷을 자주 접하지 않아서 보고 있으면 어지럽네요;
근데 위에 Object와 Array 부분은 표시를 해놨지만 Xml포맷상으로는 구분이 안되는 부분도 있습니다.
다음은 똑같은 내용의 Json 포맷입니다.
딱 봐도 간소해 보이네요. 좀 눈에 피로가 풀리는것 같습니다. ㅎ
그리고 Object 일 경우 {} 로 감싸주고있고, Array일 경우 []로 감싸주고 있어서 구분도 되고요.
Key도 아까 Xml처러 두번 들어가지 않아서 좋네요.
근데 {}, [], "" 이런 문자들이 지금은 좀 거추장스러워 보입니다.
(yaml 파일을 알기 전까진 몰랐지만요 ㅎ)
다음은 Yaml 입니다. 야믈이라고 보통 읽고요. yml 이라고도 씁니다.
안구정화가 되네요.
-(하이픈)을 통해서 Array임을 알수가 있습니다.
yaml을 몰라서 안쓴 사람은 있어도 한번 yaml을 쓰게되면 다른포맷은 불편하게 느껴지게 된다고 말씀드리고 싶네요.
가독성 비교를 한번 해볼까요?
yaml 포맷은 이제 많은 곳에서 사용되고 있습니다.
저도 개발 시스템 설정파일은 예전엔 conig.properies를 사용했는데 이제는 대부분은 config.yaml로 모두 바꾼 상태고요.
쿠버네티스에서도 API를 전송할땐 json 규격도 사용되지만
일반적으로 yaml을 권장하고 있습니다.
정말 감사합니다. 성지 순례하러 왔습니다.
강사님의 성실함에 어떤 깨달음을 얻었습니다.
덕분에 쿠버네티스 적용을 7일 안에 끝마추었고, 도커 컴포즈와의 호환성도 확인이 되었습니다.
그리고 YAML답변 정말 감동이에요.
6
2
2
1
1
1
1
1
1
1
쉽게 설명하시려고 얼마나 노력하셨을지 막 느껴집니다. ㅜㅜ감사합니다!!