
React와 Vue 사이에서 갈등하는 개발자를 위한 현실적인 디자인 시스템 운영 가이드
멀티 프레임워크 환경에서 디자인 시스템을 구축하고 운영하며 겪은 실전 시행착오를 담고 있습니다. 'Headless Core + Adapter' 구조의 이상과 현실적인 운영 비용 사이의 간극을 어떻게 해결했는지, 그리고 왜 운영 범위를 차등화했는지에 대한 전략적 의사결정 과정을 공유합니다.
디자인 시스템을 여러 프레임워크에 동시에 배포해야 하는 상황에서 유지보수 리소스 부족을 겪는 팀에게 강력히 추천합니다. 기술적인 아키텍처 설계만큼이나 '운영 가능한 범위'를 정의하는 것이 얼마나 중요한지 깨닫게 해줍니다.
레거시 Vue 프로젝트와 신규 React 프로젝트가 공존하는 환경에서 디자인 시스템 업데이트를 프로젝트별로 반복 반영해야 하는 높은 운영 비용이 발생했습니다. 초기에는 모든 프레임워크에 동일한 컴포넌트를 제공하고자 했으나, 구현 및 QA 비용이 배로 늘어나며 릴리즈 리드타임이 길어지는 한계에 직면했습니다.
모든 레이어를 동일하게 지원하는 대신, 운영 가능한 범위를 선택하는 전략으로 전환했습니다. React 컴포넌트를 운영의 축으로 삼아 집중 개발하고, Vue 환경에서는 디자인 토큰, 스타일 유틸리티, SVG 아이콘 등 파운데이션 레이어만을 소비하도록 구조를 재정의했습니다.
컴포넌트 변경 흐름이 단순해져 신규 요구사항 반영 속도와 릴리즈 예측 가능성이 크게 개선되었습니다. 동시에 파운데이션 공통화를 통해 프레임워크와 상관없이 시각적인 일관성을 유지할 수 있는 기반을 마련했습니다.
Trade-off
모든 프레임워크를 완벽하게 동일한 수준으로 지원하겠다는 초기 목표를 포기했으며, Vue 환경에서의 컴포넌트 레벨 즉시 확장성을 일부 제한했습니다. 이는 시스템의 이상적인 형태보다 팀이 장기적으로 감당할 수 있는 지속 가능한 품질을 선택한 결과입니다.
UI 로직과 상태 관리 등 핵심 기능은 Core 패키지에 담고, React나 Vue 같은 프레임워크는 이를 연결하는 어댑터 역할만 수행하는 구조입니다.
디자인 시스템의 가장 기초가 되는 요소들로, 색상(Color), 타이포그래피(Typography), 그림자(Shadow) 등 시각적 규칙을 의미합니다.
모든 기술 스택에 동일한 수준의 지원을 제공하는 대신, 팀의 역량과 필요도에 따라 지원 범위를 차등 설계하는 전략입니다.




