Yaml 파일(config.yaml) 설정 파일(omegaconf 사용해서 참조하도록 응용)
Yaml 파일을 처음 접하게 됐을 때가 새록새록 생각남.
.py 파일만 쓰다가 .yaml 파일을 추가하고
python script에 연동해서 쓸 때의 충격이란ㅋㅋㅋ
일단 실습을 위해
anna@Anna-MacBookAirlocal ~ % touch test.py
터미널에서 test.py 라는 스크립트를 만들고
anna@Anna-MacBookAirlocal ~ % touch config.yaml
yaml 파일도 만든다.
이렇게 test.py와 config.yaml 파일이 만들어지는데
vscode에서는 .py와 .yaml을 자체적으로 인식(?)한다.
여담인데 vscode에서 todo.txt 파일 만들면,
이렇게 귀여운 나만의 todo 리스트도 만들어 줌ㅋㅋㅋㅋ
무튼!
내가 처음 yaml 파일을 접했을 때, 베니가 어떻게 설명해줬냐면
아래와 같이 예시 파일을 직접 만들어가면서 얘기해줌ㅜㅜ
그 때 당시 코드를 찾아볼라 했는데 찾지는 못했고
다시 비슷하게나마 만들어봄ㅋㅋㅋㅋ
$ python test.py
🎉 Anna가 Seoul에서 파티를 엽니다!
📩 Jeyoung, 파티에 초대할게!
📩 Mina, 파티에 초대할게!
📩 Kijung, 파티에 초대할게!
기본적으로 yaml 파일은 Key-Value 구조의 딕셔너리(dictionary) 형식으로 되어 있고,
각 Key를 통해 해당 Value에 접근하는 방식으로 데이터를 불러올 수 있다.
이런 구조 덕분에 설정 파일(config)로 자주 사용된다.
위의 config 예시에서 friends의 value 항목은 리스트고- 로 각 항목을 구분한다.
기본적으로 config의 장점은 # 주석을 써서 설명을 추가할 수 있어서
설명을 보고 쉽게 수정해서 사용하기 용이함.
그리고 잘 몰라서 못 쓰는 기능인
DATA_DIR 값을 참조해서 경로를 구성하는 방식
위의 예시처럼 ${DATA_DIR}처럼 변수를 참조해 경로를 구성할 수도 있는데,
이건 OmegaConf 같은 라이브러리를 쓸 때만 동작한다고 한다.
예전에 한 번 이렇게 참조해서 써볼려고 하는데내가 원하는 결과는 data/reference_sequences.tsv인데왜 자꾸 ${DATA_DIR}/reference_sequences.tsv
이거 그대로 나올까? 했는데 omegaconf import를 하지 않아서 그랬던거 였음ㅜㅜ
다음 번에는 import 잘해서 한 번 써보는걸로...ㅋㅋㅋ