- 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>
555 lines
30 KiB
Markdown
555 lines
30 KiB
Markdown
# 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항을 숨기지 않고 목록화했다. 사용자가 위험을 인지하고 판단할 수 있어야 한다
|