PMS · Design System
AI(Claude)가 디자인 시스템을 지키게 만드는 거버넌스 프로세스 구축
개요
PMS(Patient Management System)를 AI(Claude)로 리디자인하는 프로젝트를 진행하며, AI(Claude)가 PMS의 디자인 시스템을 그대로 따르도록 하는 규칙을 문서로 만들고, 디자인 생성 전에 디자인을 검증하는 절차를 세웠습니다. 디자인 이해도에 상관없이 매번 동일한 토큰과 컴포넌트를 사용하게 하여 디자인 일관성과 제작 속도를 동시에 향상시켰습니다.
문제
AI(Claude)를 사용하여 디자인 시, 어떻게 하면 사용자의 프롬프트를 충실히 따르면서도 기존 프로덕트 디자인의 결을 잃지 않도록 할 수 있을까요?
디자인 시스템을 학습시켰음에도 AI(Claude)의 디자인 결과물은 안정적이지 않았습니다. 토큰 하나를 빠뜨리거나 컴포넌트를 임의로 만들어내고, 심지어 동일한 프롬프트에도 세션마다 다른 디자인이 나오는 경우가 반복됐습니다. PMS는 이런 불안정성이 특히 치명적인 서비스였습니다. 병원 원무과 직원, 의사, 기업 고객 등 다양한 사용자가 얽혀 있고 과금 기능까지 포함된 헬스케어 어드민 소프트웨어이기 때문입니다.
반복된 문제
같은 시스템인데 사람·세션마다 디자인 결과물이 다르다.
PMS에서 이 문제가 치명적인 이유
'추적관찰보고서'와 같이 실제 환자에게 발송하며 발송 건당 과금이 되는 기능이 존재합니다. 섬세하게 다뤄야 하는 기능이 많습니다.
프로세스 · 첫 시도
프롬프트만 계속 고쳐선 해결되지 않았습니다.
PMS의 '추적관찰보고서' 페이지를 리디자인하기로 결정한 후, Claude로 페인 포인트를 포함한 PRD 문서를 작성했습니다. (기획문서가 부재했기 때문에 PM님께 해당 페이지의 기획 의도를 여쭌 후 진행했습니다.) 해당 페이지의 '필터'가 수정이 필요하다는 결론이 도출되었고, PRD 문서를 첨부하여 Claude Code로 필터를 리디자인했습니다. 그 결과 해당 페이지의 필터 자체는 기존의 UI 규칙을 지키며 개선된 버전이 그려졌습니다. 그러나 개선 요청 범위가 아니었던 LNB·헤더·아이콘이 원본과 다르게 다시 그려졌습니다. 이를 해결하기 위해 프롬프트를 거듭 수정해야 했고, 이 과정에서 업무 부담이 쌓였습니다.
프롬프트 요청 내용
'추적관찰보고서' 페이지의 필터 부분을 개선해달라. (개선 배경은 PRD 문서, 클로드 코드에 요청)
요청 결과
필터는 개선 배경과 의도한 방향을 맞추어 잘 개선되었지만 프롬프트 요청 내용이 아니었던 LNB·헤더·아이콘이 디자인 시스템을 지키지 않은 채로 도출되었다.
세션마다 프롬프트로 요청한 내용 외의 것들이 디자인 시스템을 지키지 않고 도출됨을 확인하고, AI(Claude)가 무시할 수 없는 계약(contract) 문서의 필요성을 깨달았습니다.
프로세스 · 시스템
그래서 계약을 지키게 만드는 실행 하네스를 만들었습니다.
시스템을 9개의 MD 문서로 나누고, 요청이 들어올 때마다 DOC1의 역할사전부터 DOC7의 생성 게이트까지 순서대로 통과하도록 만들었습니다. 어느 단계든 기준을 어기면 그 자리에서 멈추고 재시도하도록 설계해, AI(Claude)가 임의로 다음 단계로 넘어갈 수 없게 했습니다.
추상화 레이어 · DOC1
편집자는 토큰·컴포넌트를 몰라도 역할 이름만 작성하면 되고, AI(Claude)가 이를 정확한 토큰·컴포넌트로 매핑합니다. 요청자의 디자인 시스템 이해도와 상관없이 같은 결과가 나오게 하기 위해서입니다.
생성 게이트 · DOC7
AI(Claude)가 그리기 전에 PASS / FAIL 사전 점검을 출력하고, 하나라도 실패하면 중단합니다.
드리프트 방지
원본 디자인은 수정할 수 없게 잠가두고, 새로 추가하려는 요소는 별도 실험 공간에서 먼저 시험해본 뒤, 사람이 검토해야만 정식으로 반영합니다.
복원 기준점 설정
원본 디자인 스펙을 하나로 고정해두고, 문제가 생기면 언제든 그 원본으로 되돌릴 수 있게 했습니다.
새 컴포넌트가 원본 컴포넌트 문서에 추가되려면 반드시 사람의 승인을 거치게 하여, AI(Claude)가 아무도 모르게 원본 디자인을 임의로 바꾸는 것을 막았습니다. 승인 없이 변경이 쌓이면 세션을 거듭할수록 원본과의 격차가 벌어지고, 나중에는 디자인을 관리하기 어려워질 수 있었기 때문입니다.
적용 사례
개선 범위였던 필터만 개선되었습니다.
앞서 만든 하네스를 실제로 적용해, 처음 시도했던 '추적관찰보고서' 필터 개선을 다시 진행했습니다. 이번에는 자연어로 된 새 프롬프트를 작성하여, 하네스가 이를 MD 문서 플로우에 따라 DOC1의 역할사전부터 DOC7의 생성 게이트까지 순서대로 체크한 후 디자인이 나오도록 했습니다. 그 결과 필터 요약 줄과 칩-탭 동기화가 담긴 개선안이 잘 그려졌습니다.
적용된 필터 요약 줄 + 칩-탭 동기화. [LAB-추적-003]으로 기록, 게이트 리뷰 중.
검증
프롬프트가 달라도 디자인 결과물은 안정적이었습니다.
사용자마다 디자인 시스템 이해도가 다르고, 디자인 직무가 아닌 사람도 요청을 넣을 수 있었기 때문에 프롬프트가 제각각이어도 디자인이 안정적으로 나오는지 확인이 필요했습니다. 그래서 DOC1(역할사전)을 거치지 않고 PRD를 바로 전달하는 경로를 만들어, DOC1을 거치는 경로와 비교했습니다. 그 결과 두 경로 모두 모든 규칙(토큰, 컴포넌트 계약, LAB/승격 라인, 생성 게이트)을 지킨 디자인을 만들어냈고, DOC1 하나에 기대지 않아도 결과가 유지된다는 것을 확인했습니다.
경로 A · 원본
PRD를 그대로 Claude에 전달.
경로 B · DOC1 경유
같은 PRD를 DOC1(역할사전) 형식에 맞춰 역할 이름 요청으로 재구성해 전달.
DOC1을 타지 않아도 생성 게이트와 토큰 같은 다른 규칙들이 그대로 작동했기 때문입니다.
성과
일관성은 높이고, 작업 시간은 줄이고, 협업은 쉬워졌습니다.
시스템 구조를 탄탄하게 만들어 일관성 있는 디자인 결과물을 뽑아낼 수 있었습니다. 불필요한 디자인 수정 과정이 줄어들어 작업 시간이 단축되었습니다. 작업 기록이 문서에 남도록 설계하여 다른 팀원이 작업할 때도 맥락을 이해하고 작업할 수 있어 커뮤니케이션 시간을 줄여 작업 효율성을 높였습니다.