TECH 으로 돌아가기
TECH HACKER NEWS 오늘 6분 읽기 36 READS

shadcn/ui가 Radix를 버리고 Base UI로 갈아탔어요 — 왜 이게 큰 사건일까

shadcn/ui가 Radix를 버리고 Base UI로 갈아탔어요 — 왜 이게 큰 사건일까

무슨 일이 벌어졌냐면

React로 화면 만드는 분들이라면 shadcn/ui 한 번쯤은 써보셨을 거예요. 버튼, 드롭다운, 팝업 창(다이얼로그) 같은 걸 매번 밑바닥부터 만들려면 진짜 귀찮잖아요. 그래서 잘 만들어진 컴포넌트를 가져다 쓰는 건데, shadcn/ui는 좀 특이한 방식으로 유명해졌어요.

보통 라이브러리는 npm install로 설치해서 import 해다 쓰죠. 그런데 shadcn/ui는 컴포넌트 코드를 아예 내 프로젝트 폴더 안으로 복사해서 넣는 방식이거든요. 그러니까 그 코드가 완전히 내 것이 되고, 색깔이든 동작이든 마음대로 뜯어고칠 수 있어요. "라이브러리에 갇히지 않는다"는 이 철학 덕분에 엄청 인기를 끌었죠.

그런데 여기서 중요한 포인트가 있어요. shadcn/ui가 담당하는 건 사실 겉모습(스타일)뿐이에요. 팝업이 열리고 닫히는 로직, 키보드 화살표로 메뉴를 넘기는 동작, 시각장애인용 화면 낭독기(스크린 리더)가 제대로 읽어주게 하는 접근성 처리 같은 "진짜 어려운 속살"은 Radix UI라는 다른 라이브러리에 맡기고 있었어요. 이번에 shadcn/ui가 그 속살을 Radix에서 Base UI로 바꾼다고 발표한 거예요.

Radix, Base UI가 뭔데

조금 풀어서 설명해볼게요. Radix UI는 "모양은 하나도 없지만 동작은 완벽한" 부품들이에요. 이런 걸 headless(헤드리스) 컴포넌트라고 불러요. 머리(디자인)가 없다는 뜻이죠. 예를 들어 드롭다운 메뉴를 주면, 화살표 키로 이동하고 Esc로 닫히고 포커스가 알아서 관리되는 등 "눈에 안 보이지만 만들기 정말 까다로운" 부분을 다 처리해줘요. 개발자는 여기에 CSS로 색만 입히면 되는 거죠. shadcn/ui가 딱 그 색 입히는 역할이었고요.

문제는 Radix의 개발 속도가 한동안 눈에 띄게 느려졌다는 거예요. 이슈나 버그 대응이 뜸해지면서 "이거 계속 믿고 써도 되나" 하는 불안감이 커졌어요. 그때 등장한 게 Base UI예요. 재밌는 건 Base UI를 만드는 사람들이 예사롭지 않다는 점이에요. 유명한 UI 라이브러리 MUI(Material UI) 팀, 툴팁 위치 계산으로 유명한 Floating UI 제작자, 그리고 Radix 출신 개발자들까지 힘을 합쳐서 만든 프로젝트거든요. 말하자면 이 분야 실력자들이 모여서 "제대로 된 헤드리스 컴포넌트의 표준을 다시 만들어보자"고 시작한 거예요.

그래서 뭐가 달라지나

당장 겁먹을 필요는 없어요. shadcn/ui는 이번에도 특유의 유연함을 유지했거든요. 기본값(default)이 Base UI로 바뀐 거지, Radix가 완전히 사라진 건 아니에요. 새로 프로젝트를 시작하면 Base UI 기반 컴포넌트를 받게 되고, 기존에 Radix로 잘 돌아가던 프로젝트는 그대로 둬도 돼요.

다만 신경 쓸 부분은 있어요. Base UI는 컴포넌트를 조립하는 방식이나 속성(prop) 이름이 Radix와 미묘하게 달라요. 그래서 이미 Radix 기반 shadcn 컴포넌트를 잔뜩 커스터마이징해둔 팀이라면, 새 컴포넌트를 추가할 때 두 방식이 섞여서 헷갈릴 수 있어요. 그리고 Base UI 자체가 아직 안정화(1.0)에 도달하지 않은 상태라 세부 API가 바뀔 여지도 있고요.

한국 개발자에게 주는 시사점

이 사건이 던지는 진짜 교훈은 "의존성을 얼마나 얇게 가져갈 것인가"예요. shadcn/ui가 코드를 복사해 넣는 방식을 고집한 덕분에, 밑바탕 라이브러리를 통째로 갈아치우는 큰 변화를 이렇게 부드럽게 넘길 수 있었던 거예요. 만약 shadcn이 평범한 npm 패키지였다면, Radix가 흔들릴 때 우리도 같이 흔들렸겠죠.

지금 새 프로젝트를 시작한다면 Base UI 기반으로 가보는 걸 추천해요. 뒤에 있는 팀의 무게감이 다르고, 접근성 처리도 탄탄하거든요. 반대로 운영 중인 서비스라면 굳이 서두를 필요 없어요. Radix 기반 코드는 여전히 잘 돌아가니까요.

한 줄 정리: UI 컴포넌트의 "속살"을 담당하는 헤드리스 라이브러리 판이 Radix에서 Base UI 중심으로 재편되고 있고, shadcn/ui가 그 흐름의 신호탄을 쐈어요. 여러분은 지금 headless 컴포넌트를 직접 쓰고 계신가요, 아니면 완성형 UI 키트를 선호하시나요? 이번 전환을 계기로 어느 쪽에 베팅하시겠어요?


🔗 출처: Hacker News

SOURCE · HACKER NEWS
원문 전체 보기 → https://ui.shadcn.com/docs/changelog
SHARE
처리 중...