TDS, 디자인 시스템의 유연한 확장을 위한 하이브리드 API 전략
디자인 시스템(Design System)의 경직성으로 인해 제품팀이 시스템을 우회하는 문제 발생
디자인 시스템을 제품으로 간주하고, 수요에 맞는 공급을 제공하는 관점 전환(Perspective Shift)의 필요성을 강조
Flat API와 Compound API를 함께 제공하는 하이브리드 전략을 통해 유연한 확장성 확보
TDS는 Flat API를 Compound API로 조립하여 유지보수 부담(Maintenance Burden) 감소 및 사용자 경험 최적화
디자인 시스템의 경직성 문제
본문에서는 디자인 시스템이 조직의 성장과 제품 다양화에 따라 경직되어, 제품팀이 시스템을 우회하는 상황을 지적한다. Figma 컴포넌트 detach 및 디자인 시스템 패키지 fork를 통해 시스템의 업데이트를 받지 못하는 문제가 발생한다. 이는 효율성을 위해 만들어진 시스템이 새로운 마찰의 원인이 되는 상황을 보여준다. 디자인 시스템은 팀을 단속하는 것이 아니라, 제품 문제를 풀 수 있도록 지원해야 한다.
Flat API의 한계와 Compound API의 등장
Flat API는 사용이 직관적이지만, 시스템이 상정하지 않은 요구사항 발생 시 props가 무한정 늘어나는 단점이 있다. 반면, Compound API는 하위 컴포넌트를 조합하여 유연성을 확보하지만, 구현 난이도와 코드량이 증가하는 단점이 존재한다. Flat API는 단순하고 자주 사용되는 케이스에 적합하며, Compound API는 복잡하고 변형이 잦은 케이스에 적합하다. TDS는 이러한 각 API의 장단점을 고려하여 하이브리드 전략을 채택했다.
하이브리드 API 전략: Flat과 Compound의 공존
TDS는 Flat API와 Compound API를 함께 제공하는 하이브리드 전략을 통해 유연성을 확보했다. 사용자는 상황에 따라 적절한 API를 선택할 수 있으며, 이는 확장성(Extensibility)을 높이는 핵심 요소이다. Flat API를 Compound API로 조립하여 내부 구현을 동일하게 유지함으로써, 유지보수(Maintenance) 부담을 줄이고 사용자 경험을 최적화한다. 이러한 접근 방식은 디자인 시스템의 지속 가능한 성장을 위한 중요한 전략이다.
확장성을 결정짓는 컴포넌트 API 설계
확장성은 컴포넌트 API 설계에 달려 있으며, Flat과 Compound API는 각기 다른 장단점을 가진다. Flat API는 사용 편의성이 높지만, 유연성이 부족하다. Compound API는 유연성이 뛰어나지만, 구현 복잡도가 높다. TDS는 이러한 트레이드오프를 고려하여, Flat API를 Compounds로 조립하는 방식을 통해 두 가지 API의 장점을 모두 활용한다. 이는 디자인 시스템의 지속 가능한 확장성(Sustainable Extensibility)을 위한 핵심 전략이다.