#Frontend

멀티 프레임워크 디자인 시스템, 결국 운영 가능한 구조를 선택한 이유

멀티 프레임워크 디자인 시스템, 결국 운영 가능한 구조를 선택한 이유
01

Summary

완벽한 공통화는 환상이었다? 디자인 시스템 운영의 '선택과 집중' 전략

React와 Vue 사이에서 갈등하는 개발자를 위한 현실적인 디자인 시스템 운영 가이드

멀티 프레임워크 환경에서 디자인 시스템을 구축하고 운영하며 겪은 실전 시행착오를 담고 있습니다. 'Headless Core + Adapter' 구조의 이상과 현실적인 운영 비용 사이의 간극을 어떻게 해결했는지, 그리고 왜 운영 범위를 차등화했는지에 대한 전략적 의사결정 과정을 공유합니다.

  • 01프레임워크 간 중복 구현을 줄이기 위한 Headless Core 아키텍처 도입 경험
  • 02이중 구현과 동기화 비용으로 인해 발생한 릴리즈 리드타임 증가 문제 분석
  • 03React는 컴포넌트 중심, Vue는 파운데이션 중심으로 운영 모델을 과감히 피벗
  • 04Typography, Color, SVG Icon 등 재사용 가능한 파운데이션 설계 노하우
  • 05지속 가능한 개발 속도를 위한 디자인 시스템 지원 범위 설정 기준 제시

RECOMMENDATION

디자인 시스템을 여러 프레임워크에 동시에 배포해야 하는 상황에서 유지보수 리소스 부족을 겪는 팀에게 강력히 추천합니다. 기술적인 아키텍처 설계만큼이나 '운영 가능한 범위'를 정의하는 것이 얼마나 중요한지 깨닫게 해줍니다.

The Problem

레거시 Vue 프로젝트와 신규 React 프로젝트가 공존하는 환경에서 디자인 시스템 업데이트를 프로젝트별로 반복 반영해야 하는 높은 운영 비용이 발생했습니다. 초기에는 모든 프레임워크에 동일한 컴포넌트를 제공하고자 했으나, 구현 및 QA 비용이 배로 늘어나며 릴리즈 리드타임이 길어지는 한계에 직면했습니다.

The Solution

모든 레이어를 동일하게 지원하는 대신, 운영 가능한 범위를 선택하는 전략으로 전환했습니다. React 컴포넌트를 운영의 축으로 삼아 집중 개발하고, Vue 환경에서는 디자인 토큰, 스타일 유틸리티, SVG 아이콘 등 파운데이션 레이어만을 소비하도록 구조를 재정의했습니다.

The Result

컴포넌트 변경 흐름이 단순해져 신규 요구사항 반영 속도와 릴리즈 예측 가능성이 크게 개선되었습니다. 동시에 파운데이션 공통화를 통해 프레임워크와 상관없이 시각적인 일관성을 유지할 수 있는 기반을 마련했습니다.

Trade-off

모든 프레임워크를 완벽하게 동일한 수준으로 지원하겠다는 초기 목표를 포기했으며, Vue 환경에서의 컴포넌트 레벨 즉시 확장성을 일부 제한했습니다. 이는 시스템의 이상적인 형태보다 팀이 장기적으로 감당할 수 있는 지속 가능한 품질을 선택한 결과입니다.

03

Key Concepts

Concept · 01

Headless Core + Adapter Pattern

UI 로직과 상태 관리 등 핵심 기능은 Core 패키지에 담고, React나 Vue 같은 프레임워크는 이를 연결하는 어댑터 역할만 수행하는 구조입니다.

  • 패키지별 역할 분리를 통해 로직의 단일 출처(Single Source of Truth) 확보
  • 프레임워크별 렌더링 방식의 차이를 캡슐화하여 대응
Concept · 02

Design Foundation

디자인 시스템의 가장 기초가 되는 요소들로, 색상(Color), 타이포그래피(Typography), 그림자(Shadow) 등 시각적 규칙을 의미합니다.

  • CSS 변수를 활용한 폰트 및 컬러 관리로 프로젝트별 유연성 제공
  • SVG 아이콘의 currentColor 정규화를 통해 프레임워크 무관한 색상 제어
Concept · 03

Operational Range Selection

모든 기술 스택에 동일한 수준의 지원을 제공하는 대신, 팀의 역량과 필요도에 따라 지원 범위를 차등 설계하는 전략입니다.

  • 지속 가능한 품질과 속도를 위해 React 컴포넌트를 주력 운영축으로 설정
  • 운영 데이터와 비용을 기반으로 프레임워크별 지원 레이어 결정