본문 바로가기
C.W.K.
Stream
Lesson 08 of 08 · published

맞는 포맷 고르기 — 결정 매트릭스

~12 min · interop, decision-matrix, summary

Level 0평문
0 XP0/64 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete

전체 quest 의 마무리

이제 네 포맷을 다 알아. 마지막으로 남은 기술은 잘 고르는 거야. 아래 표가 어느 포맷이 언제 이기는지를 정리해줘.

청중과 흐름을 보고 골라

  • Markdown — 주로 읽을 사람이 사람이고, 문서가 글맛이 중요할 만큼 길 때.
  • JSON — 주로 읽을 쪽이 소프트웨어고, 오가는 통로가 네트워크나 저장소고, 기계가 왕복시켜야 할 때.
  • YAML — 사람이 직접 파일을 고치고, 구조가 깊이 중첩되고, 들여쓰기 규율을 감당할 수 있을 때.
  • TOML — 사람이 직접 고치고, 구조는 얕거나 중간이고, 짧게 쓰는 것보다 한 줄 한 줄이 분명한 게 더 중요할 때.

피할 안티패턴

  • 사람이 고치는 config 에 JSON — 주석을 못 달고, trailing comma 함정이 있고, 깊어지면 괄호 죽처럼 읽혀.
  • 네트워크로 오가는 데 YAML — 파싱이 느리고, 시스템을 옮겨 다니며 들여쓰기가 흔들리고, 안전하지 않은 파서를 쓰면 보안 구멍이 돼.
  • 깊이 중첩된 데이터에 TOML — table 헤더가 겹겹이 쌓여. 네 단계를 넘으면 YAML 이나 JSON 이 나아.
  • 구조화된 데이터를 Markdown 만으로 — 구조는 front matter 에, 글은 본문에 둬. 표 모양 데이터를 Markdown 본문만으로 담아보려고 하지 마.

얻은 fluency

넷을 다 읽고, 그 사이를 오가고, JSON Schema 를 한 번 써서 어디서든 검증하고, Norway 문제와 trailing comma 함정과 YAML 탭을 한눈에 알아보고, jq 를 꺼낼 때와 yq 를 꺼낼 때와 MDX component 를 꺼낼 때를 구분하게 됐어. 그게 markup literacy 야.

마무리 원칙: 포맷은 도구일 뿐이야. literacy 란 어느 도구가 어느 일에 맞는지 아는 것, 그리고 손에 엉뚱한 도구가 들려 있을 때 옮겨 담을 줄 아는 거야. 지금 손에 넣은 네 포맷 감각은 앞으로 만드는 모든 프로젝트에 계속 쌓여. README 든 API spec 이든 배포 manifest 든 빌드 manifest 든 학습 데이터든 전부.

Code

결정 매트릭스·text
                       │ 주석     │ 네이티브│ 깊은   │ Wire    │ 가장 좋은 주 사용
                       │ 허용?    │ 날짜?   │ 중첩   │ 포맷?   │
──────────────────────┼──────────┼────────┼────────┼─────────┼──────────────────
  Markdown             │   yes    │   no   │   no   │   no    │ 사람 prose +
  (front matter 가진)  │          │        │        │         │ 구조화 메타
  JSON                 │   no     │   no   │  yes   │  YES    │ 기계 wire
                       │          │        │        │         │ 포맷, API
  YAML                 │   yes    │  yes   │  YES   │ 드물게  │ 사람 config,
                       │          │        │        │         │ K8s, CI, Ansible
  TOML                 │   yes    │   YES  │ 중간   │   no    │ 사람 config,
                       │          │        │        │         │ pyproject, Cargo
의심되면 — 세 빠른 필터·text
1. 누가 이걸 가장 자주 편집하나?
   - prose 작성하는 사람              → Markdown
   - 구조 편집하는 사람              → YAML 또는 TOML
   - 소프트웨어                       → JSON (또는 스트림엔 JSONL)

2. 얼마나 중첩?
   - 1-3 단계                         → TOML 가 가장 깨끗하게 읽힘
   - 4+ 단계                          → YAML 가 TOML 이김
   - 다양함                          → 둘 다, + 강타입 config layer

3. 어디로 이동?
   - 디스크만                         → 사람이 선호하는 포맷
   - 네트워크 가로질러                → JSON
   - 둘 다                            → 디스크엔 사람 포맷, 경계에서 변환
마지막 exercise — 본인 일에 적용·text
현재 리포의 세 config / 데이터 파일 골라:
  - 현재 JSON 인 거 하나
  - 현재 YAML 인 거 하나
  - 현재 TOML 인 (또는 가능했을) 거 하나

각각 자문:
  - 청중에게 포맷이 맞나?
  - schema 가 데이터 옆 사나, 코드에 흩어져 있나?
  - 변환이 가독성 개선하거나 도구 깨뜨릴까?

이 리뷰가 파일당 10 분, 분기당 시간 절약.

External links

Exercise

리포 하나를 통째로 훑어봐. config 와 데이터 파일을 포맷별로 다 적어. 하나씩 물어봐. 이걸 읽을 사람한테 이 포맷이 맞나? 바꿔야 할 것들에 표시를 해. 그리고 그중 하나는 진짜로 바꿔. 안 맞는 포맷의 파일 하나를 맞는 포맷으로 옮기고, 고치기가 얼마나 편해졌는지 느껴봐. 이 quest 의 마지막 lesson 은 표를 이해하는 게 아니라 실제로 하나를 바꿔보는 거야.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.