# [[Uber Base Web|Uber Base Web]] ## πŸ“Œ Brief Summary Uber Base Web은 Uberμ—μ„œ 전사적 μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ κ°œλ°œμ„ ν†΅ν•©ν•˜κ³  μž¬μ‚¬μš©μ„±μ„ 높이기 μœ„ν•΄ 2018년에 μ˜€ν”ˆ μ†ŒμŠ€λ‘œ κ³΅κ°œν•œ React μ»΄ν¬λ„ŒνŠΈ 라이브러리이자 λ””μžμΈ μ‹œμŠ€ν…œμ΄λ‹€ [1, 2]. 이 μ‹œμŠ€ν…œμ€ λ””λ°”μ΄μŠ€μ— ꡬ애받지 μ•ŠλŠ” 기반 역할을 ν•˜λ©°, μ‹ λ’°ν•  수 있고 접근성이 λ›°μ–΄λ‚˜λ©° κ΄‘λ²”μœ„ν•˜κ²Œ μ»€μŠ€ν„°λ§ˆμ΄μ§•μ΄ κ°€λŠ₯ν•œ UI μ»΄ν¬λ„ŒνŠΈλ“€μ„ μ œκ³΅ν•œλ‹€ [2]. 이λ₯Ό 톡해 μ—”μ§€λ‹ˆμ–΄λ“€μ€ 바퀴λ₯Ό λ‹€μ‹œ 발λͺ…ν•˜λŠ” 수고λ₯Ό 덜고, 수백 개의 λ‚΄λΆ€ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— 걸쳐 일관성 μžˆλŠ” μ‚¬μš©μž κ²½ν—˜μ„ 효율적으둜 ꡬ좕할 수 μžˆλ‹€ [1, 3]. ## πŸ“– Core 유Content * **λͺ©μ  및 μ‹œμŠ€ν…œ 기반:** 수백 개의 λ‚΄λΆ€ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ‚¬μš© μ‹œ λ°œμƒν•˜λŠ” ν•™μŠ΅ μ˜€λ²„ν—€λ“œμ™€ μ‹œκ°μ  뢈일치λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ κ΅¬μΆ•λ˜μ—ˆμœΌλ©°, μ—”μ§€λ‹ˆμ–΄, λ””μžμ΄λ„ˆ, ν”„λ‘œλ•νŠΈ λ§€λ‹ˆμ € κ°„μ˜ 곡톡 μ–Έμ–΄ 역할을 μˆ˜ν–‰ν•œλ‹€ [1, 2]. 색상, 크기, νƒ€μ΄ν¬κ·Έλž˜ν”Όμ™€ 같은 λ””μžμΈ 토큰과 κ·œμΉ™μ„ μ½”λ“œλ‘œ λ³€ν™˜ν•˜μ—¬ μΌκ΄€λ˜κ³  ν™•μž₯ κ°€λŠ₯ν•œ ν”„λ‘ νŠΈμ—”λ“œ μ•„ν‚€ν…μ²˜λ₯Ό μ œκ³΅ν•œλ‹€ [2, 4]. * **Overrides APIλ₯Ό ν†΅ν•œ μ»€μŠ€ν„°λ§ˆμ΄μ§•:** ν™•μž₯ κ°€λŠ₯ν•œ UIλ₯Ό μœ„ν•΄ Base Web은 '[[Overrides Pattern|Overrides Pattern]]'μ΄λΌλŠ” κ°•λ ₯ν•œ μ•„ν‚€ν…μ²˜ νŒ¨ν„΄μ„ μ±„νƒν–ˆλ‹€ [5, 6]. 이 νŒ¨ν„΄μ€ μ»΄ν¬λ„ŒνŠΈ λ‚΄λΆ€μ˜ λͺ¨λ“  κΈ°λ³Έ μš”μ†Œμ— μ‹λ³„μžλ₯Ό μ œκ³΅ν•˜μ—¬, κ°œλ°œμžκ°€ μ΅œμƒμœ„ 속성(prop)을 κ³Όλ„ν•˜κ²Œ λŠ˜λ¦¬μ§€ μ•Šκ³ λ„ νŠΉμ • ν•˜μœ„ μš”μ†Œμ— μΆ”κ°€ 속성을 μ „λ‹¬ν•˜κ±°λ‚˜, μŠ€νƒ€μΌμ„ λ³‘ν•©ν•˜κ±°λ‚˜, μ•„μ˜ˆ λ Œλ”λ§λ˜λŠ” μ»΄ν¬λ„ŒνŠΈλ₯Ό μ™„μ „νžˆ ꡐ체할 수 있게 ν•΄μ€€λ‹€ [5-8]. * **μ ‘κ·Όμ„±(A11y) 및 μ„±λŠ₯ μ΅œμ ν™”:** Base Web은 ν‚€λ³΄λ“œ 탐색 및 슀크린 리더(ARIA 속성 λ“±) 지원을 기본적으둜 보μž₯ν•˜μ—¬ 접근성을 μ΅œμš°μ„ μœΌλ‘œ κ³ λ €ν•œλ‹€ [9, 10]. μŠ€νƒ€μΌλ§ μΈ‘λ©΄μ—μ„œλŠ” [[Styletron|Styletron]]을 ν™œμš©ν•΄ Atomic CSSλ₯Ό μƒμ„±ν•¨μœΌλ‘œμ¨ λͺ¨λ°”일 κΈ°κΈ°λ‚˜ μ—΄μ•…ν•œ λ„€νŠΈμ›Œν¬ ν™˜κ²½μ˜ μ‚¬μš©μžλ₯Ό μœ„ν•΄ λ‹€μš΄λ‘œλ“œν•΄μ•Ό ν•  μ½˜ν…μΈ  크기λ₯Ό μ΅œμ†Œν™”ν•œλ‹€ [9]. λ˜ν•œ Puppeteerλ₯Ό ν†΅ν•œ E2E ν…ŒμŠ€νŠΈμ™€ μ‹œκ°μ  νšŒκ·€(Visual regression) ν…ŒμŠ€νŠΈλ₯Ό 톡해 ν”½μ…€ λ‹¨μœ„μ˜ λ ˆμ΄μ•„μ›ƒ 신뒰성을 보μž₯ν•œλ‹€ [11]. * **λ””μžμΈ μ‹œμŠ€ν…œ κ΄€μΈ‘μ„±(Observability)을 ν†΅ν•œ ν™•μž₯:** UberλŠ” λŒ€κ·œλͺ¨ μ‹œμŠ€ν…œμ—μ„œ λ””μžμΈ ν’ˆμ§ˆμ„ μœ μ§€ν•˜κΈ° μœ„ν•΄, μ‹€μ œ μ•± ν™”λ©΄μ—μ„œ Base μ»΄ν¬λ„ŒνŠΈκ°€ μ–Όλ§ˆλ‚˜ μ±„νƒλ˜μ—ˆλŠ”μ§€λ₯Ό κ²°μ •λ‘ μ μœΌλ‘œ μΈ‘μ •ν•˜λŠ” 'Base Counter' 도ꡬλ₯Ό λ„μž…ν–ˆλ‹€ [12, 13]. λ‚΄λΆ€ 연ꡬ에 λ”°λ₯΄λ©΄ Base μ»΄ν¬λ„ŒνŠΈλ₯Ό μ‚¬μš©ν•  경우 λ§žμΆ€ν˜• μ»΄ν¬λ„ŒνŠΈλ₯Ό μ‚¬μš©ν•  λ•Œλ³΄λ‹€ 개발 속도가 3λ°° λΉ λ₯΄κ³ , μ‹œκ°μ  λΆˆμΌμΉ˜κ°€ 4λ°° 적으며, μ½”λ“œλŸ‰μ΄ 50% κ°μ†Œν•˜λŠ” 효과λ₯Ό μ–»μ—ˆλ‹€ [14]. * **μžλ™ν™”λœ λ¬Έμ„œν™” μ‹œμŠ€ν…œ (uSpec):** λ°©λŒ€ν•œ μ»΄ν¬λ„ŒνŠΈ 사양(Spec)을 μ΅œμ‹  μƒνƒœλ‘œ μœ μ§€ν•˜κΈ° μœ„ν•΄ UberλŠ” AI μ—μ΄μ „νŠΈμ™€ [[Figma|Figma]] Console MCPλ₯Ό μ—°κ²°ν•œ 'uSpec' μ‹œμŠ€ν…œμ„ κ΅¬μΆ•ν–ˆλ‹€ [15, 16]. 이 μ‹œμŠ€ν…œμ€ Figma νŒŒμΌμ—μ„œ 직접 토큰 κ°’, λ³€ν˜• ꡬ쑰, μ ‘κ·Όμ„± λ§€ν•‘ 데이터λ₯Ό μΆ”μΆœν•˜μ—¬ λͺ‡ λΆ„ λ§Œμ— μ™„λ²½ν•œ μ»΄ν¬λ„ŒνŠΈ λ¬Έμ„œλ₯Ό μžλ™μœΌλ‘œ μƒμ„±ν•¨μœΌλ‘œμ¨ λ¬Έμ„œν™”μ˜ 병λͺ© ν˜„μƒμ„ ν•΄κ²°ν•œλ‹€ [17-20]. ## πŸ”— Knowledge Connections - **Related Topics:** React Component Library, [[Overrides Pattern|Overrides Pattern]], Design Tokens, Atomic CSS, Accessibility (A11y), [[CSS-in-JS|CSS-in-JS]] - **Projects/Contexts:** Uber Internal Web Applications, Styletron Integration, DesignSystem Observability, uSpec - **Contradictions/Notes:** Base Web은 μŠ€νƒ€μΌλ§ 및 μ„±λŠ₯ μ΅œμ ν™”λ₯Ό μœ„ν•΄ Styletron 기반의 [[CSS-in-JS|CSS-in-JS]] 방식을 μ‚¬μš©ν•˜μ—¬ Atomic CSSλ₯Ό λŸ°νƒ€μž„μ— μ£Όμž…ν•˜μ§€λ§Œ [9], 졜근 ν”„λ‘ νŠΈμ—”λ“œ μ•„ν‚€ν…μ²˜ 동ν–₯μ—μ„œλŠ” Next.js의 React Server Components(RSC)와 같은 ν™˜κ²½μ—μ„œ CSS-in-JS의 λŸ°νƒ€μž„ μ˜€λ²„ν—€λ“œλ₯Ό μš°λ €ν•˜μ—¬ [[Tailwind CSS|Tailwind CSS]]와 같은 λΉŒλ“œ νƒ€μž„(Zero-runtime) 정적 μœ ν‹Έλ¦¬ν‹° 클래슀 λ°©μ‹μœΌλ‘œ νšŒκ·€ν•˜λŠ” νŠΈλ ˆμ΄λ“œμ˜€ν”„ λ…ΌμŸμ΄ μ€‘μš”ν•˜κ²Œ 닀뀄지고 μžˆλ‹€ [21, 22]. --- *Last updated: 2026-04-26*