"hover 색상은 느낌으로요"
Figma 협업의 현실
디자이너는 완성됐다고 했다. 개발자 입장에서 완성이 아닌 이유를 여섯 가지로 정리했다
입사 초기에는 Figma가 신세계였다. 디자인 시안이 한눈에 보이고, 스펙 수치도 클릭 한 번이면 확인됐다. "이제 개발이 쉬워지겠다"는 생각을 했다. 그게 얼마나 순진한 생각이었는지는 첫 번째 기능 개발을 하면서 바로 알았다.
Figma 파일을 열었다. 모바일 화면이 없었다. hover 상태가 없었다. 컴포넌트마다 간격 수치가 달랐다. 색상은 디자인 토큰이 아니라 전부 HEX 하드코딩이었다. 그리고 가장 인상적인 건 — 디자이너 슬랙 메시지: "나머지는 개발자분이 알아서요 😊"
Figma 자체가 나쁜 게 아니다. 협업 방식이 문제였다. 2년 동안 다양한 디자이너와 일하면서 쌓인 고충들을 솔직하게 정리했다.

Figma 협업 고충
개발 시간 증가 체감
재확인이 필요했던 비율
재확인 발생 횟수/월
고충 6가지 — 실제 슬랙 대화와 함께
모바일 없음
태블릿 없음
브레이크포인트 미정의
태블릿 768px (선택)
브레이크포인트 명시
변경되는 레이아웃 명시
"클릭하면 튀어나오는 느낌"
"로딩은 자연스럽게요"
"포커스는 브라우저 기본으로"
active: scale(0.97), 100ms
loading: 1.2s linear spin
focus: 2px solid #a855f7
#7c3aed, #7b38ec, #7d3bee… 비슷하게 생긴 보라색이 다섯 개였다. 디자이너가 작업하다 조금씩 다르게 쓴 것들이었다. CSS 변수 체계가 없으면 개발자는 이 중 어느 게 "공식 primary"인지 모른다. 나중에 컬러 변경이 생기면 하드코딩된 HEX를 전체 검색해서 바꿔야 한다./* Figma에서 아이드롭퍼로 찍은 색상들 */
const purples = [
'#7c3aed', // 버튼
'#7b38ec', // 카드 테두리
'#7d3bee', // 헤더 배경 (1px 차이...)
'#7c3bec', // 링크 색
'#7e3aed', // 아이콘 fill
];
/* 디자인 토큰이 있었다면 */
/* --color-primary: #7c3aed; 끝 */
rem을, 레이아웃 간격은 상황에 따라 em이나 %를 쓰는 경우가 많다. "폰트 16px"를 그대로 받아서 font-size: 16px로 구현하면 사용자가 브라우저 기본 폰트 크기를 바꿔도 반응이 없다. 디자이너 입장에서 px와 rem의 차이를 알아야 할 이유가 없지만, 이걸 개발자가 혼자 판단하면 추후 의견 충돌이 생긴다.padding: 24px 16px
gap: 12px
border-radius: 8px
padding: 1.5rem 1rem
gap: 0.75rem
border-radius: 0.5rem
로딩 스켈레톤 · API 에러 화면 · 데이터 없음(Empty State) · 입력값 유효성 오류 · 권한 없음(403) · 네트워크 끊김 · 이미지 로드 실패 · 무한 스크롤 끝
디자이너 탓이 아니다 — 프로세스 문제였다
여기까지 읽으면 "디자이너가 문제네"라고 생각할 수 있다. 실제로 함께 일한 디자이너들은 전부 실력 있는 분들이었다. 문제는 디자인-개발 사이에 명확한 협업 프로세스가 없었다는 것이었다.
디자이너 입장에서 Figma는 "시각적 완성도"를 위한 도구다. 모바일 시안이 없는 게 디자이너 잘못이 아니라, 핸드오프 기준에 "모바일 시안 필수"가 명시돼 있지 않아서였다. 인터랙션 스펙이 없는 건 디자이너가 게을러서가 아니라, 어디까지 스펙에 담아야 하는지 개발자와 한 번도 이야기한 적이 없어서였다.
"Figma 협업의 고충은 도구 문제가 아니라, 도구를 사용하기 전에 나눴어야 할 대화가 없었던 문제였다."
— 현 팀에서 협업 프로세스를 정비하면서 든 생각현 팀에서 실제로 개선한 것들
이직 후 새 팀에서 디자이너와 처음 만났을 때, 협업 방식을 먼저 이야기했다. 개발자 입장에서 필요한 것들을 정리해서 공유했다. 이걸 계기로 팀 핸드오프 가이드라인을 만들었다. 그 이후로 재확인 슬랙 메시지가 80% 줄었다.
| 문제 | 이전 | 지금 |
|---|---|---|
| 반응형 시안 | 데스크톱만 제공 | 375px·1440px 필수 + 브레이크포인트 명시 |
| 인터랙션 스펙 | "느낌으로요" | 프로토타입 or 인터랙션 노트 필수 첨부 |
| 컬러 / 토큰 | HEX 하드코딩 | Figma Variables로 토큰 관리 + CSS 변수 매핑 |
| 단위 기준 | 전부 px, 개발자 임의 변환 | px→rem 변환 기준표 팀 문서화 |
| 시안 변경 시 | 조용히 수정, 알림 없음 | 변경 항목 슬랙 명시 필수 (개발 착수 후) |
| 빈/에러 상태 | 없음, 개발자 임의 구현 | 체크리스트 8개 상태 핸드오프 전 확인 필수 |
핸드오프 전 체크리스트 — 지금 팀에서 쓰는 것
레이아웃
☐ 모바일(375px) 시안 있음
☐ 브레이크포인트 명시됨
☐ 각 해상도별 레이아웃 변경 사항 설명됨
컴포넌트 상태
☐ Default / Hover / Focus / Disabled / Active 상태 있음
☐ 로딩 / 에러 / 빈 상태 화면 있음
☐ 입력 유효성 오류 상태 있음
스펙
☐ 인터랙션 (transition 속도, easing) 명시됨
☐ 색상이 Variables(토큰)로 관리됨
☐ 폰트 사이즈·weight 일관성 확인됨
프로세스
☐ 개발 중 시안 변경 시 슬랙 공지 동의됨
① 첫 협업 전에 "개발에서 필요한 스펙 목록"을 문서로 공유하기
② Figma Dev Mode 활용 — 자동으로 CSS 값 추출 가능한 것은 직접 확인
③ "이 부분 스펙이 없어서 임의로 구현했는데 확인해주세요"를 습관화 — 사후 보고가 사전 승인보다 낫다
④ 반복되는 재확인 슬랙이 있다면 → 프로세스 개선 이야기를 꺼낼 타이밍이다
Figma 협업 고충의 99%는 서로가 상대방의 작업 방식을 잘 몰라서 생긴다. 개발자가 디자인 도구의 한계를 이해하고, 디자이너가 CSS 구현의 필요 정보를 이해하면 — 그 교집합 지점에서 협업 프로세스가 만들어진다. 그게 도구보다 훨씬 중요하다는 걸, 2년 고생 후에야 알았다.
💬 Figma 협업에서 가장 힘들었던 경험은 뭔가요?
비슷한 고충을 겪고 계신 프론트엔드 개발자분들, 혹은 반대로 "개발자가 이런 걸 원하는지 몰랐다"는 디자이너분들의 이야기도 댓글로 들려주세요. 특히 팀에서 실제로 효과 있었던 협업 프로세스가 있다면 정말 궁금합니다. 🙏
'개발자 > 기술스택 도구' 카테고리의 다른 글
| 내가 지금 쓰는 개발 도구 세팅 공개 - VSCode, 터미널, 맥 환경 (1) | 2026.06.26 |
|---|---|
| TypeScript 도입, 현실은 달랐다 (1) | 2026.06.19 |
| Next.js 실무 도입 후 1년, 솔직하게 달라진 점들을 써봅니다 (0) | 2026.06.12 |