Files
Pier_v1/RAG/design system_v0.1.1/design.modules.md
T
ahnyongjooandClaude Sonnet 5.5 964a841de1 chore(rebar): Pier_T_rebar 작업 폴더 초기 구성 및 외부 의존 파일 통합
- Code\rebar_pipeline, review_pipeline, pier-program을 정션에서 실제 폴더로 전환
- Code\rhino_mcp 및 CLAUDE_rhino배경.md 추가, .mcp.json은 PYTHONPATH로 새 위치 사용
- pier-program 내부 .git 제거(이력은 backup\pier-program_20261028.bundle에 보관)
- worktree 가이드 반영(CLAUDE.local.md, HANDOFF.md)
- D:\Rhino-MCP 경로 참조를 새 위치로 치환

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-28 11:20:18 +09:00

555 lines
30 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Prism Design System — Modules (Layer 3)
| 버전 | 수정일 | 수정자 | 주요 변경 내용 | 비고 |
| :--- | :--- | :--- | :--- | :--- |
| v0.1.0 | 2026-07-28 | 조선두 | 신규 작성 — 모듈 스키마, 파생 절차, 등록부, 거버넌스, 인용 금지 목록, 한계 선언, 검증 | 최초 버전 |
| v0.1.1 | 2026-07-28 | 조선두 | §4.2 M1 선별 개수 주석 정정 (16종 → 19종), §4.3 미작성 파일 참조 명시 | Step 3 전수 검증 중 발견 |
| v0.1.2 | 2026-07-29 | HMCM | §4.1 등록부 갱신 — M2·M3·M4 `active` 전환 + **M5 A3 설명자료** 신설, SUB 폴더 실행 명세 4종 연결 | 진단 C1 해소 |
| v0.1.3 | 2026-07-29 | HMCM | **M1 편람 실체화**(`A3/module.a3-handbook.md`, draft→active) + **M6 A4 문서** 신설(`A4/module.a4-document.md`), 미등록 후보 판정 주석 추가 | 추가 모듈 파생 Task |
| v0.1.4 | 2026-09-29 | HMCM | **M7 32:9 초와이드 덱** 신설·등록(`ultrawide/module.ultrawide-deck.md`, L2d `design.medium.ultrawide.md`) — §2.1 `columns` 허용값에 24 추가(presentation.ultrawide 한정), §4.1 M7 행 추가, §4.3 X1 관계 주석 추가 | 사용자 확정 — 등록 필수분만, 선례대로 PATCH |
| 메타 | 값 |
| :--- | :--- |
| 파일 | `design.modules.md` |
| 계층 | **Layer 3 — Case Module** |
| 역할 | 개별 케이스 모듈의 **파생 절차·등록부·거버넌스** |
| 상위 | Layer 0~2 전체 |
| 로드 정책 | **온디맨드** (모듈 신규 작성·개정 시) |
---
## 목차
- [1. 모듈이란](#1-모듈이란)
- [2. 모듈 스키마](#2-모듈-스키마)
- [3. 파생 절차](#3-파생-절차)
- [4. 모듈 등록부](#4-모듈-등록부)
- [5. 거버넌스](#5-거버넌스)
- [6. 인용 금지 목록](#6-인용-금지-목록)
- [7. 한계 선언](#7-한계-선언)
- [8. 검증 체크리스트](#8-검증-체크리스트)
---
# 1. 모듈이란
## 1.1 정의
**모듈은 Layer 0~2를 특정 용도에 맞게 고정한 실행 명세다.** 새로운 규칙을 만드는 곳이 아니라, **이미 있는 규칙 중 무엇을 쓸지 고르고 남은 자유도를 없애는 곳**이다.
| 계층이 정하는 것 | 모듈이 정하는 것 |
| :--- | :--- |
| 어떤 색이 있는가 (L0) | 이 문서에서 어떤 페어를 쓰는가 |
| 비율·단계 (L1) | — (모듈은 Layer 1을 건드리지 않는다) |
| 매체별 절대값 (L2) | 어떤 판형·브레이크포인트를 쓰는가 |
| 컴포넌트 카탈로그 | **어떤 컴포넌트를 선별**했는가 |
| — | **페이지·화면 패턴** |
| — | **분량 예산** |
| — | **콘텐츠 구조** |
## 1.2 모듈이 할 수 없는 것
| ID | 규칙 |
| :--- | :--- |
| **MD-1** | 모듈은 **Layer 1을 수정할 수 없다.** 비율·스케일 인덱스·행간을 바꾸지 않는다 |
| **MD-2** | 모듈은 **새 토큰을 만들 수 없다.** 필요하면 Layer 1·2에 등재 요청한다 |
| **MD-3** | 모듈은 **카탈로그에 없는 컴포넌트를 쓸 수 없다.** 필요하면 `design.components.md §6` 절차를 따른다 |
| **MD-4** | 모듈은 **규칙을 완화할 수 없다.** 강화만 가능하다 |
| **MD-5** | 모듈 고유 결정은 **전부 모듈 명세에 문서화**한다. 암묵적 관행을 두지 않는다 |
> **MD-4가 핵심이다.** "이 문서는 특수하니까 대비 기준을 낮추자"는 즉시 시스템을 무너뜨린다. 특수 사정이 있으면 규칙 자체를 고치거나 예외를 상위 계층에 등재한다.
## 1.3 참조 사양 면책
| ID | 규칙 | 근거 |
| :--- | :--- | :--- |
| **DC-1** | **본 시스템은 참조 사양이지 라이브러리가 아니다.** 시스템이 개정되어도 기 제작 산출물은 자동 갱신되지 않는다 | [출처: design.benchmark, T25 — SLDS "If SLDS updates the blueprint, your component code isn't updated automatically"] |
| **DC-2** | 인쇄 편람 등 배포 문서는 서문에 **"개정 시 기 배포분에 소급 적용되지 않는다"** 를 명시한다 | T25 |
| **DC-3** | **본 시스템 준수가 산출물의 적합성·유효성을 보증하지 않는다** | [출처: T49 — USWDS "Building with accessible components does not guarantee an accessible service" / "We test our work. You need to test yours."] |
---
# 2. 모듈 스키마
## 2.1 필수 필드
```yaml
module:
id: <slug> # 기계 식별자
name: <string> # 표기명
version: <semver> # 모듈 자체 버전
status: draft|active|deprecated
# --- 상위 계층 바인딩 ---
brand: <brand.id> # Layer 0 인스턴스
medium: print|presentation|screen
medium_variant: <string|null> # 예: screen.web / screen.mobile
dual_medium: <bool> # 겸용 선언 (print PM-3)
# --- 매체 파라미터 ---
format: <string> # 예: A3-landscape / 1920x1080 / responsive
columns: <int> # 12·8·6·4·3 중 (presentation.ultrawide 한정 24 — M7)
type_set: compact|expressive
# --- 선별 ---
components: [<component.id>, …]
component_count: <int>
variant_count: <int> # VR-3 정량 명시
patterns: [<pattern.id>, …]
# --- 예산 ---
budget:
<slot>: { recommended: <int>, max: <int> }
# --- 강화 규칙 (완화 불가, MD-4) ---
overrides_strict: [<rule.id>: <value>, …]
# --- 참조 ---
depends_on:
foundations: <version>
medium: <version>
components: <version>
```
## 2.2 필드 규칙
| ID | 규칙 |
| :--- | :--- |
| **MS-1** | `depends_on`에 **상위 파일의 버전을 기록**한다. 상위가 MAJOR 증가하면 모듈 재검증이 필요하다 |
| **MS-2** | `component_count`·`variant_count`를 **정량 명시**한다 (`design.components.md` VR-3) |
| **MS-3** | `overrides_strict`는 **강화만** 담는다. 완화 항목이 있으면 스키마 위반이다 |
| **MS-4** | `dual_medium: true`면 **두 매체 프로파일의 엄격한 쪽**을 자동 적용한다 |
| **MS-5** | `budget`은 **모든 텍스트 슬롯**을 덮어야 한다. 누락 슬롯은 분량 통제가 안 된다 |
## 2.3 패턴 정의
패턴은 **존 배치의 재사용 단위**다. 모듈 안에서 정의한다.
```yaml
pattern:
id: <slug>
split: <Layer 1 §5.3 허용 분할 중 하나>
zones:
- { id: <slug>, cols: <int>, components: [<id>, …], role: <string> }
conclusion_zone: <zone.id> # PD-1 단일 결론 존
applies_to: [<콘텐츠 유형>, …]
```
| ID | 규칙 |
| :--- | :--- |
| **PT-1** | `split`은 **Layer 1 §5.3 허용 목록**에서만 고른다 |
| **PT-2** | `conclusion_zone`은 **정확히 1개**다 (Layer 1 PD-1) |
| **PT-3** | 존 폭 합계 + 거터가 **콘텐츠 폭과 정합**해야 한다 (Layer 1 GC-3) |
| **PT-4** | 패턴은 **콘텐츠 유형에 매핑**되어야 한다. "예쁜 배치"는 패턴이 아니다 |
---
# 3. 파생 절차
## 3.1 8단계
| 단계 | 작업 | 산출 | 참조 |
| :-: | :--- | :--- | :--- |
| **1** | **브랜드 선택** — 기존 인스턴스 또는 신규 등록 | `brand` | `design.brand.md §9` |
| **2** | **매체 선택** — 겸용 여부 선언 | `medium`·`dual_medium` | `design.medium.*.md §1` |
| **3** | **케이스 제약 수집** — 판형·배포 방식·독자·수명·개정 주기 | 제약 목록 | — |
| **4** | **매체 파라미터 확정** — 판형·컬럼·타입 세트 | `format`·`columns`·`type_set` | Layer 2 |
| **5** | **컴포넌트 선별** — 카탈로그에서 고른다. 새로 만들지 않는다 | `components`·개수 | `design.components.md §4` |
| **6** | **패턴 정의** — 콘텐츠 유형 → 존 배치 매핑 | `patterns` | §2.3 |
| **7** | **분량 예산 산정** — 전 텍스트 슬롯 | `budget` | §3.3 |
| **8** | **검증** — §8 체크리스트 전수 | 검증 리포트 | §8 |
## 3.2 3단계 — 케이스 제약 수집 항목
| 항목 | 질문 | 영향 |
| :--- | :--- | :--- |
| 판형·해상도 | 무엇으로 출력·표시되는가 | Layer 2 선택 |
| 배포 방식 | 인쇄 배포 / 파일 / 웹 게시 | 겸용 여부 |
| 독자 | 실무자 / 일반 / 혼합 | 최소 크기·용어 수준 |
| 열람 방식 | 통독 / 참조 / 발표 | 단수·구조·색인 필요성 |
| 수명 | 1회성 / 상시 개정 | 페이지 번호 체계·버전 정책 |
| 개정 주기 | 부분 개정 여부 | 장별 상대 번호 채택 여부 |
| 접근성 요구 | 법정 요건 유무 | AA / AAA 목표 |
| 흑백 출력 | 발생하는가 | 색 부호화 강화 |
## 3.3 7단계 — 분량 예산 산정
**예산은 조판 결과에서 역산한다.** 감으로 정하지 않는다.
```
슬롯 예산(글자 수) = (슬롯 폭 ÷ 글자폭) × 허용 행수
글자폭 ≈ body 크기 × 1.0 (한글) 또는 × 0.5 (라틴)
```
| ID | 규칙 |
| :--- | :--- |
| **BG-1** | 예산은 **권장값 + 절대 최대값** 2개를 갖는다 |
| **BG-2** | 절대 최대값은 **오버플로가 발생하는 값보다 작아야** 한다. 딱 맞는 값을 최대값으로 두지 않는다 |
| **BG-3** | 예산 초과 시 **글자 크기를 줄이지 않는다.** 내용을 줄이거나 면·화면을 나눈다 |
| **BG-4** | **텍스트 잘림(truncation)을 설계에 포함하지 않는다** (Layer 1 TH-4) |
| **BG-5** | 예산은 **한글 기준**으로 산정하고, 라틴 혼용 시 여유가 생기는 방향이어야 한다 |
## 3.4 컴포넌트 선별 원칙
| ID | 규칙 |
| :--- | :--- |
| **SL-1** | **필요한 것만 고른다.** 카탈로그 전체를 가져오지 않는다 |
| **SL-2** | 선별한 컴포넌트는 **전부 실제로 사용**되어야 한다. 미사용 컴포넌트는 목록에서 뺀다 |
| **SL-3** | 같은 역할의 컴포넌트를 **2개 이상 선별하지 않는다** (예: `card`와 `stagecard`를 같은 용도로) |
| **SL-4** | 선별 결과를 **정량 명시**한다 (MS-2) |
---
# 4. 모듈 등록부
## 4.1 현행 등록
| # | 모듈 | 상태 | 브랜드 | 매체 | 판형 | 명세 위치 |
| :-: | :--- | :--- | :--- | :--- | :--- | :--- |
| M1 | **A3 시공상세도 편람** | **`active`** | saman | print | A3 가로 | `A3/module.a3-handbook.md` |
| M2 | **16:9 PPT 덱** | **`active`** | saman | presentation | 1920×1080 | `ppt/module.ppt-deck.md` |
| M3 | **웹앱** | **`active`** | saman | screen.web | responsive | `webapp/module.webapp.md` |
| M4 | **모바일·태블릿 앱** | **`active`** | saman | screen.mobile | responsive | `mobile/module.mobile-tablet.md` |
| M5 | **A3 설명자료** | **`active`** | saman | print | A3 가로 | `A3/module.a3-explainer.md` |
| M6 | **A4 문서 (보고서·지침서)** | **`active`** | saman | print | A4 세로 (변형 4종) | `A4/module.a4-document.md` |
| **X1** | 초와이드 강연 덱 (3.55:1) | 확장 슬롯 | saman | *(신규 매체 프로파일 필요)* | 5120×1442 | §4.3 |
| M7 | **32:9 초와이드 덱** | **`active`** | saman | presentation.ultrawide | 3840×1080 | `ultrawide/module.ultrawide-deck.md` |
> **미등록 후보 판정 (2026-07-29)** — 파생 검토 결과 아래 후보는 모듈로 만들지 않는다: ① **웹 문서·가이드 사이트** — M3 웹앱의 W4(문서) 패턴이 흡수 ② **전시·사이니지 정지 화면** — M2 준용으로 충분 (필요 시 파생) ③ **웹 인쇄 스타일시트** — M3 §9가 규정 ④ **초와이드(3.55:1)** — Layer 2d 매체 프로파일 신설이 선행 필요하며, 매체 범위 제외 결정(2026-07-28 사용자 확정)을 유지한다. 재접속 절차는 §4.3 보존
## 4.2 M1 — A3 시공상세도 편람 (실체화 완료 — 정본: `A3/module.a3-handbook.md`)
```yaml
module:
id: a3-handbook
name: A3 시공상세도 편람
version: 0.1.0
status: active # v0.1.3 — 실체화 완료
brand: saman
medium: print
dual_medium: false # 투사 겸용 시 true로 전환 → §5.5 상향표 적용
format: A3-landscape # 420 × 297 mm
columns: 12 # 컬럼 25.5mm / 거터 6mm
type_set: compact
layout:
body_columns: 3 # 4col 존 = 120mm = 34.0em (Bringhurst 이상값 재현)
dense_columns: 4 # 3col 존 = 88.5mm = 25.1em (도판·표 40% 이상 시)
baseline: 6mm
lines_per_page: 42
structure:
pagination: chapter-relative # <장>-<면> (print PN-1)
numbering: ISO-2145 # 최종 하위 번호 뒤 마침표 없음
running_head: true
index: true # 본문 면수의 약 2배 항목
glossary: true
cross_ref: "(→ N.N절, p.C-P)"
components: # 카탈로그 25종 중 19종 선별
- eyebrow, header, rule, footer
- card, stagecard, connector, principle
- table, stat, chartframe, specsheet
- directive, badge, scope
- toc, stepper, xref, mediaframe
component_count: 19
variant_count: 33 # v0.1.3 확정 (A3/module.a3-handbook.md §6)
overrides_strict:
- contrast_target: AAA # print 기본과 동일 (완화 아님)
- color_encoding: dual # 흑백 출력 빈발 → 형태+색 이중 부호화 전면 강제
depends_on:
foundations: 0.1.1
medium.print: 0.1.0
components: 0.1.0
```
> **선행 자산과의 관계**: 기존 `temp/Design system_v0.1.0.md`(A3 Astryx)는 본 모듈로 **대체**된다. 해당 문서의 Pattern A/B/C 및 Item 1~10 매핑은 **콘텐츠 자산**이므로 M1의 패턴 정의 단계(파생 절차 6단계)에서 재활용한다.
## 4.3 X1 — 확장 슬롯: 초와이드 (3.55:1)
선행 SAMAN 시스템의 실운용 자산(슬라이드 32종·React 컴포넌트 13종·실제 덱 산출물)이 존재하는 판형이다. **현 시스템의 매체 범위에는 포함되지 않으나, 재접속 경로를 보존한다.**
| 항목 | 값 |
| :--- | :--- |
| 캔버스 | 5120 × 1442 px (135.471 × 38.14 cm, 3.5519:1) |
| EMU | 48,769,560 × 13,730,400 (PowerPoint 최대 56인치 이내) |
| 기존 그리드 | 마진 96 / 거터 40 / 컬럼 374 / 콘텐츠 4928 |
| 브랜드 | **동일** (saman — 철학·트라이어드·팔레트 전부 승계) |
**재접속 시 필요 작업** — 아래 1번 파일은 현 시점에 존재하지 않는다. 확장 슬롯 활성화 시 신규 작성 대상이다.
| # | 작업 |
| :-: | :--- |
| 1 | `design.medium.ultrawide.md` 신규 작성 (Layer 2d) — **현재 미작성 파일** |
| 2 | `base` 결정 — 기존 body 32px가 캔버스 높이 1442의 H/45에 해당하므로 **`presentation` 프로파일과 동일 비율** |
| 3 | 그리드 정합 재검증 — 12×374 + 11×40 = 4928 ✓ (기존 값이 이미 정합) |
| 4 | 기존 컴포넌트 13종을 §4 매체 적용 매트릭스에 매핑 |
| 5 | 기존 팔레트를 GRADE 척도로 재산출 (`design.brand.md §8.3`에 완료됨) |
> **재접속이 저렴한 이유**: 브랜드(Layer 0)와 파운데이션(Layer 1)이 이미 공유되고, 초와이드의 body/캔버스 비율(32/1442 = H/45)이 `presentation` 프로파일(24/1080 = H/45)과 **동일**하다. 실질적으로 `base`와 그리드 수치만 교체하면 된다.
> **[추가 2026-09-29 / HMCM] M7과의 관계** — 3840×1080(32:9)은 M7로 등록되었고, L2d `design.medium.ultrawide.md`가 작성되었다. 위 표 1번의 파일명은 M7용 L2d가 선점했으므로, X1(5120×1442) 활성화 시에는 L2d에 판형을 추가하거나 별도 변형으로 선언한다. X1 자체는 확장 슬롯 상태를 유지한다.
## 4.4 모듈 등록 절차
| 단계 | 작업 |
| :-: | :--- |
| 1 | §3 파생 절차 8단계 완료 |
| 2 | §8 검증 체크리스트 전수 통과 |
| 3 | 본 파일 §4.1 등록부에 행 추가 |
| 4 | `status: draft` → `active` 전환 |
| 5 | 본 파일 MINOR 버전 증가 |
---
# 5. 거버넌스
## 5.1 토큰 수명주기
[출처: design.benchmark, T48 (Atlassian 토큰 수명주기 + GOV.UK 버전 추종 정책)]
| 단계 | 상태 | 처리 | 전환 조건 |
| :-: | :--- | :--- | :--- |
| 1 | `active` | 정상 사용 | — |
| 2 | `deprecated` | **신규 사용 금지**, 기존 유지. 대체 토큰 명시 | MINOR 증가 시 전환 |
| 3 | soft-delete | 참조 시 **경고**. 값은 유지 | 다음 MINOR |
| 4 | `deleted` | 제거. 참조 시 **빌드 실패** | MAJOR 증가 시 |
| ID | 규칙 |
| :--- | :--- |
| **LC-1** | `deprecated` 선언 시 **대체 토큰을 반드시 명시**한다. 대체 없는 폐지는 금지 |
| **LC-2** | `deprecated` → `deleted`까지 **최소 2개 MINOR 주기**를 보장한다 |
| **LC-3** | 폐지 예고는 **사전 고지 + 명확한 cut-off**를 동반한다 |
| **LC-4** | MAJOR 증가 시 **전 모듈이 재검증 대상**이 된다 (MS-1) |
## 5.2 외부 기준 추종 정책
법령·표준(KS·시방서·WCAG·ISO 등)이 개정될 때의 반영 시점 규정이다. [출처: design.benchmark, T48 (GOV.UK "최신 published 버전이면서 1년 이상 경과")]
| ID | 규칙 |
| :--- | :--- |
| **ES-1** | **공표 후 일정 기간이 경과한 정식 버전**만 정본으로 반영한다. 초안·시행 예정 단계는 반영하지 않는다 |
| **ES-2** | 반영 유예 기간은 **모듈이 선언**한다 (법정 강제 기준은 시행일 즉시 반영) |
| **ES-3** | 반영 전 기간에는 **"개정 예정" 주석**으로 표시하되 본문 수치는 현행을 유지한다 |
| **ES-4** | 반영 시 **개정 이력에 근거 조문·시행일**을 기재한다 |
## 5.3 버전 규칙
| 구분 | 증가 조건 |
| :--- | :--- |
| **MAJOR** | 토큰 의미 변경 · 스케일 비율 변경 · 계층 구조 변경 · 하위 호환 파괴 |
| **MINOR** | 토큰·컴포넌트·패턴·모듈·브랜드 인스턴스 추가 · 규칙 강화 |
| **PATCH** | 수치 보정 · 오타 · 문서 정정 · 근거 보강 |
| ID | 규칙 |
| :--- | :--- |
| **VS-1** | **파일명에 버전을 붙이지 않는다.** 버전은 문서 메타의 변경 이력 표로만 관리한다 |
| **VS-2** | 상위 계층의 MAJOR 증가는 **하위 전체의 재검증**을 유발한다 |
| **VS-3** | 모듈은 **자체 버전**을 별도로 갖되, `depends_on`에 상위 버전을 기록한다 |
## 5.4 개정 이력 서식
모든 파일 최상단에 아래 표를 둔다. 행은 **누적**하며 삭제하지 않는다.
| 버전 | 수정일 | 수정자 | 주요 변경 내용 | 비고 |
| :--- | :--- | :--- | :--- | :--- |
| ID | 규칙 |
| :--- | :--- |
| **CH-1** | 변경 내용은 **무엇을 왜 바꿨는지**를 적는다. "수정"만 적지 않는다 |
| **CH-2** | 상충 해소로 인한 개정은 **비고에 발견 경위**를 적는다 |
| **CH-3** | 근거가 된 벤치마킹 항목·조문이 있으면 **함께 기재**한다 |
## 5.5 검수 게이트
[출처: design.benchmark, M22 (USWDS·GOV.UK "if it doesn't pass, we don't merge" — CI 게이트 사상을 검수 절차로 전환)]
| ID | 규칙 |
| :--- | :--- |
| **QG-1** | 자동 검증(Layer 1 §8.1 + 매체별) **전항 통과 없이 산출물을 확정하지 않는다** |
| **QG-2** | `screen` 모듈은 **CI에 자동 검사를 연결**한다 (Stylelint · axe). 통과하지 못하면 머지하지 않는다 |
| **QG-3** | `print`·`presentation` 모듈은 **자동 검사 도구가 없으므로 검수 절차로 대체**한다. 검수자·일자·판정을 기록한다 |
| **QG-4** | **자동 검사는 문제의 약 30%만 발견한다.** 육안 검수를 반드시 병행한다 (GDS 인용) |
| **QG-5** | 검수 실패 항목은 **보정 전/후를 대조 기록**한다 |
## 5.6 인쇄 색상 재검증
[출처: design.benchmark, M23 · §12.1]
| ID | 규칙 |
| :--- | :--- |
| **CR-1** | 인쇄 모듈은 **인쇄소 출력 프로파일 확인 → CMYK 변환 → 토큰 등록 → 교정쇄 승인** 순서를 밟는다 |
| **CR-2** | **진한 파랑·초록 계열은 CMYK 색역 이탈 가능성이 높다.** 교정쇄 확인을 필수로 한다 |
| **CR-3** | 참조한 공개 시스템 팔레트(Carbon·Atlassian·Spectrum·Polaris)는 **전부 sRGB 기준**이다. 인쇄에 직접 쓰기 전 전 스텝 대비를 재검증한다 |
| **CR-4** | 프로파일 미확정 상태의 CMYK 수치를 문서에 확정 기재하지 않는다 |
## 5.7 드리프트 방지
**문서와 토큰 파일 간 값 불일치는 디자인 시스템의 기본 실패 모드다.**
조사 대상 8개 시스템 중 **최소 5개**에서 공개 문서와 공식 토큰 패키지 간 드리프트가 확인됐다 — MD3 state layer(10% vs 12%), Spectrum 컬러 스톱 수(14 vs 13 vs 16), Carbon 컬럼 수(16 vs 4/8/16 vs 12), Carbon 타입 토큰명(v10 vs v11), USWDS line-height(1.15 vs 1.2). 선행 SAMAN 시스템도 **4중 버전 표기**(core 0.3.2 / tokens 0.3.0 / 산문 0.3.1 / readme 0.3.7)로 같은 실패를 겪었다. [출처: design.benchmark, §12 조사 방법 · §18]
| ID | 규칙 |
| :--- | :--- |
| **DR-1** | **`design.tokens.json`이 SSOT다.** 문서의 표와 불일치하면 **JSON이 우선**한다 |
| **DR-2** | 문서 표의 수치와 JSON 값의 **정합 검증을 빌드 게이트로 강제**한다 (Layer 1 F9) |
| **DR-3** | **버전 표기는 파일당 1곳**(변경 이력 표)에만 둔다. 본문·메타·예시에 버전을 중복 기재하지 않는다 |
| **DR-4** | 토큰 값을 문서에 옮겨 적을 때는 **JSON에서 생성**한다. 손으로 옮기지 않는다 |
---
# 6. 인용 금지 목록
벤치마킹 조사에서 **실재하지 않는 것으로 판명된 항목**이다. 본 시스템의 어떤 문서·모듈에서도 근거로 인용하지 않는다. [출처: design.benchmark, §18]
| # | 항목 | 판명 내용 |
| :-: | :--- | :--- |
| 1 | **Apple HIG "8pt 그리드"** | 애플 공식 문서에 **명문 규정이 없다.** 벤치마킹에서 가장 자주 오인용되는 항목 [§18-30] |
| 2 | **GOV.UK `$govuk-print-styles` 변수** | **존재하지 않는다** [§18-21] |
| 3 | **"GOV.UK는 인쇄 시 헤더/푸터를 숨긴다"** | **사실이 아니다.** 배경·테두리만 제거한다 (`@media print` 블록 97개 전수 확인) [§18-22] |
| 4 | **USWDS "이상적 characters-per-line"** | **문서에 없다.** `ex` 단위 measure 토큰만 정의되어 있다. CPL 권고로 인용 금지 [§18-18] |
| 5 | **SLDS 블루프린트의 `Anatomy`/`States`(독립 탭)/`Do-Don't` 섹션** | **블루프린트 문서에 존재하지 않는다** [§18-25] |
| 6 | **Polaris 알파벳순 terminology / word list** | **존재하지 않는다.** 유일한 표는 단위 약어 표 1개 [§18-29] |
| 7 | **Carbon 종횡비 3:4 · 1:2** | 공식 목록에 **미포함**. 실제는 1:1, 2:1, 2:3, 3:2, 4:3, 16:9 [§18-7] |
| 8 | **Atlassian "group/variant/state" 토큰 anatomy 용어** | **공식 용어가 아니다.** 공식은 Foundation / Property / Modifier [§18-12] |
| 9 | **Atlassian base/semantic/component 3계층 모델** | **공식 문서에 없다.** 확인 가능한 것은 2층 구조 [§18-13] |
| 10 | **FOGRA39 TAC 350%** | **오류.** FOGRA39는 330%(저잉크 300%), 350%는 구 FOGRA27 [§18-36] |
| 11 | **Polaris `voice-and-tone` / `actionable-language` / `help-documentation` 현행 문서** | **2025-01-07 삭제됨.** 인용 시 반드시 **아카이브 커밋 기준**임을 명시 [§18-28] |
| 12 | **MD3 "톤 40 차이 = 3:1 / 50 차이 = 4.5:1" 일반 규칙** | **문서에 없다.** 사례값만 존재 [§18-1] |
| ID | 규칙 |
| :--- | :--- |
| **CT-1** | 위 항목을 **근거로 인용하지 않는다** |
| **CT-2** | 유사 항목을 새로 인용할 때는 **1차 출처(공식 문서·공식 저장소)를 직접 확인**한다 |
| **CT-3** | 확인 불가 항목은 **`[미검증]` 태그를 붙이고 대체 근거를 병기**한다 |
| **CT-4** | 2차 출처(블로그·요약글)만 있는 항목은 **`[미검증, 참고용]`** 으로 표기한다 |
---
# 7. 한계 선언
## 7.1 시스템의 한계
배포 문서·모듈 서문에 아래 취지를 명시한다. [출처: design.benchmark, T49 (USWDS 한계 선언)]
> **본 디자인 시스템 준수가 산출물의 적합성을 보증하지 않는다.**
> 본 시스템은 검증된 기본값과 규칙을 제공할 뿐이며, 개별 산출물의 정확성·법적 유효성·현장 적합성은 사용자가 별도로 검증해야 한다.
> **우리는 우리 작업을 시험했다. 당신은 당신 작업을 시험해야 한다.**
## 7.2 명시된 미검증 항목
본 시스템에는 **1차 출처를 확보하지 못한 항목**이 있다. 사용 시 인지해야 한다.
| # | 항목 | 위치 | 대체 처리 |
| :-: | :--- | :--- | :--- |
| 1 | 한글 글자면 비율의 표준 측정 방법 | foundations §3.10 | 실측 비교로 대체 |
| 2 | 투사물 최소 문자 크기 | presentation §3.2 | 관람 거리·XGA 배율·선행 실운용값 3중 근거 `[자체 정의]` |
| 3 | 투사 최소 선 굵기 | presentation §3.3 | XGA 배율 역산 `[자체 정의]` |
| 4 | 한국 시장 표준 CMYK 프로파일 | print §8.2 | 인쇄소 확인 절차로 대체 |
| 5 | 러닝헤드 verso/recto 관행 | print §10.3 | 2차 출처, 참고용 |
| 6 | IEC/IEEE 82079-1:2019 세부 목차 | print §10 | 유료(CHF 380), 미확인 |
| 7 | CMOS 17판 본문 규정 | print §10.3 | 목차만 확인, 부분 미검증 |
| 8 | ISO 12647-2 레지스터 허용오차 | print §8 | 원문 유료, 2차 인용 |
| 9 | MD3 state layer focus·pressed 값 | screen §6.3 | 문서(10%) vs 토큰(12%) 드리프트 명시 |
| 10 | "A계열 인쇄물에 √2 타입 비율" 명제 | foundations §3.2 | 구성 사실은 검증, 결론 명제는 `[추론]` |
| 11 | Bringhurst ↔ Butterick 행장 불일치 | foundations §3.7 | 양측 병기 |
## 7.3 자체 정의 항목
원 시스템에 **대응 개념이 없어 새로 정의한 항목**이다.
| # | 항목 | 위치 |
| :-: | :--- | :--- |
| 1 | GRADE 척도 및 매직 넘버 40/55/70 | foundations §2.1 |
| 2 | em 기반 measure 재정의 (한글) | foundations §3.7 |
| 3 | 한글 글자면 비율 정규화 | foundations §3.10 |
| 4 | 상태색 4종 재선정 (적록 축 회피) | foundations §2.7 |
| 5 | 범주형 GRADE 사다리 | foundations §2.10 |
| 6 | 한국어 가독성 지표 | brand §5.8 |
| 7 | 한국어 동사 판별표 | brand §5.6 |
| 8 | 한글 sans 채택 근거 | brand §4.2 TF-5 |
| 9 | **GRADE 시프트 상태 표현** | screen §6.2 |
| 10 | 투사 각크기 기준 최소 크기 | presentation §3.2 |
---
# 8. 검증 체크리스트
## 8.1 모듈 등록 전 — 구조 검증
| # | 항목 | 필수 |
| :-: | :--- | :-: |
| 1 | 스키마 필수 필드 전부 충족 (§2.1) | ★ |
| 2 | `depends_on`에 상위 버전 기록 (MS-1) | ★ |
| 3 | `component_count`·`variant_count` 정량 명시 (MS-2) | ★ |
| 4 | `overrides_strict`에 **완화 항목 0건** (MS-3) | ★ |
| 5 | 겸용 선언 시 엄격한 쪽 적용 확인 (MS-4) | ★ |
| 6 | 전 텍스트 슬롯에 예산 부여 (MS-5) | ★ |
| 7 | 패턴 `split`이 허용 목록 내 (PT-1) | ★ |
| 8 | 패턴별 `conclusion_zone` 정확히 1개 (PT-2) | ★ |
| 9 | 존 폭 합계 정합 (PT-3) | ★ |
| 10 | 선별 컴포넌트가 전부 카탈로그 내 (MD-3) | ★ |
| 11 | 미사용 컴포넌트 0건 (SL-2) | ★ |
| 12 | 역할 중복 컴포넌트 0건 (SL-3) | ★ |
## 8.2 산출물 검증 — 계층별 승계
| 계층 | 참조 | 항목 수 |
| :--- | :--- | :-: |
| Layer 1 자동 | `design.foundations.md §8.1` | F1~F9 (9) |
| Layer 1 육안 | `design.foundations.md §8.2` | V1~V7 (7) |
| 매체 자동 (print) | `design.medium.print.md §11.1` | P1~P16 (16) |
| 매체 육안 (print) | `design.medium.print.md §11.2` | Q1~Q10 (10) |
| 매체 자동 (presentation) | `design.medium.presentation.md §10.1` | S1~S18 (18) |
| 매체 육안 (presentation) | `design.medium.presentation.md §10.2` | R1~R8 (8) |
| 매체 자동 (screen) | `design.medium.screen.md §13.1` | W1~W18 (18) |
| 매체 수동 (screen) | `design.medium.screen.md §13.2` | M1~M10 (10) |
| 컴포넌트 | `design.components.md §6.2` | 14 |
| **모듈** | **본 절 §8.1 · §8.3** | **12 + 10** |
## 8.3 모듈 고유 검증
| # | 항목 | 판정 | 필수 |
| :-: | :--- | :--- | :-: |
| 1 | **분량 예산 준수** | 전 슬롯이 절대 최대값 이하 | ★ |
| 2 | **잘림 0건** | truncation·overflow 0건 (BG-4) | ★ |
| 3 | **패턴 사용률** | 정의된 패턴이 전부 사용됨 | ★ |
| 4 | **콘텐츠 유형 매핑** | 전 콘텐츠가 패턴에 매핑됨 (PT-4) | ★ |
| 5 | **규칙 완화 0건** | `overrides_strict` 위반 0건 (MD-4) | ★ |
| 6 | **암묵 결정 0건** | 문서화되지 않은 결정 0건 (MD-5) | ★ |
| 7 | **면책 문구 수록** | DC-2·DC-3 (배포 문서) | ★ |
| 8 | **인용 금지 항목 미사용** | §6 목록 0건 (CT-1) | ★ |
| 9 | **미검증 항목 표기** | `[미검증]`·`[추론]`·`[자체 정의]` 태그 부여 (CT-3) | ★ |
| 10 | **검수 기록** | 검수자·일자·판정 기록 (QG-3·QG-5) | ★ |
## 8.4 검증 총괄
| 구분 | 자동 | 육안·수동 | 합계 |
| :--- | :-: | :-: | :-: |
| Layer 1 | 9 | 7 | 16 |
| 매체 (해당 1종) | 16~18 | 8~10 | 24~28 |
| 컴포넌트 | — | 14 | 14 |
| 모듈 | 12 | 10 | 22 |
| **합계 (모듈 1건 기준)** | **37~39** | **39~41** | **76~80** |
> **자동:육안 비율이 대략 1:1이다.** GDS 인용("자동 도구로 발견되는 문제는 전체의 약 30%")을 고려하면 이 비율은 오히려 자동 쪽에 후한 편이며, 육안 검수를 생략하면 대부분의 문제가 그대로 배포된다. [출처: design.benchmark, M22]
---
## 근거 출처 요약
본 파일이 인용한 벤치마킹 항목: **T25 · T48 · T49 · M22 · M23 · §12 · §18 (전 41항)**
전문: `RAG/design.benchmark_2026-07-28_v0.1.0.md`
**본 파일의 설계 특징**
1. **모듈은 규칙을 완화할 수 없다 (MD-4)** — 특수 사정이 있으면 규칙 자체를 고치거나 상위 계층에 예외를 등재한다. "이 문서는 특수하니까"를 구조적으로 차단한다
2. **드리프트를 기본 실패 모드로 취급 (§5.7)** — 조사 대상 8개 시스템 중 5개, 선행 SAMAN 시스템에서도 확인된 실패다. SSOT 우선순위와 빌드 게이트로 방어한다
3. **인용 금지 목록 (§6)** — 조사에서 실재하지 않는 것으로 판명된 12항을 명문화했다. "Apple HIG 8pt 그리드"처럼 업계에서 널리 오인용되는 항목이 포함된다
4. **한계·미검증·자체정의를 전량 공개 (§7)** — 미검증 11항·자체정의 10항을 숨기지 않고 목록화했다. 사용자가 위험을 인지하고 판단할 수 있어야 한다