피드로 돌아가기
Introducing Arvia: a design system compiler for the web
Dev.toDev.to
Frontend

Runtime 비용 제로의 Design System Compiler 기반 정적 스타일링 아키텍처

Introducing Arvia: a design system compiler for the web

Fausto952026년 6월 13일5intermediate

Context

기존 CSS-in-JS 방식의 런타임 스타일 계산으로 인한 성능 저하 및 타입 안정성 부족 문제 발생. 런타임 스타일 주입과 컨텍스트 유지로 인한 번들 크기 증가 및 브라우저 렌더링 병목 지점 존재.

Technical Solution

  • Styles are compiled, not computed 원칙을 통한 런타임 스타일 계산 로직 완전 제거
  • .arv 전용 언어를 도입하여 Tokens, Themes, Components를 정의하고 이를 정적 CSS와 Typed API로 변환하는 Compiler 설계
  • TypeScript Virtual Declarations를 통한 .d.ts 파일 생성 없는 실시간 타입 체크 및 Autocomplete 구현
  • Styling API와 UI Markup을 분리하여 Framework-agnostic한 클래스 문자열 조합 함수 생성
  • Compound Variants 및 Theme Modes를 정적 CSS 변수와 Descendant Selector로 컴파일하여 런타임 오버헤드 최소화
  • Vite Plugin 기반의 Hot Reload 및 Language Server 연동으로 개발 생산성 확보

- 디자인 시스템의 런타임 계산 비용을 줄이기 위해 Compile-time 추출 방식 검토 - 스타일 정의와 UI 컴포넌트의 결합도를 낮춰 프레임워크 의존성 제거 가능성 확인 - 가상 타입 선언(Virtual Declarations)을 통해 빌드 아티팩트 없이 타입 안정성 확보하는 전략 적용

원문 읽기