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

배열 — 동종 관행, 1.0 에서 유연

~10 min · toml, arrays

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

배열이 JSON 같이 보이지만, TOML 편의로

TOML 배열은 [a, b, c] 로 JSON 과 문법이 같아. 대신 trailing comma 를 허용해. JSON 이 못 하는 걸 여기선 되게 해준 거지. 읽기 좋으라고 여러 줄로 늘어놓을 수도 있고.

관행상 한 타입, 1.0 부터는 섞어도 돼

TOML 0.5 까지는 배열 안의 요소가 전부 같은 타입이어야 했어. TOML 1.0 이 그 제약을 풀어서 이제는 섞어 써도 합법이야. 그래도 파서 대부분은 여전히 한 타입으로 맞추라고 권하거나 문서에 그렇게 적어둬. 받아 쓰는 코드가 훨씬 단순해지거든.

멀티라인 배열

[ ] 안에서 줄을 바꿔도 되고, 배열 안에 주석을 달아도 돼. 사람이 직접 고치는 config 에서 TOML 이 JSON 을 확실히 앞서는 지점이 바로 여기야.

원칙: 요소가 셋을 넘거나 요소 하나하나가 만만치 않을 때 (긴 경로, 구조가 있는 값, 주석이 붙는 값) 는 여러 줄로 풀어 써. 세로로 늘어놓으면 diff 가 깔끔해지고 리뷰도 쉬워져.

Code

Inline + 멀티라인 배열·toml
# Inline (짧음, 단순)
colors = ["red", "green", "blue"]

# 멀티라인 (길고 diff 쉬움)
allowed_origins = [
  "https://creativeworksofknowledge.com",
  "https://www.creativeworksofknowledge.com",
  "http://localhost:3000",     # dev 만
  "http://localhost:5173",     # vite dev server
]
Trailing comma — TOML 허용·toml
fruits = [
  "apple",
  "banana",
  "cherry",   # ← trailing comma 괜찮음
]

# JSON 이면 파스 에러.
# YAML flow [a, b, c,] 도 일부 파서에서 파스 에러.
# TOML spec 명시: trailing comma OK.
혼합 타입 (TOML 1.0+)·toml
# TOML 1.0 이 혼합 타입 허용 — variant 리스트에 유용
mixed = [1, "two", 3.0, true]

# 관행: 혼합이 진짜 필요한 거 아니면 동종 유지
# Array of table (다음 lesson) 가 구조화된 요소 케이스 더 잘 처리

External links

Exercise

관리 중인 YAML 이나 JSON config 에서 긴 배열을 하나 찾아. TOML 여러 줄 형태로 옮기되, 한 줄에 항목 하나씩 두고 평범하지 않은 항목에는 짧은 주석을 달아. 그 diff 를 봐. 나중에 PR 에서 이걸 읽는 사람이 각 항목이 왜 거기 있는지를 바로 알게 돼. JSON 을 쓸 때 우리가 내고 있던 가독성 세금이 그만큼이었던 거야.

Progress

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

댓글 0

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

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