Visual Grammar & Design Systems
디자인의 최소 수리 단위인 타이포그래피, 레이아웃, 컬러를 체계적인 물리 규칙으로 정립하고, 이를 대규모 하드웨어 환경에서 일관되게 확장하는 디자인 시스템 공학을 다룹니다.
Article
M
Me
hyunyoun's Blog
human-computer-interaction-graphicshuman-computer-interactiongraphicsvisual-grammardesign-systemshcivisual-designlayout9 min read
1. Overview
시각적 문법 및 디자인 시스템(Visual Grammar & Design Systems, VGD)은 디자이너 개인의 파편화된 심미적 직관이나 영감을 완전히 배제하고, 화면을 구성하는 모든 시각적 부품을 수리적(Mathematical) 단위로 쪼개어 거대한 제품군 전체에 강제하는 'UI 아키텍처 공학'입니다.
과거에는 페이지마다 폰트 크기나 버튼 색상이 제각각이었다면, 현대의 프로덕트는 타이포그래피의 행간(Line-height) 수치, 여백(Padding)의 배수(8pt Grid), 컬러의 명도(Lightness)를 변수(Token)로 치환합니다. 학습자는 텍스트와 공간의 황금비를 다루는 타이포그래피와 레이아웃 그리드의 역학을 배우고, 원자(Atom) 단위의 버튼 하나에서 유기체(Organism) 단위의 헤더 컴포넌트로 조립해 나가는 아토믹 디자인(Atomic Design)의 결정 구조를 익힙니다. 이를 통해 수백 명의 프론트엔드 개발자가 단 1px의 오차도 없이 동일한 UI를 찍어내는 확장 가능한 시각 거버넌스를 구축합니다.
2. Scope & Boundaries
In-Scope
- 타이포그래피 역학 (Typography): 폰트 척도(Type Scale), 자간(Tracking)과 행간(Leading)의 가독성 수치, 글꼴 패밀리 위계.
- 공간과 레이아웃 (Layout Engines): 8pt 그리드 시스템, 반응형 레이아웃 분할(Columns, Gutters, Margins), 플렉스/그리드 매핑.
- 디자인 토큰과 컬러 (Tokens & Color): HSL/RGB 수치 기반 컬러 팔레트 생성, 디자인 토큰(Design Tokens)의 변수명 명명 규칙.
- 아토믹 디자인 시스템 (Atomic Design): Atoms(원자) Molecules(분자) Organisms(유기체) Templates Pages의 조립 위계 설계.
Out-of-Scope
- 구체적인 프론트엔드 코드 구현: React나 Vue를 이용해 컴포넌트를 코딩으로 찍어내는 과정 09-02. Frontend Engineering 영역으로 위임.
- 마이크로 애니메이션의 동역학: 컴포넌트가 눌렸을 때의 가속도와 모션 이징(Easing) 공식 12-03. Interactive Physics & Motion Design 영역으로 위임.
Boundaries
- VGD vs. HPC (12-01): HPC(12-01)가 "사용자의 눈이 화면을 어떻게 훑어보는가?"라는 인지 법칙을 다룬다면, VGD는 그 법칙을 만족시키기 위해 화면 위에 "버튼의 여백은 16px, 폰트는 14pt"라고 콘크리트를 타설하는 물리적 조판 규칙을 다룹니다.
3. Counterexample
- 픽셀 푸셔의 함정 (Pixel Pusher Fallacy): 화면 하나를 예쁘게 그리기 위해 폰트 크기를 15px, 17px, 19px로 아무 기준 없이 마음대로 설정하고, 여백을 13px이나 21px 같은 매직 넘버(Magic Number)로 때려 넣는 행위. 시스템적 사고가 결여된 단순 그래픽 작업입니다. 진정한 디자인 시스템은 4의 배수나 8의 배수(8pt Grid)로 모든 공간을 모듈화하여, 화면 크기가 커져도 수학적 비례가 절대 깨지지 않도록 수리적 제약을 거는 것입니다.
- 하드코딩된 색상값 (Hardcoded Color Fallacy): 프론트엔드 코드나 피그마(Figma) 도처에
#FF5733같은 헥스(Hex) 코드를 천 번씩 복사해서 붙여넣는 무지. 회사의 브랜드 컬러가 바뀌거나 다크 모드(Dark Mode)를 도입하는 순간 1,000곳을 손으로 다 고치다 파산합니다. 모든 시각 속성은color.brand.primary같은 의미론적(Semantic) 디자인 토큰으로 추상화되어, 중앙에서 단 한 번만 값을 엎으면 전 세계의 앱 화면이 동시에 바뀌는 싱글 소스 오브 트루스(SSOT) 구조를 띠어야 합니다.
4. Prerequisites
- 인간 인지 법칙 (Recommended): 폰트 사이즈와 색상 대비가 어떻게 인지 부하를 일으키는지 게슈탈트 원리를 알아야 합리적인 토큰을 짤 수 있습니다. (12-01. HPC)
- CSS 기본 논리 (Basic): 박스 모델(Box Model), 패딩(Padding)과 마진(Margin)의 차이를 알아야 디자인 토큰을 프론트엔드 엔지니어에게 제대로 넘겨줄 수 있습니다. (08-04. WAP)
5. Learning Map
6. Learning Topics
Basic
Core Topic 01: 타이포그래피와 컬러의 수리적 척도 (Typography & Color Scale)
- Why to Learn: 제목, 부제목, 본문 폰트의 크기가 무작위로 튀면 정보의 위계가 붕괴되므로, 이를 황금비와 같은 일정한 수리비로 묶어놓기 위함입니다.
- What to Learn:
- Concepts: 모듈러 스케일(Modular Scale), 시각적 하이라키(Visual Hierarchy).
- Skills: HSL/HSB 색상계의 물리(명도, 채도 제어), WCAG 명도 대비(Contrast Ratio) 수치화.
- Tools: Type Scale Generator, Color Palette Generator.
- Trade-offs: 본문 폰트를 1.414(루트 2) 배수로 키워서 역동적인 대비를 주는 것 vs 1.125(Major Second) 배수로 키워서 좁은 모바일 화면에 많은 정보를 우겨넣는 실용성.
- How to Learn:
- 1단계: 기본 폰트(16px)에 특정 배수(예: 1.25)를 계속 곱하여 H1부터 H6까지의 폰트 사이즈를 수학적 등비수열로 도출하는 모듈러 스케일의 질서를 확인합니다.
- 2단계: 브랜드의 핵심 색상(Primary Color)을 하나 찍고, RGB가 아닌 HSL(색상, 채도, 밝기) 공간에서 '밝기(Lightness)' 수치만 10%씩 움직여서 Light 100부터 Dark 900까지 9단계의 색상 팔레트를 공장처럼 뽑아내는 공식을 체화합니다.
- Implement: 특정 브랜드를 가상으로 설정하고, 그 브랜드의 타이포그래피 스케일 수식(비율)과 9단계의 틴트/셰이드(Tint/Shade) 컬러 팔레트를 JSON 형태의 데이터 구조로 도출.
Recommended
Core Topic 02: 8pt 그리드와 레이아웃 엔진 (8pt Grid & Layout)
- Why to Learn: 버튼 사이의 간격이 10px인지 12px인지 매번 고민하는 감정적 노동을 없애고, 기계적인 규칙으로 1초 만에 배치를 끝내기 위해서입니다.
- What to Learn:
- Concepts: 공간적 리듬(Spatial Rhythm), 8pt 그리드 시스템.
- Skills: 반응형(Responsive) 칼럼(Columns), 거터(Gutters), 마진(Margins), 유동적 그리드(Fluid Grids).
- Tools: Figma Grid Layout, CSS Flexbox 컨셉.
- Trade-offs: 데스크톱에서 12칼럼 그리드를 쪼개어 미세하고 복잡한 대시보드를 배치하는 것 vs 모바일에서 4칼럼으로 단순화하여 가독성에 전부를 거는 반응형 트레이드오프.
- How to Learn:
- 1단계: 모니터의 렌더링 픽셀이 과거부터 8의 배수로 확장되어 왔음을 이해하고, 화면 안의 모든 여백과 박스의 너비/높이를 8, 16, 24, 32, 40 등으로만 강제하는 8pt 시스템의 마법 같은 일치감을 스케치합니다. (미세 조정 시 4pt 허용)
- 2단계: 화면 너비가 줄어들 때 카드의 가로 크기가 줄어드는 대신, 카드 사이의 간격(Gutter)은 절대 변하지 않고 고정 수치를 유지하는 반응형 레이아웃의 수학적 고정축을 해부합니다.
- Implement: 웹 브라우저 사이즈가 Desktop(1440px) Tablet(768px) Mobile(375px)로 변할 때, 12-Column 그리드가 어떻게 8, 4 Column으로 변환되며 내부 마진(Margin) 수치가 어떻게 맵핑되는지 정의하는 레이아웃 스펙 시트 작성.
Practical
Core Topic 03: 디자인 토큰과 시스템 거버넌스 (Design Tokens)
- Why to Learn: 디자이너의 피그마(Figma) 파일과 개발자의 CSS 코드 베이스 사이의 언어 장벽을 허물고, 한 곳에서 수치를 바꾸면 전체 제품이 업데이트되는 CI/CD 물리를 구축하기 위함입니다.
- What to Learn:
- Concepts: 디자인 토큰(Design Tokens), 시맨틱 네이밍(Semantic Naming), 싱글 소스 오브 트루스(SSOT).
- Skills: 글로벌 토큰(Global) 앨리어스 토큰(Alias) 컴포넌트 토큰(Component)의 3단계 추상화 위계.
- Tools: Figma Tokens (Token Studio), Style Dictionary (JSON to CSS).
- Trade-offs: '버튼 백그라운드 색상' 토큰을 수백 개 만들어 극강의 통제력을 쥐는 것 vs 토큰 관리가 너무 복잡해져서 오히려 유지보수를 포기하게 되는 시스템 오버엔지니어링.
- How to Learn:
- 1단계: 절대값인
#2F80ED를color-blue-500이라는 글로벌 토큰(이름)으로 1차 변환합니다. - 2단계:
color-blue-500을 다시color-primary-action이라는 앨리어스 토큰(목적)으로 연결하고, 이를 최종적으로button-background-default컴포넌트 토큰(위치)으로 매핑하여 수직적인 참조 트리(Reference Tree)를 구축하는 논리를 추적합니다.
- 1단계: 절대값인
- Implement: 라이트 모드(Light Mode)와 다크 모드(Dark Mode)를 지원하기 위해, 색상의 Hex 값을 분리 저장하고 시맨틱 토큰 하나(예:
bg-surface)로 양쪽 모드를 모두 스위칭할 수 있는 JSON 토큰 구조물 작성.
Advanced
Core Topic 04: 아토믹 디자인과 컴포넌트 생태계 (Atomic Design System)
- Why to Learn: 거대한 웹페이지를 한 판으로 찍어내는 비효율을 깨부수고, 레고 블록처럼 최소 단위의 부품을 조립하여 무한대의 UI를 양산하기 위해서입니다.
- What to Learn:
- Concepts: 아토믹 디자인 방법론(Atomic Design Methodology).
- Skills: 상태(States: Default, Hover, Active, Disabled, Error) 관리, 오버라이드(Overrides) 속성 통제, 컴포넌트 라이브러리 문서화.
- Tools: Storybook, Figma Components/Variants.
- Trade-offs: 단일 텍스트 필드 컴포넌트 하나에 크기, 상태, 아이콘 유무 등 100가지 경우의 수(Variants)를 때려 넣어 마스터 컴포넌트를 무겁게 만드는 것 vs 잘게 쪼갠 컴포넌트를 디자이너가 매번 조립하게 만드는 조립 부하(Overhead).
- How to Learn:
- 1단계: 라벨 글씨, 인풋 박스, 돋보기 아이콘이라는 3개의 '원자(Atom)'를 결합하여 하나의 완벽한 검색창이라는 '분자(Molecule)'를 조립합니다.
- 2단계: 이 검색창(분자)을 로고(원자), 내비게이션 링크(분자)들과 하나로 합쳐서 페이지 최상단에 박히는 글로벌 헤더 바(Header)라는 '유기체(Organism)' 컴포넌트로 승격시키는 생태계 진화 과정을 분해합니다.
- Implement: 특정 버튼(Button) 컴포넌트를 설계할 때, 크기(Small, Medium, Large), 타입(Primary, Secondary, Ghost), 상태(Default, Hover, Disabled)의 조합 행렬(Matrix)을 그려 모든 물리적 변수를 누락 없이 시각화한 UI 마스터 카탈로그 제작.
7. Terminology
8. References
Primary References
- [CS2023: HCI/Design] — 인간 중심 설계와 UI 아키텍처의 인지적 통제 원칙.
- [SWEBOK v3: Software Design] — 재사용 가능한 컴포넌트 아키텍처 및 시스템 공학 모델.
Secondary References
- [Atomic Design (Brad Frost)] — 컴포넌트 생태계를 구축하는 상향식 조립 방법론 가이드.
- [WCAG 2.1 Contrast Guidelines] — 타이포그래피 및 컬러 스케일의 시각적 접근성 확보 기준.
Industry References
- [Material Design 3 (Google)] — 디자인 토큰 체계 및 동적 컬러(Dynamic Color) 물리 스펙.
- [Figma Tokens Studio Documentation] — SSOT 기반 디자인-개발 자동화 파이프라인.
9. Final Checklist
Primary Checklist
- 디자인의 핵심 속성(색상, 타이포, 여백)이 하드코딩되지 않고 글로벌 및 시맨틱 토큰으로 추상화되어 있는가?
- 컴포넌트 라이브러리가 아토믹 디자인의 위계(원자->분자->유기체)를 철저히 지키며 상호 결합 가능하게 설계되었는가?
Secondary Checklist
- 반응형 레이아웃 구성 시 8pt 그리드 시스템을 기반으로 여백(Margin, Padding)과 폭(Gutter)이 수학적 비례를 유지하는가?
- 텍스트 위계(H1~Body)가 모듈러 스케일 공식을 따르며 모바일 화면에서도 가독성을 해치지 않도록 적응형으로 작동하는가?
Industry Checklist
- 디자이너가 피그마(Figma)에서 토큰을 수정했을 때, 그 변경 사항이 프론트엔드 코드 저장소(JSON)로 자동 배포되는 파이프라인이 존재하는가?
- 다크 모드(Dark Mode) 적용 시 특정 Hex 값을 뒤집는 것이 아니라, 테마 토큰 단위에서 안전하게 교차 스위칭되는가?