Essay · 5분
결정론적 디자인 루프 — 미적 결정을 객관화하기
디자인은 보통 주관적이지만, rubric + 페르소나 평가 + 통과 임계로 분해하면 코드처럼 "통과까지 반복"하는 결정론적 루프가 가능하다.
디자이너 없이 디자인 사이클을 돌렸습니다
이 사이트를 다듬으면서 한 가지를 시험해봤습니다. "예쁘다 / 별로다"라는 주관 평가를, 코드 테스트처럼 객관화할 수 있을까. 사람 개입 없이 스스로 검증하는 결정론적 루프를 돌리며 통과할 때까지 자동으로 개선되게 만들 수 있을까.
결론부터 말하면, 가능했습니다. 디자인의 모호함은 절반쯤 신화에 가까웠습니다.
시작점 — "엄청 못생겼어"
리뷰 한 줄: "엄청 못생겼어." 이게 1차 피드백이었습니다.
이 문장은 정보가 없는 듯하지만, 사실 풍부합니다. "엄청"이라는 강도와 "못생겼다"는 방향. 두 가지가 모두 들어 있습니다. 다만 어디가 못생겼는지는 안 들어 있죠.
이걸 그대로 "더 예쁘게 만들어보자"로 받으면 다시 같은 곳에서 막힙니다. 평가가 사람의 직관에 묶여 있으면 진전 속도가 그 사람의 한 마디에 의존하니까요.
분해 — rubric
대신 한 단계 거쳤습니다. "세련된"이 무엇으로 구성되어 있는가.
분해해보면 디자인은 8축 정도로 쪼개졌습니다.
- 컬러 팔레트의 톤·일관성
- 타이포그래피의 위계·가독성
- 레이아웃·여백
- 시각 일관성 (토큰 단일 source)
- 인터랙션 디테일
- 모바일 반응형
- 첫인상·임팩트
- 차별화·기억성
각 축에 5점 만점으로 채점할 수 있다면, "세련된"은 더 이상 모호한 형용사가 아닙니다. 숫자 8개입니다.
평가자 — 페르소나 분리
채점을 누가 하느냐도 중요했습니다. 한 사람(또는 한 모델)이 전부 채점하면 한 가지 시야에 갇힙니다.
그래서 페르소나를 분리해서 평가하게 했습니다. 각자 자기 영역에서만 채점합니다.
디자인 사이클에서는 네 명을 썼습니다 — 디자이너(컬러·타이포·일관성), 엔지니어(인터랙션·접근성·반응형), 기획자(정보 구조·차별화), 채용 담당자(첫인상). 이어진 모바일 최적화 사이클에서는 채용 담당자를 빼고 세 명만 — 모바일은 시장 임팩트보다 구현 디테일이 압도적이라 판단했기 때문입니다.
영역이 겹치는 항목은 두 명 평균. 이게 cross-check 역할을 합니다.
통과 임계
평균 4.5/5. 모든 항목 ≥ 4. FAIL 0개. BLOCKING UNVERIFIED 0개. quality-gate의 평가·개선 루프와 같은 통과 기준입니다.
평균 4.5는 단순한 기준이지만, "모든 항목 ≥ 4"가 결정적입니다. 평균을 깎는 한 항목이 결국 사용자가 느끼는 약점이니까요. 평균 4.7이어도 한 항목이 2점이면 통과 못 합니다.
첫 사이클 — 평균 3.28
- 컬러 팔레트 2/5 (BLOCKING)
- 시각 일관성 2/5
- 타이포그래피 3/5
- 첫인상 3/5
- ...
페르소나가 코드 라인까지 인용하며 채점했습니다. "index.css:67의 site-nav background가 rgba(244, 241, 232, 0.92) cream 잔재 — themes.css color-mix가 cascade로 덮지만 순서 의존."
추상적 피드백이 아니라 정확한 좌표가 나오면, 다음 액션도 정확해집니다.
개선 사이클
페르소나의 top_3_fixes를 받아 그대로 코드에 적용했습니다.
- cream
#faf9f5→ white#ffffff - burnt orange
#c2410c→ indigo#4f46e5 - 하드코딩 hex 30개 + rgba 12개 →
var(--*)일괄 치환 - font-weight 950/900 → 600/700 다이어트
- sepia 테마 삭제 (사용자가 누런 톤을 싫어하므로 가장 누런 sepia는 가장 약점)
이 변경은 사람이 "더 세련되게 해야지"라는 직관에서 나온 게 아니라, 페르소나 평가가 짚은 좌표에 정확히 대응합니다.
두 번째 사이클 — 평균 4.44
8개 항목 중 5개가 5점, 3개가 4점. 평균 4.44.
다만 4.5 임계 0.06 미달. 통과 못 함.
여기서 두 가지 선택지가 있었습니다.
- 4.44를 "사실상 통과"로 보고 종료
- 한 사이클 더
저는 두 번째로 갔습니다. 임계를 임의로 낮추면 시스템 자체가 약해지니까요.
세 번째 사이클 — 평균 4.75
남은 4점 항목 5개 중 가장 점수 영향이 큰 3개 처리. 평균 4.75/5. 모든 항목 ≥ 4. PASS.
세 사이클이 남긴 세 가지
세 사이클을 돌리고 나서 세 가지를 확인했습니다.
첫째, "주관적"이라고 느껴지는 디자인 판단의 80%는 사실 객관적입니다. 토큰 일관성, HIG 준수, 타이포 위계 — 모두 측정 가능합니다.
둘째, 진짜 주관적인 20%(예: "burnt-orange vs indigo가 더 어울리는가")가 남지만, 그것도 페르소나가 근거로 좁힐 수 있습니다 — "사용자가 누런 톤을 싫어한다 → orange는 누런 베이스와 동계열이라 강화"처럼.
셋째, 최저 항목이 통과를 결정합니다. 평균이 아니라. 사용자가 보는 건 가장 약한 곳이지 평균이 아니니까요.
코드 너머로
이 루프는 디자인에만 적용되지 않습니다. 콘텐츠·정보 구조·심지어 글쓰기에도 적용 가능합니다. 핵심은:
- 모호한 목표를 측정 가능한 축으로 분해
- 다각도 페르소나
- 평균이 아니라 최저 통과 기준
- 매몰 방지를 위한 사이클 제한
"잘해" 같은 문장 대신 "이 8개 축이 모두 4점 이상인가"로 바꿀 수 있다면, 작업의 생산성이 사람 속도에서 기계 속도로 옮겨갑니다.
이 사이트 자체가 그 실험의 산물입니다.