Figma MCP로 UI 라이브러리 커스텀 구현해 개발 비용 줄이기
Figma MCP와 UI 라이브러리를 함께 쓰면, 중복 구현과 수정 라운드를 줄여 개발 비용을 낮출 수 있습니다.
이전 글에서는 Figma MCP로 디자인 화면을 코드로 변환해보며 생각보다 높은 재현도와 가능성을 확인했습니다.
하지만 화면 한두 장을 코드로 바꾸는 일과, 프로젝트 전체를 구현하는 일은 전혀 다른 문제입니다. 실제 프로젝트에서는 반복되는 UI를 매번 새로 만들지 않기 위해 컴포넌트화하여 재사용하는 것이 일반적입니다. 디자인 차별화가 최우선인 경우가 아니라면, 이미 검증된 UI 라이브러리를 커스텀해 조립하는 방식으로 구현하는 경우도 많습니다.
이번 글에서는 실무에서 가장 많이 쓰이는 조합 중 하나인 Tailwind CSS + shadcn UI를 기준으로 컴포넌트 단위로 코드를 생성·정리해, MCP 결과물이 프로젝트에서도 일관된 기준으로 이어질 수 있는지 가능성을 확인해봅니다.
shadcn 기반 커스텀 구현을 위한 Figma 리디자인
이 글에서는 고객사의 허락하에 과거 웹디자인 프로젝트의 일부 화면을 샘플로 사용했습니다. 원래 시안은 UI 라이브러리를 전제로 만들어진 구조가 아니었지만, 글의 목적에 맞게 비주얼은 유지한 채 Figma 레이어/컴포넌트 구조를 shadcn UI 라이브러리에 맞는 형태로 리디자인했습니다.
이 과정에서 Figma 디자인(컴포넌트/토큰/네이밍)은 아래 기준으로 재정리했습니다.
Tailwind·shadcn 기준에 맞춰 Figma 디자인 파일 구조 정리. 코드 변환 이후의 정리 공수를 줄이기 위한 설정
- shadcn 컴포넌트 단위로 컴포넌트화: 코드에서 묶여 있는 shadcn 컴포넌트 단위를 기준으로, Figma 디자인도 동일한 단위로 쪼개고 컴포넌트 구조를 맞췄습니다.
- 네이밍/변수/프로퍼티를 라이브러리 기준으로 정리: Tailwind CSS와 shadcn 변수 체계에 맞춰 레이어/컴포넌트 네이밍을 정리하고, 관련 property 설정과 변수 명칭도 라이브러리 기준에 맞게 맞췄습니다.
- 오토 레이아웃(Auto layout)·속성 설정을 Flex 추출에 맞춤: Figma MCP가 레이아웃을 추출할 때 Flex 기반 구조가 안정적으로 나오도록, Auto layout과 정렬/간격 등 속성을 의도적으로 지정했습니다.
Figma MCP 코드 변환 품질 확인 기준
shadcn 기본 컴포넌트를 기준으로, MCP 출력 코드를 프로젝트에서 재사용 가능한 형태로 맞추는 과정
Figma MCP 변환 코드가 의미 있으려면 시각적으로도 시안과 충분히 일치해야 하지만, 실무에서는 그보다 UI 라이브러리(shadcn) 기준으로 코드가 잘 정리되는지가 더 중요합니다. 라이브러리를 제대로 활용해야 화면이 늘어도 같은 방식으로 확장할 수 있고, 그게 곧 재작업 비용을 좌우하기 때문입니다. 따라서 코드 품질 측면에서는 아래 3가지를 중점적으로 봤습니다.
-
토큰 매핑(일관성)
사이즈, 컬러 등 시각적 속성이 Figma에서 Tailwind 토큰으로 일관되게 변환되는지
-
구조 정합성(shadcn 기준)
버튼과 같은 UI 요소가 shadcn 컴포넌트의 구조와 충돌 없이 구현되는지
-
재사용성(중복 최소화)
비슷한 UI를 반복 구현할 때 공통 컴포넌트로 묶고 수정 범위를 좁힐 수 있는 형태인지
결과물 리뷰
샘플 페이지 — Figma MCP + Tailwind + Shadcn UI
결과물 비교: 디자인 시안과 Tailwind·shadcn 기반 구현 결과
위는 이번 결과물입니다. 결과는 “시안과 얼마나 비슷한가”뿐 아니라, UI 라이브러리(shadcn)를 코드 레벨에서 제대로 활용하고 있는가를 함께 확인했습니다.
- 시각적 일치도: 화면 단위로는 시안과의 일치도가 충분히 확보되었습니다.
- 라이브러리 기반 구조: 결과 코드는 Tailwind 토큰과 shadcn 컴포넌트를 활용하는 형태로 구현되어, 컴포넌트 단위로 코드를 확장·재사용할 수 있는 기반이 만들어졌습니다.
- 한계점: shadcn을 활용한 코드가 한 번의 변환으로 완성되지는 않았습니다. 결과를 안정화하려면 반복적인 프롬프트 조정과 Figma 디자인 파일을 라이브러리 기준으로 재가공하는 과정이 필요했습니다. 기준을 통제하지 않고 모호한 상태로 둔 영역(예: 반응형/레이아웃 규칙을 지정하지 않은 경우)에서는 일관성이 깨질 수 있어 꼼꼼한 통제와 가이드가 필요했습니다.
디자이너가 코드화에 개입하면 달라지는 것
앞서 확인했듯, Figma MCP를 활용해 shadcn을 활용한 코드가 자동으로 나오더라도 한 번의 변환만으로 결과의 품질이 보장되지는 않습니다. 따라서 실무적으로는 개발 단계에서 뒤늦게 고치기보다 핸드오프 단계에서 기준을 맞춰 결과의 편차를 줄이는 방식이 더 중요해집니다.
디자이너가 여기서 맡는 역할은 ‘코드를 대신 작성’하는 것이 아니라, UI 라이브러리(shadcn) 구조와 MCP 변환 특성을 이해한 상태에서, 디자인 단계에서부터 변환이 잘 되는 조건을 설계·통제하는 것입니다. 즉 무엇을 shadcn 컴포넌트로 쓸지, 네이밍/variant/state, 레이아웃 규칙, 토큰 매핑을 디자인 파일에 먼저 반영해 변환 결과의 편차를 줄이고 후처리를 최소화합니다.
이 역할이 생기면 다음과 같은 효과로 비용이 줄어듭니다.
- 라이브러리 활용도 상승 → 개발 리소스 절감:
- 기본 구조는 그대로 두고, 토큰과 조합, 레이아웃으로 차별화를 만들면 커스텀 개발 범위를 줄이면서도 결과물의 개성은 충분히 확보할 수 있습니다.
- 프롬프트 시행착오 감소 → 변환 속도·안정성 확보:
- 예를 들어 버튼을 shadcn Button의 구조와 variant/state에 맞춰 미리 구성해두면, 변환 결과가 프로젝트에서 바로 쓸 수 있는 형태로 더 깔끔하게 나오고, 수정하는 데 드는 시간도 줄어듭니다.
- 커뮤니케이션 비용 감소:
- 토큰/컴포넌트 기준 언어로 소통해 커뮤니케이션 비용이 줄어듭니다.
마치며
이번 글에서는 Figma MCP를 UI 라이브러리(shadcn) 기준으로 활용했을 때, 결과 코드가 단순한 화면 재현을 넘어 컴포넌트 기반으로 확장 가능한 형태로 나올 수 있는지 확인했습니다. 결론적으로, 적절한 기준을 함께 적용하면 중복 구현과 수정 라운드를 줄여 개발 비용을 낮추는 방향으로 연결될 수 있었습니다.
중요한 포인트는 “MCP를 쓰면 끝난다”가 아니라, 디자이너가 코드 생성에 유리한 형태로 Figma 디자인 파일(컴포넌트 구조/네이밍/레이아웃 규칙)을 정리해주는 순간 효과가 훨씬 커진다는 점입니다. 디자인 단계에서 기준이 잡히면 변환 결과의 편차가 줄고, 개발 단계에서는 검수·커뮤니케이션이 짧아지면서 전체 사이클이 빨라집니다.
예전에는 디자이너가 Zeplin이나 Figma를 어떤 방식으로 쓰느냐가 협업 효율을 크게 좌우했다면, 이제는 한 단계 더 나아가 디자인이 코드로 바뀌는 과정과 조건을 이해하고 관리할 수 있는지가 결과물의 품질과 비용에 직접적인 영향을 주는 환경이 되고 있습니다.
이런 방식의 협업 흐름을 프로젝트에 적용해보고 싶다면 스무타트에 문의주세요.
간단하지 않은 제품을 간단하게 풀어내는 일을 잘합니다
UX 협업 문의 →