YAML 엔 있는 주석, JSON 엔 없음
YAML 은 # 로 줄 주석을 쓸 수 있어. # 부터 줄 끝까지는 그냥 무시돼. 다만 주석은 데이터 모델에 안 들어가. 그래서 파서 대부분을 거쳐 한 바퀴 돌고 나면 사라져. Python 에서 주석을 꼭 살려야 하면 ruamel.yaml 을 써.
Multi-document 파일
한 파일에 YAML 문서를 여러 개 담을 수 있어. 구분은 한 줄에 혼자 놓은 --- 가 해. 문서 끝을 알리는 ... 도 유효한데 실제로는 잘 안 써. Kubernetes 가 Deployment 와 Service, ConfigMap 을 한 번의 kubectl apply -f 로 보내는 방식이 바로 이 multi-document 파일이야.
Multi-document YAML 읽기
파서 대부분이 스트림이나 반복자 형태의 API 를 따로 열어둬. PyYAML 은 yaml.safe_load_all(text), js-yaml 은 yaml.loadAll(text), yq 는 yq 'select(.kind == "Service")' multi.yaml 이렇게 쓰면 돼.
원칙: 데이터 모양만으로는 전해지지 않는 이유를 주석에 담아. 관련 incident 링크, 이 기본값을 고른 근거, 이 값이 언제쯤 바뀔지 같은 것들. 키가 이미 하고 있는 말을 되풀이하지는 마.
port: 8000 옆의 # 서버 포트 는 소음이고, # auth 게이트웨이 때문에 1024 밑으로 유지, RFC-12 참고 는 신호야.