Series 08 — 05 of 05
배포 버튼을 누르기
전에
"작동하는 것"과 "제품인 것"의 차이는 디자인 QA에 있다. 배포 전 30분 투자로 AI가 만든 티를 80% 제거하는 체크리스트.
AI가 놓치는 것들
바이브 코딩으로 기능을 완성했다. 로그인 작동하고, 데이터 저장되고, 결제까지 된다. 배포 버튼에 손이 간다. 잠깐. AI가 만든 코드가 기능적으로 완벽하더라도, 디자인 측면에서 AI는 체계적으로 특정 영역을 놓친다. 그리고 그 빈틈이 사용자에게는 "이거 AI가 만들었네"라는 인상을 준다.
접근성(a11y)
자동화 도구가 감지하는 WCAG 이슈는 전체의 30~50%에 불과하다. AI는 시맨틱 HTML 대신 div를 남발하고, alt 텍스트는 기계적이다. "공원의 개"는 맞추지만 "안내견"이라는 맥락은 놓친다.
반응형
AI는 데스크톱 퍼스트로 생성한다. 모바일은 사후 대응이다. 320px 화면에서 텍스트가 넘치고, 터치 타겟이 너무 작고, 가로 스크롤이 발생하는 문제가 빈번하다.
한글 타이포그래피
AI는 영문 기준으로 타이포그래피를 생성한다. line-height 1.5는 영문에 최적이지만 한글에서는 답답하다. letter-spacing도 양수 값이 한글에서 어색하게 작용한다.
마이크로 인터랙션
hover, focus, transition — AI가 가장 대충 처리하는 영역이다. 버튼에 hover 효과가 없으면 사용자는 "이게 클릭되는 건가" 의심한다. focus ring이 없으면 키보드 사용자는 현재 위치를 잃는다.
이 네 가지는 AI가 구조적으로 약한 영역이다. AI는 시각적 결과물을 보지 못한 채 코드만 생성하기 때문이다. 데스크톱에서 보기 좋은 3열 그리드가 모바일에서 어떻게 보이는지, line-height 1.5의 한글이 얼마나 빽빽한지, hover 없는 버튼이 사용자에게 어떤 느낌인지 — AI는 이런 "체감"을 계산하지 못한다.
좋은 소식은, 이 문제들 대부분이 30분이면 잡힌다는 것이다.
30분 디자인 QA 체크리스트
아래 체크리스트는 배포 직전에 30분 안에 수행할 수 있는 디자인 QA 항목이다. 전문 디자이너의 리뷰를 대체하지 않지만, "AI가 만든 티"의 80%는 이것만으로 제거된다. 6개 카테고리, 24개 항목.
-
01
모든 색상이 CSS 변수로 정의되어 있는가?하드코딩된 #hex 값이 있으면 디자인 드리프트의 시작이다. 검색: 정규식 #[0-9a-fA-F]{3,8}
-
02
accent color가 1~2가지 이내인가?AI는 섹션마다 다른 accent를 쓰는 경향이 있다. 전체 앱에서 하나의 primary, 하나의 destructive면 충분하다.
-
03
텍스트/배경 색상 대비가 4.5:1 이상인가?WCAG AA 기준. Chrome DevTools > Rendering > CSS Overview에서 한 번에 확인 가능.
-
04
그라디언트를 쓰고 있다면, 정말 필요한가?AI가 넣은 그라디언트의 90%는 불필요하다. 단색으로 바꿔보고, 더 나으면 단색을 유지하라.
-
05
폰트가 2종 이내인가?본문 1종 + 모노스페이스(코드/라벨용) 1종이면 충분하다. 3종 이상은 시각적 혼란.
-
06
한글 폰트의 line-height가 1.8 이상인가?영문 기준 1.5는 한글에서 답답하다. 본문은 1.8~2.0, 제목은 1.2~1.4가 적절하다.
-
07
제목 위계가 h1 → h2 → h3 순서대로인가?AI는 종종 h1을 여러 개 쓰거나 h2 없이 h3을 바로 쓴다. SEO와 접근성 모두에 영향.
-
08
font-variant-numeric: lining-nums를 적용했는가?올드스타일 숫자(1234가 위아래로 춤추는 현상)는 한국어 콘텐츠에서 어색하다.
-
09
padding/margin이 4px 또는 8px 배수 단위인가?AI는 13px, 17px 같은 임의 값을 쓰는 경향이 있다. 4/8/12/16/24/32/48/64 체계로 통일.
-
10
같은 역할의 요소가 같은 간격을 가지는가?카드 A는 padding 16px, 카드 B는 padding 20px — 이런 불일치가 "AI스러운" 느낌의 원인.
-
11
요소 간 간격이 충분한가?AI는 여백을 아끼는 경향이 있다. 섹션 간 최소 48px, 문단 간 최소 24px 확보.
-
12
콘텐츠 영역 최대 너비가 설정되어 있는가?본문 텍스트가 전체 화면을 가로지르면 읽기 어렵다. 산문은 max-width 680px, 레이아웃은 1200px 권장.
-
13
320px 화면에서 가로 스크롤이 없는가?Chrome DevTools > Device Mode에서 iPhone SE(375px)와 Galaxy Fold(280px) 확인.
-
14
멀티 컬럼 그리드가 모바일에서 1열로 전환되는가?인라인 style로 grid-template-columns를 지정하면 미디어쿼리가 작동하지 않는다. CSS 클래스 필수.
-
15
터치 타겟이 44px 이상인가?Apple HIG 기준 최소 44x44px. AI가 만든 작은 링크/버튼은 모바일에서 누르기 어렵다.
-
16
텍스트가 잘리거나 넘치지 않는가?overflow: hidden이 중요한 텍스트를 숨기고 있지 않은지. 한글은 영문보다 글자 폭이 넓어 잘림 빈도가 높다.
-
17
모든 이미지에 의미 있는 alt 텍스트가 있는가?AI가 생성한 alt="image" 또는 alt=""를 전수 검사. 장식용 이미지만 alt="" 허용.
-
18
Tab 키로 모든 인터랙티브 요소를 순회할 수 있는가?Tab을 눌러보라. focus ring이 보여야 하고, 논리적 순서로 이동해야 한다.
-
19
시맨틱 HTML을 사용하는가?div로만 이루어진 구조가 아닌지. button, nav, main, article, section, header, footer 확인.
-
20
Lighthouse Accessibility 점수가 90 이상인가?Chrome DevTools > Lighthouse > Accessibility. 90 미만이면 심각한 접근성 이슈가 있다.
-
21
CLS(Cumulative Layout Shift)가 0.1 이하인가?폰트 로딩으로 레이아웃이 밀리지 않는지. font-display: optional + preload가 가장 확실한 해법.
-
22
이미지에 width/height가 명시되어 있는가?이미지 크기를 예약하지 않으면 로딩 시 레이아웃이 뛴다. loading="lazy" 속성도 확인.
-
23
모든 버튼/링크에 hover 효과가 있는가?hover 없는 인터랙티브 요소는 사용자에게 "작동하는가?" 의심을 준다. opacity 0.8이라도 넣어라.
-
24
transition이 자연스러운가?0ms(즉시 변환)는 기계적이고, 500ms 이상은 느리다. 150~300ms, ease-out이 자연스럽다.
24개 항목, 30분.
이것만으로 "AI가 만든 티"의
80%가 사라진다.
비주얼 리그레션 테스팅
체크리스트는 수동이다. 매 배포마다 24개를 확인하는 것은 현실적이지 않다. 자동화가 필요하다. 비주얼 리그레션 테스팅은 코드 변경 전후의 스크린샷을 비교해서 의도하지 않은 시각적 변화를 잡아내는 방법이다.
그러나 1인 메이커에게 Chromatic이나 Percy는 과할 수 있다. 간소화 버전이 있다. AI에게 스크린샷을 주고 디자인 리뷰를 요청하는 것이다. Claude나 GPT-4V는 스크린샷을 분석해서 간격 불일치, 색상 문제, 정렬 오류를 잡아낼 수 있다.
이 방법은 완벽하지 않지만, 비용 0원으로 1분 안에 피드백을 받을 수 있다. Playwright MCP를 사용하면 이 과정을 자동화할 수도 있다 — 코드 변경 후 자동으로 스크린샷을 찍고, AI가 이전 버전과 비교하고, 문제가 있으면 경고를 보내는 파이프라인이다.
MVP에서 제품으로
이 시리즈의 첫 편에서 시작한 질문으로 돌아간다. "바이브 코딩으로 만든 것을 어떻게 제품으로 만드는가?"
답은 인디해커들의 실전에 있다. 성공한 1인 메이커들은 놀라울 정도로 비슷한 패턴을 따른다.
공통 패턴이 보인다. 디자인 퀄리티보다 문제 해결이 수익을 만든다. 그러나 "최소한의 일관성"은 반드시 필요하다. 사용자는 "못생긴 것"은 용서하지만, "불일치하는 것"은 불신한다. 버튼 색이 페이지마다 다르고, 간격이 들쭉날쭉하면 — 기능이 아무리 좋아도 사용자는 "이거 믿을 수 있나?"를 의심한다.
하이브리드 모델을 제안한다. AI로 빠르게 만들고, 검증된 부분만 정밀하게 다듬는다.
이 우선순위의 핵심은 "모든 것을 한 번에 완벽하게 만들려 하지 않는다"는 것이다. 전환 화면을 먼저 다듬고, 나머지는 사용자 피드백이 쌓이면 그때 개선한다. 데이터 없이 디자인을 다듬는 것은 AI에게 "예쁘게 만들어"라고 하는 것과 같다 — 방향 없는 노력이다.
시리즈 전체를 관통하는 원칙은 하나다.
빠르게 검증하고, 정밀하게 측정하고,
의도적으로 확장하라.
AI는 속도를 준다. 방향은 당신이 정한다. CSS 변수 8개, 규칙 파일 1개, 체크리스트 24항목. 이것이 디자이너 없이 제품을 만드는 최소한의 도구다.