
핵심요약
디자인 시스템(TDS)은 조직 성장에 따른 제약과 우회 문제에 직면하며 관점 전환의 필요성을 느꼈습니다. 디자인 시스템을 '제품'으로 인식하고, 통제 대신 유연한 확장을 지원하기 위해 Flat API와 Compound API를 결합한 하이브리드 전략을 채택했습니다.
디자인 시스템 다시 생각해보기: 통제에서 유연한 확장으로
디자인 시스템의 현실적 어려움
- 초기 목표: 일관된 UI, 빠른 개발 속도, 효율적인 협업.
- 조직 성장 및 제품 다양화 시 발생 문제:
- 컴포넌트의 제약으로 인한 우회 (Figma detach, 패키지 fork).
- 시스템 업데이트 미반영으로 인한 비일관성 초래.
- 해결책: 강력한 규칙 강화가 아닌, 디자인 시스템 관점의 전환 필요.
디자인 시스템은 '제품'이다
- 디자인 시스템 팀: 공급자, 제품 팀: 수요자.
- 수요자의 니즈에 맞는 공급이 중요 (서비스 개발과 동일한 관점).
- 우회는 '일탈'이 아닌, 시스템의 유연성 부족 신호.
- 중앙 통제 방식의 한계: 제약 강화는 문제 해결이 아닌, 우회할 이유를 줄이는 설계 필요.
확장성을 위한 API 설계
1) Flat 패턴
- 장점: 직관적인 사용, 대부분의 변형을 props로 제공.
- 단점: 끝없이 늘어나는 props, 예측 못한 요구사항 대응 어려움.
2) Compound 패턴
- 장점: 하위 컴포넌트 조합으로 유연한 구조 생성, 확장 지점 제공.
- 단점: 구현 난이도 및 코드량 증가, 학습 곡선 존재.
하이브리드 전략: Flat과 Compound의 결합
- 단순/자주 쓰는 케이스: Flat API 제공.
- 복잡/변형 잦은 케이스: Compound API 제공.
- 내부 구현은 동일 primitive 레이어 재사용, 외부 API는 최적화.
결론
- 디자인 시스템은 팀을 단속하는 '울타리'가 아닌, 제품 문제 해결을 돕는 '가드레일' 역할.
- 중앙 통제 방식에서 벗어나, 수요에 맞는 유연한 확장을 지원하는 디자인 시스템 설계.
- '어떤 패턴이 옳은가'가 아닌, '언제 어떤 선택이 적절한가'에 집중.