Files
2nd/00_Raw/Uber.md
T

3.9 KiB

Uber

📌 Brief Summary

Uber는 수백 개의 내부 웹 애플리케이션과 모바일 앱 전반에 걸쳐 일관되고 확장 가능한 UI를 구축하기 위해 Base Web이라는 자체 React 컴포넌트 라이브러리 및 디자인 시스템을 구축한 기업입니다 [1, 2]. 대규모 컴포넌트 라이브러리를 효율적으로 관리하기 위해 'Overrides API' 아키텍처 패턴을 도입하여 무분별한 prop 증가 없이 높은 수준의 컴포넌트 맞춤화(Customization)를 달성했습니다 [3-5]. 또한 확장 가능한 프론트엔드 유지를 위해 'uSpec'이라는 AI 에이전트 시스템으로 디자인 스펙을 자동화하고, '디자인 시스템 관측성(Design System Observability)' 도구를 통해 사내 디자인 시스템의 채택률을 엔지니어링 지표 수준으로 관리하고 있습니다 [6-9].

📖 Core Content

  • Base Web과 Overrides 패턴 (재사용 가능한 UI 아키텍처) Uber의 Base Web은 접근성과 신뢰성을 갖춘 React 기반의 오픈소스 UI 컴포넌트 라이브러리로, 내부적으로 'Styletron'을 사용해 원자적(atomic) 스타일링을 적용합니다 [2, 10]. 다양한 애플리케이션의 복잡한 요구사항을 수용하기 위해 Uber는 Overrides 패턴을 도입했습니다 [3, 5]. 이 패턴은 컴포넌트 내부의 하위 요소(sub-element)에 식별자를 부여하고, 개발자가 최상위 수준에서 overrides 속성을 통해 하위 요소에 추가 속성을 전달하거나 스타일을 덮어쓰고 컴포넌트 전체를 교체할 수 있게 해줍니다 [4, 5, 11]. 이를 통해 'Prop Soup(무분별한 속성 과부하)' 현상을 방지하고, 유지보수가 용이한 확장성 있는 프론트엔드 환경을 구성했습니다 [4, 5].

  • AI 기반 디자인 토큰 및 스펙 자동화 (uSpec) Uber는 7개의 구현 스택과 수백 개의 컴포넌트를 다루는 과정에서 사양(spec) 문서화의 병목 현상을 해결하기 위해, Cursor AI 에이전트와 Figma Console MCP를 결합한 uSpec을 구축했습니다 [6, 12, 13]. 이 시스템은 Figma 파일에서 직접 디자인 토큰, 변수 구조, 컴포넌트 부모-자식 관계를 읽어와 해부도(Anatomy), 속성, 접근성(스크린 리더) 스펙 등을 단 몇 분 만에 자동 생성합니다 [8, 14, 15]. 이를 통해 디자인 의도(Design intent)와 엔지니어링 구현 사이의 간극을 줄였습니다 [16].

  • 디자인 시스템 관측성 (Design System Observability) 대규모 프론트엔드 환경에서 일관된 UI를 유지하기 위해, Uber는 코드 및 UI 수준에서 디자인 시스템 채택률을 정량적으로 측정하는 관측성(Observability) 시스템을 도입했습니다 [7]. 'Deterministics Counter'라는 알고리즘을 사용해 앱의 뷰 트리를 탐색하며 Base 컴포넌트와 비표준 커스텀 컴포넌트의 사용을 시각적으로 강조 및 집계합니다 [9, 17, 18]. Base 컴포넌트 사용 시 개발 속도가 3배 빠르고 코드를 50%나 줄일 수 있으며, 이러한 지표 자동화를 통해 디자인 품질 지표를 엔지니어링 및 비즈니스 성능 지표와 동등한 수준으로 끌어올렸습니다 [9, 19, 20].

🔗 Knowledge Connections


Last updated: 2026-04-26