자동화를 전제로 한 컴포넌트 설계
디자인 시스템을 만들면서 계속 하나의 질문에 부딪혔습니다. 디자인 팀은 어디까지 책임져야 할까 기존 방식대로라면 시안을 보기 좋게 만들고, 구조 해석과 구현은 개발 단계에서 알아서 진행하도록 두는 것도 가능했습니다. 디자인은 결과물을 만들고, 시스템은 코드에서 완성되는 구조였습니다. 하지만 사내 프로젝트로 Figma MCP, Code Connect처럼 시안을 그대로 코드로 연결하는 환경을 전제로 하다 보니 이 방식이 더 이상 충분하지 않다는 점을 점점 체감하게 되었습니다. 그래서 이번 Select 컴포넌트를 설계하면서, DS를 새로 만들어보며 처음으로 시안 구조 자체를 코드 구조에 가깝게 가져가는 방향을 선택했습니다. 이 시점부터 Figma 시안을 단순한 화면 디자인이 아니라, 앞으로 반복적으로 재사용될 시스템 정의로 바라보기 시작했습니다. 디자인 팀 내부에서도 "이건 그냥 화면 디자인이 아니라, 앞으로 계속 재사용될 시스템 정의에 가깝다"는 이야기를 자주 나누게 되었습니다. 그 결과 시안을 설계할 때의 기준도 달라졌습니다. "이게 예쁜가 저게 예쁜가"보다 "이 레이어가 어떤 역할을 맡고 있는가"를 먼저 정리하게 되었습니다. 컴포넌트를 구성하는 레이어들은 시각적 그룹이 아니라 역할 기준으로 나누어 정의했습니다. 클릭을 담당하는 영역은 ListboxButton 옵션 패널은 ListboxOptions 반복되는 옵션 단위는 ListboxOption 레이어 이름과 annotation 역시 DOM 구조를 직접 지시하는 방식은 의도적으로 피하고, Headless UI에서 정의하는 역할 단위와 맞추는 방향을 선택했습니다. 이 방식은 Figma MCP 기준에서도 효과적이었고, 디자인 팀 입장에서도 "이 컴포넌트의 구조를 우리가 정의하고 있다"는 감각을 가질 수 있었습니다. 이 과정에서 또 하나의 태도 변화가 있었습니다.
- YJ
