은전 한 닢 - LLM으로 디자인시스템 만들기 part 1

무슨 생각으로 이런일을 벌이셨어요

무슨 생각으로 이런 일을 벌이셨어요?

이런 저런 이유로 개인프로젝트도 몇개 만들어보고 했지만, 계속 눈에 밟힌게 바로 디자인시스템이다.

나름 업계에서 일해오면서 꾸준히 스터디하면서 트렌드 잘 따라왔다고 생각한다.
틈틈이 공부해서 디자인 시스템이 어떻게 구성되고, 어떻게 구축/관리되어야 하고 등등 지식은 어느 정도 있었지만 실제로 내가 만들고 운영해 본 적은 없었기 때문일까, 늘 뭔가 아쉬운 영역으로 머릿속에 남아있었다.
LLM 도움 받아서 개발작업들을 하기 쉬워졌으니만큼, 그 때 그때 써먹을 내 디자인시스템이 있으면 좋겠다는 생각으로, 마침 시간도 많았고, 시작해보았다.

은전 한 닢
이게 내 은전 한닢인가 보다.

시작하면서, 몇 가지 선택

전통적인 방식처럼 밑바닥부터, 토큰을 하나 하나 골라가면서 (특히 컬러값을 일일이 pick하면서) 진행할 생각은 애시당초 없었다. 좋은 오픈소스 베이스로 한 벌을 만들고, 내 취향이나 필요에 맞게 고쳐나가겠다는 생각이었다.
다만 한가지, 컬러값은 필요에 따라 바꿀 필요가 있으니 그 부분을 강조해서 프롬프트를 짰던 것 같다.
대강 이런 내용이다.

이 프로젝트는 개인 사용 목적으로 shadcn ui에 기반한 코드형태의 디자인 시스템을 만들고, storybook으로 형태를 시각화/preview하고, figma에서 활용할 수 있도록 figma에 library를 구축하고 싶어. 어떻게 진행해야 좋을 지 도와줘.

이런일에는 딱 적합한 /wayfinder 스킬을 썼다. 궁금하신 분은 이 글을 보고 오시면 된다.

여러가지 고민이 있었지만 핵심 결정사항은

세 축이었다. 그리고 이 중 하나가 재앙을 불러오는데...

첫 시작단계에서의 grilling 세션 대화.
Color Ramp Generator
Color Ramp 및 Brand Color 세팅을 위한 툴 프로토타이핑. "딸깍"의 산물이다.

생각과 달랐던 것, 그리고 실수들.

shadcn/ui라는 de-facto standard를 갖다가 쓰는거다보니 금방 끝날 줄 알았다. 웬걸. 크게 세 tier로 그룹을 나눠서 순차적으로 진행해야만 했고, 이때만 해도 pro tier를 쓰고 있었는데 지금까지 했던 그 어떤 작업보다 토큰 소모속도가 빨랐고, 한 작업을 시켰을 때 대기해야 하는 시간도 길었다.
내가 했던 실수들은 다음과 같았다.

  1. Figma Sync를 매 수정마다 진행했다. 나중에 깨달았지만, Figma와 sync하는 작업에서 MCP구조가 비효율적인지, json타입으로 원하는 작업을 변환할 때 미친듯한 토큰을 소모하는거였다.
  2. LLM에 끌려다녔다. 작업을 시키고 나서 마무리단계에서 PR 머지할때쯤 "아 작업범위는 아니긴 한데, 하다보니까 이런 문제가 눈에 보여서. 원하면 이슈로 올려줄께."라고 LLM이 말한다. 여기서 이왕이면 다홍치마 병이 여기서 발생하면 돌이킬 수 없다. 난 결국 안 해도 되는 이슈 수십개를 만들고 해결한 뒤에, 실제 화면에 영향을 준건 아무것도 없었다는걸 깨닫고 나서야 이 문제를 깨달았다. 시간은 며칠이 흘러 있었고, 일주일 치 토큰의 절반을 쏟아부었는데 실질적인 변화는 없고, 코드 정합성만 조금 올라갔다.
  3. (이건 나중에 결국 반영하게 되는거긴 하지만) ‘소비처’, 즉 이 디자인시스템을 만들고 적용할 서비스가 있어야 한다고 누누이 LLM은 강조했는데, 씹었다. 빨리 디자인 시스템에 포함된 component를 늘리는게 중요하다고 생각했어서. 근데 이건 나중에 이 시스템이 '잘 만들어 졌는지' 판단할 근거가 없다는 문제를 낳았다. 나중에 또 다룬다.
github 이슈 이미지
이 때만 해도 금방 끝날 줄 알았지...

그래도, 중간 결과물.

다른 프로젝트들에 비하면 정말 많은 시간과 노력과 삽질과 토큰과... 많은 일들이 있었지만 결과물 자체는 영 어중간했다. 직접 살펴보자.

Storybook 이미지
Storybook의 'Button' 명세. 뭔가 어색하지?
Figma Library 스크린샷
이게 라이브러리..? Component 만 나열된 썰렁한 Figma화면.
고개를 젓는 김정은
쓰읍.. 이건 아닌데

쓰읍.. 이게 아닌데

원래 뭐든 프로젝트 시작하기 전에 조사부터 해야 했는데, 이번에는 너무 의욕이 앞섰고, shadcn을 써 본 경험이 “그정도면 충분하지”라는 생각으로 이어졌다.
왜 이렇게 마음에 안 들까를 생각하다가 찾아본 Storybook Best Practice들과의 차이는 구성부터 너무 명확했다. 몇 가지만 소개해 보자면, Microsoft의 Fluent UI, GOV.UK의 디자인시스템, IBM의 Carbon도 있다.

그리고 무엇보다도, 이 디자인시스템이 조합된 화면을 보지 못했다는게 더 큰 허전함과 불확실성을 줬다.

그렇게 며칠이 지나고...
(다음편에 계속)

gov.uk의 design system
내가 생각하는 잘 만들고 잘 구성된 디자인시스템의 예시 - GOV.UK의 것. 구성부터 다르다.