TestForge | Aidevops | 📊 Plogger ✍️ Blog 📚 Docs
plogger

AI DevOps Korea

AI 서비스 개발, 운영, 성능개선을 하나의 루프로 연결합니다

aidevops.kr에서 LLMOps, RAG, AI Agent, 관측성, 평가, 비용-성능 최적화를 실전 운영 관점으로 정리합니다.

React 디자인 시스템 아키텍처 가이드

· 수정 4월 17일
아키텍처 다이어그램
이 글에서 다루는 핵심 흐름, 아키텍처 구조, 주요 판단 포인트를 한눈에 이해할 수 있도록 정리한 그림입니다.
# React 디자인 시스템 아키텍처 가이드

디자인 시스템은 버튼 몇 개를 공통화하는 작업이 아니다. 실무에서 디자인 시스템은 제품의 시각 언어, 상호작용 규칙, 접근성 기준, 구현 일관성, 배포 전략까지 묶는 운영 체계다. 특히 React 생태계에서는 조합 가능한 컴포넌트 구조와 풍부한 상태 패턴 덕분에 디자인 시스템이 강력해질 수 있지만, 동시에 잘못 만들면 범용성만 높고 실제 제품 속도는 오히려 떨어지는 구조가 되기도 한다.

아키텍처 그림 설명

[Design Tokens]
   color / spacing / type / motion
             |
             v
[Primitives]
 Button / Input / Text / Stack
             |
             v
[Composites]
 Modal / Table / Tabs / Form
             |
             v
[Product Patterns]
 Search Bar / Checkout Form / Header
             |
             v
[Applications]

좋은 디자인 시스템은 아래층이 위층의 규칙을 떠받치는 구조입니다. 토큰이 정책을 정의하고, Primitive는 그 정책을 구현하며, Composite와 Pattern은 실제 제품 조합을 담당합니다. 계층이 섞이면 공통 컴포넌트가 제품 로직을 먹어버리거나, 반대로 제품 팀이 시스템을 우회하게 됩니다.

디자인 시스템의 목표를 먼저 분명히 하라

많은 팀이 디자인 시스템을 “중복 제거” 프로젝트로 시작한다. 물론 중복은 줄어들 수 있지만, 더 본질적인 목표는 다음과 같다.

  • 제품 간 시각/상호작용 일관성 확보
  • 접근성 기준 내재화
  • UI 구현 속도 향상
  • 변경 파급 통제
  • 디자이너와 개발자 간 공통 언어 형성

이 목표가 없으면 시스템은 단순 컴포넌트 모음집으로 끝나고, 실제 팀은 계속 예외를 추가하게 된다.

토큰이 없으면 컴포넌트가 정책을 떠안는다

디자인 시스템 아키텍처의 출발점은 보통 토큰이다. 색상, 간격, 타이포그래피, 반경, 그림자, 레이어, 모션 기준이 토큰으로 추상화되어 있지 않으면, 개별 컴포넌트가 정책까지 직접 들고 있게 된다.

그 결과 버튼 하나 바꾸는 일이 브랜드 전체 업데이트가 되고, 테마 확장도 어려워진다. 따라서 React 디자인 시스템에서는 컴포넌트보다 먼저 토큰 레이어가 안정적으로 정의되어야 한다.

컴포넌트 계층을 구분하라

디자인 시스템 컴포넌트는 모두 같은 수준이 아니다. 보통 다음처럼 나누는 것이 현실적이다.

  • Foundation: 토큰, 컬러, 타이포그래피, spacing, z-index 규칙
  • Primitive: Button, Input, Text, Icon, Stack 같은 기본 조합 요소
  • Composite: Modal, Dropdown, Tabs, Table, DatePicker 같은 고수준 컴포넌트
  • Pattern: 페이지 헤더, 검색 필터 바, 폼 레이아웃처럼 제품 패턴에 가까운 조합

이 층이 섞이면 시스템 컴포넌트가 제품 로직을 먹어버리거나, 반대로 제품 화면이 계속 공통 계층을 우회하게 된다.

Headless와 Styled의 경계를 설계하라

React 디자인 시스템에서 자주 부딪히는 문제는 로직과 스타일을 얼마나 결합할 것인가다. 접근성과 키보드 상호작용이 중요한 컴포넌트는 headless 성격이 유리할 수 있고, 브랜드 일관성이 중요한 기본 UI는 styled 성격이 더 낫다.

실무적으로는 둘 중 하나만 고집하기보다 다음처럼 구분하는 편이 좋다.

  • 브랜드 일관성이 핵심인 컴포넌트는 opinionated하게 제공한다.
  • 변형 가능성이 크고 제품별 조합이 중요한 컴포넌트는 headless 또는 slot 기반 확장을 허용한다.

접근성은 별도 체크리스트가 아니라 기본 계약이다

버튼, 모달, 메뉴, 탭, 토스트, 다이얼로그, 콤보박스 같은 컴포넌트는 접근성이 빠지면 시스템 가치가 크게 떨어진다. 디자인 시스템은 제품 팀이 매번 ARIA 속성과 키보드 탐색을 새로 고민하지 않게 만드는 것이어야 한다.

따라서 접근성은 문서의 부록이 아니라 컴포넌트 기본 계약이어야 한다. “기본 사용만 하면 접근성이 지켜지는 구조”를 만드는 것이 핵심이다.

API 설계는 구현 편의보다 사용성 우선이다

디자인 시스템 컴포넌트 API는 내부 구현자보다 소비 팀의 인지 비용을 줄여야 한다. props가 많고 변형 규칙이 복잡하면, 팀은 결국 시스템을 버리고 직접 구현하게 된다.

좋은 API의 기준은 다음과 같다.

  • 기본 사용이 직관적인가
  • 변형 옵션이 명확한가
  • 스타일 우회가 너무 쉬워 일관성을 해치지 않는가
  • 조합이 필요한 지점과 금지해야 할 지점이 구분되는가

배포와 버전 전략도 아키텍처다

디자인 시스템은 코드만 잘 만들어도 끝나지 않는다. 어떤 단위로 배포하고, 제품 팀이 어떻게 업그레이드하고, breaking change를 어떻게 관리할지가 매우 중요하다. 이 부분을 놓치면 디자인 시스템은 기술적으로 완성돼도 조직적으로 실패한다.

특히 다음이 중요하다.

  • 버전 정책과 릴리즈 노트
  • 시각 회귀 테스트
  • 문서와 코드 예제 동기화
  • 변경 영향 범위를 추적할 수 있는 체계

자주 생기는 안티패턴

  • 토큰 없이 컴포넌트 레벨에서 스타일 정책을 해결하려 함
  • 공통화 범위를 넓히려다 제품 로직까지 시스템에 흡수함
  • API가 지나치게 추상적이라 실제 사용성이 떨어짐
  • 접근성을 옵션처럼 취급함
  • 문서화와 배포 전략 없이 코드만 쌓음

마무리

React 디자인 시스템 아키텍처의 핵심은 컴포넌트를 많이 만드는 것이 아니라, 제품 팀이 일관성과 속도를 동시에 얻을 수 있는 운영 가능한 계약을 만드는 것이다. 디자인 시스템은 UI 라이브러리가 아니라 조직의 프론트엔드 실행 방식에 가깝다.

좋은 디자인 시스템은 예쁜 컴포넌트 모음이 아니라, 디자이너와 개발자, 제품 팀이 같은 언어로 움직이게 만드는 기반이다.

운영 환경에서 어려워지는 지점

  • React 디자인 시스템은 컴포넌트가 넓게 공유되는데도 계약, 토큰, 접근성 보장이 약하면 빠르게 실패한다.
  • 진짜 어려움은 버튼 라이브러리를 만드는 것이 아니라 제품 요구가 다양해져도 일관성을 유지하는 일이다.
  • 성숙한 시스템은 재사용, 탈출구, 거버넌스를 함께 균형 잡아야 한다.

중요한 아키텍처 결정

  • 디자인 토큰, 프리미티브, 패턴, 제품 전용 컴포넌트를 분리한다.
  • 접근성, 테마, 조합 API를 일급 아키텍처로 다룬다.
  • 컴포넌트 계약과 마이그레이션 규칙을 의도적으로 버전 관리한다.

실무 예시

건강한 디자인 시스템 스택은 보통 계층이 분명하다.

tokens -> 색상, 간격, 타이포그래피
primitives -> Button, Input, Stack
patterns -> FormSection, DataTableToolbar
product features -> 페이지 전용 조합

피해야 할 안티패턴

  • 제품 전용 로직을 범용 컴포넌트 안에 넣는 것.
  • 조합 지점을 설계하지 않고 props만 끝없이 늘리는 것.
  • 채택이 넓어진 뒤에야 접근성 부채를 보기 시작하는 것.

운영 체크리스트

  • 공용 컴포넌트 API 표면 증가를 검토한다.
  • 사용 예시와 제약을 문서화한다.
  • 접근성과 테마 변형을 지속적으로 테스트한다.
  • 팀이 시스템을 우회하는 지점과 이유를 추적한다.

최종 판단

React 디자인 시스템은 재사용 부품 모음이 아니라 신뢰할 수 있는 제약을 정의할 때 비로소 플래그십 자산이 된다. 시각적 일관성만큼 거버넌스와 계약 품질이 중요하다.

Continue Reading

다음으로 읽기 좋은 글

다음 탐색

이 주제를 시스템 관점으로 더 이어서 보기