Files
2nd/00_Raw/Base Web.md
T

3.9 KiB

Base Web

📌 Brief Summary

Base Web은 수많은 내부 웹 애플리케이션의 일관성을 유지하기 위해 우버(Uber)에서 개발하고 2018년에 오픈소스로 공개한 React 컴포넌트 라이브러리이자 디자인 시스템입니다 [1-3]. 기기에 구애받지 않는 범용적인 기반을 제공하여, 프론트엔드 개발자들이 반복적인 UI 구축 작업을 피하고 안정적이며 접근성이 뛰어난 웹 애플리케이션을 빠르고 쉽게 만들 수 있도록 돕습니다 [2]. 특히 복잡한 컴포넌트의 커스터마이징 시 발생하는 속성(prop) 비대화 문제를 해결하기 위해 고유한 '오버라이드(Overrides)' 패턴을 사용하는 것이 핵심적인 특징입니다 [4, 5].

📖 Core Content

  • 도입 배경 및 효율성 증대: 우버는 사내 수백 개의 애플리케이션을 운영하면서 발생하는 개발 리소스 낭비와 UI 불일치를 줄이고자 공통된 디자인 언어를 담은 Base Web을 구축했습니다 [1, 6]. 내부 데이터에 따르면, 커스텀 컴포넌트를 구축하는 것에 비해 개발 속도는 3배 빠르고, 시각적 불일치는 4배 감소하며, 코드 양을 50%나 줄여주는 강력한 생산성 향상 효과를 보였습니다 [7].
  • 신뢰성(Reliability) 및 접근성(Accessibility) 보장: 모든 React 컴포넌트에 시각적 회귀(visual regression) 테스트를 거치며, Puppeteer를 활용한 종단 간(E2E) 테스트를 수행하여 픽셀 단위의 정확성과 버그 없는 환경을 보장합니다 [8]. 또한 키보드 탐색과 화면 판독기(screen reader), ARIA 역할을 완벽히 지원하여 접근성 기준을 충족합니다 [9, 10]. 모바일 환경 및 네트워크가 열악한 사용자를 위해 Styletron을 적용, 아토믹(atomic) 스타일링으로 번들 크기를 최적화합니다 [9].
  • 확장 가능한 아키텍처: 오버라이드(Overrides) 패턴: 재사용 가능한 UI 컴포넌트 설계 시 무수히 많은 속성이 누적되는 "prop soup" 현상을 방지하기 위해 Base Web의 모든 컴포넌트는 overrides prop을 노출합니다 [5, 11]. 이 패턴을 통해 개발자는 새로운 속성을 추가하지 않고도 컴포넌트 내부의 특정 하위 요소(sub-element)에 커스텀 속성이나 스타일을 주입할 수 있으며, 심지어 내부 컴포넌트 자체를 완전히 다른 프레젠테이션 컴포넌트로 교체할 수도 있습니다 [12-14]. 이는 최상위 API를 깔끔하게 유지하면서도 고도의 커스터마이징을 가능하게 합니다 [12].
  • 디자인 시스템 관측성(Observability): 우버는 대규모로 디자인 시스템의 채택을 장려하기 위해 'Base Counter'라는 도구를 도입했습니다 [15, 16]. 이는 화면의 뷰 트리를 분석하여 Base 컴포넌트와 일회성 커스텀 컴포넌트의 사용 비율을 결정론적으로 측정하며, 디자인 품질 지표를 엔지니어링 지표와 동일한 수준으로 관리하여 확장 가능한 프론트엔드 관리를 실현합니다 [15, 17, 18].

🔗 Knowledge Connections


Last updated: 2026-04-26