디자인 QA, 어디까지 체크해야 하나요? 2편

개발팀에 핸드오프 파일을 넘기기 전, 내가 놓친 건 없는지 불안한 분들을 위한 궁극의 셀프 체크리스트

2026.02.22 | 조회 141 |
0
|
방구석 디자인 사수의 프로필 이미지

방구석 디자인 사수

디자이너의 고민이 성장이 되는 시간

방구석 디자인 사수
방구석 디자인 사수

구독자님, 반가워요! 방구석 디자인 사수입니다.

오늘은 "디자인 QA, 어디까지 체크해야 하나요?" 2번째 스토리를 풀어보겠습니다.

핸드오픈 전 '궁극의 셀프 QA 체크리스트' 6번부터 시작합니다!


6️⃣ 컬러 시스템 - "이 빨간색이랑 저 빨간색이 다른 거예요?"

🎨 체크할 것들

항목구체적 체크
컬러 토큰Primary, Secondary, Error, Success 등 이름(토큰)으로 관리하고 있나?
일관성같은 역할의 색이 화면마다 미묘하게 다르지 않나? (#FF0000 vs #E53935)
다크 모드지원한다면 전체 화면의 다크 모드 시안이 있나?
투명도(Opacity)배경과 겹칠 때 의도한 대로 보이는지 확인
시멘틱 컬러에러=빨강, 성공=초록, 경고=노랑, 정보=파랑 - 일관적?

컬러에서 가장 많이 일어나는 핸드오프 사고가 있어요.

디자이너는 #3A7BF2라고 넘겼는데, 개발자가 눈대중으로 #4080F0을 쓰는 경우.

이걸 방지하는 방법이 바로 디자인 토큰(Design Token)입니다.

색상을 #3A7BF2 같은 헥스 코드가 아니라, color-primary-500 같은 이름으로 관리하는 거죠.

Figma에서는 Variables(변수) 기능으로 이걸 할 수 있어요. 

변수로 연결해 두면 나중에 "Primary 색상 전체를 바꿔주세요"라는 요청이 와도 변수 하나만 바꾸면 전체가 바뀌어요.

 


7️⃣ 접근성(Accessibility) -  "우리 서비스는 아직 그 단계 아닌데..."

이렇게 생각하실 수 있어요.

하지만 접근성의 기본은 모든 사용자의 사용성 입니다.

밝은 햇빛 아래에서 앱을 보는 사람, 한 손으로 조작하는 사람, 노안이 시작된 사용자 모두를 위한 거예요. 

 

👁️ 색상 대비 (Color Contrast) - WCAG 2.1 AA 기준

요소최소 대비 비율예시
일반 텍스트 (16px 이하)4.5:1흰 배경에 회색 텍스트 → #757575 이상
큰 텍스트 (18px Bold+)3:1제목, 부제목 등
비텍스트 UI (아이콘, 그래프)3:1아이콘 색, 차트 바 색 등
색상만으로 정보 구분 금지-빨강=에러 + ⚠️ 아이콘 병행 (색맹 대응)

 

👆 터치 타겟 (Touch Target)

가이드라인최소 크기
iOS (HIG)44x44pt
Android (Material Design)48x48dp
WCAG 2.224x24px (주변 여백 포함 가능)

작은 아이콘(예: 16x16px)이라도 터치 영역은 44px 이상으로 잡아야 해요.

그리고 인접한 클릭 요소 사이에 최소 8px 이상의 간격이 있어야 실수로 옆 버튼을 누르는 걸 방지할 수 있어요.

 

⌨️ 키보드 & 포커스

체크 항목설명
Tab 이동Tab 키만으로 모든 기능에 접근 가능한가?
포커스 순서시각적 순서와 일치하나? (좌→우, 위→아래)
포커스 표시포커스 상태가 눈에 보이나? (outline 스타일 삭제하지 않았나?)
모달 포커스 트랩모달이 열리면 모달 안에서만 Tab 키 순환?

 

🏷️ 대체 텍스트 (Alt Text)

이미지 유형처리 방법
의미 있는 이미지Alt text 가이드 제공 (예: "프로필 사진")
장식용 이미지Alt 비워두기(alt="") 명시
아이콘 버튼아이콘만 있고 텍스트 없으면 aria-label 필요

 

사수의 팁

접근성 전체를 완벽하게 하려면 부담이 크지만, 색상 대비 체크 + 터치 타겟 확보 + 포커스 상태 정의 이 세 가지만 습관화해도 "접근성을 고려하는 디자이너"라는 인상을 줄 수 있어요.

Figma 커뮤니티에서 Stark WCAG Checklist 위젯을 찾아보세요.

WCAG 항목별로 체크할 수 있는 무료 리소스예요.


8️⃣ 플랫폼별 차이 (iOS vs Android) — "이 버튼, iOS랑 안드로이드에서 다르게 해야 하나요?"

앱 디자인이라면 반드시 챙겨야 하는 부분이에요.

iOS(HIG)와 Android(Material Design)는 생각보다 많은 부분이 다릅니다.

요소iOS (Human Interface Guidelines)Android (Material Design)
시스템 폰트San FranciscoRoboto
기본 단위pt (포인트)dp (density-independent pixel)
네비게이션 바 위치화면 상단화면 상단
뒤로 가기화면 좌상단 < 뒤로좌상단 ← 화살표 + 하드웨어 백 버튼
기본 탭 바하단 Tab Bar (5개까지)하단 Navigation Bar + FAB 버튼
주요 CTA 버튼우상단 텍스트 버튼FAB (플로팅 액션 버튼, 우하단)
검색화면 상단 Pull-to-Search 또는 Tab Bar 안상단 App Bar 안 검색 아이콘
모달/시트페이지 시트(Page Sheet), 카드형Bottom Sheet, Full-screen Dialog
스와이프 제스처왼쪽 가장자리에서 스와이프 = 뒤로 가기없음 (하드웨어 백 버튼 사용)
얼럿(Alert)가운데 팝업, 좌측=취소/우측=확인가운데 팝업, 좌측=취소/우측=확인 (비슷)
토스트공식적으로 없음 (커스텀 사용)Snackbar (하단, 액션 버튼 포함 가능)

 

디자이너가 정해야 할 결정

  • 두 플랫폼에서 동일한 디자인으로 갈 건지, 각 플랫폼 가이드라인에 맞게 별도로 만들 건지?
  • 동일하게 간다면, 안드로이드 하드웨어 백 버튼 동작은 어떻게 할 건지?
  • iOS 스와이프 뒤로 가기를 지원할 건지?

 

사수의 팁

작은 팀이나 스타트업에서는 대부분 두 플랫폼 동일 디자인으로 갑니다.

이때 가장 많이 빠뜨리는 게 안드로이드 하드웨어 백 버튼 동작이에요.

모달이 열려있을 때 백 버튼을 누르면 모달만 닫히는 건지, 이전 페이지로 가는 건지 꼭 명시해 주세요.


9️⃣ 카피(Copy)와 마이크로카피 - "Lorem ipsum은 절대 금지"

의외로 많이 놓치는 부분이에요.

"텍스트 영역"이라고만 적혀 있으면 개발자는 뭘 넣어야 할지 모릅니다.

 

✍️ 전체 체크리스트

카피 유형정해야 할 것예시
버튼 라벨정확한 문구"확인" vs "저장하기" vs "다음 단계로"
에러 메시지필드별 구체적 문구"이메일 형식을 확인해 주세요"
빈 화면 안내텍스트 + CTA"아직 알림이 없어요. 설정에서 알림을 켜보세요!"
Placeholder힌트 텍스트"이메일을 입력하세요"
툴팁마우스 오버 설명"이 설정을 켜면 매주 요약을 받을 수 있어요"
토스트/알림피드백 메시지"저장되었습니다 ✓"
컨펌 다이얼로그제목 + 본문 + 버튼 2개 라벨"삭제할까요?" "삭제하면 복구할 수 없어요" [취소] [삭제]
로딩 메시지긴 로딩 시 안내"잠시만요, 데이터를 불러오고 있어요..."
법적 문구약관 동의, 개인정보 관련PM/법무팀과 협의 필요 → 최소한 자리 확보

🌐 다국어 대응 (해당되는 경우)

체크 항목설명
텍스트 길이한국어 → 영어 번역 시 1.5~2배, 독일어는 더 길어짐
날짜/숫자 형식미국(MM/DD/YYYY) vs 한국(YYYY.MM.DD)
통화 기호₩ / $ / € 위치와 형식
RTL(아랍어 등)우→좌 레이아웃 미러링 필요 여부

 

사수의 팁

카피를 직접 작성하기 어려우면, 최소한 "이 화면에서 필요한 문구 목록"을 정리해서 PM/기획자에게 요청하세요. 빈칸으로 넘기는 것보다 "여기에 이런 성격의 문구가 필요해요"라고 메모만 남겨도 훨씬 나아요.

 


🔟 파일 정리 & 에셋 & 반응형 - "마지막 관문"

📂 파일 정리(Hygiene) - '개발자를 향한 배려'

항목체크내용
스타일 연결색상/폰트가 Variables(변수)에 연결되어 있나?
레이어 이름Group 123 아닌 btn_primary, card_product 등 의미 있는 이름
Auto Layout사용했나? → 개발자가 padding/gap을 바로 읽을 수 있어 구현이 쉬움
컴포넌트 연결Main Component에 연결? (Detach된 인스턴스 아닌지 확인)
불필요한 요소숨김 레이어, "v1", "최최최종" 프레임 삭제
소수점 값13.5px, 7px 같은 비정수 값 없는지? (4px/8px 배수로)
페이지 구조작업 중 / 최종 / 컴포넌트 등 페이지 분리

 

🔷 아이콘 에셋

항목체크 내용
SVG 내보내기패스(Path)가 깨지지 않았는지 Flatten(합치기) 처리
Stroke → Outline선(Stroke) 기반 아이콘은 Outline Stroke로 변환
터치 타겟아이콘 크기와 별개로 터치 영역 44px 이상
일관된 사이즈24x24px, 20x20px 등 아이콘 그리드 통일

 

🖼️ 이미지 에셋

항목체크 내용
해상도@1x, @2x, @3x 설정
파일 형식PNG/JPG/WebP 용도별 구분
Export 설정Figma에서 미리 걸어두기

 

📱 반응형 (웹인 경우)

항목체크 내용
브레이크포인트Mobile(375px) / Tablet(768px) / Desktop(1440px) - 개발자와 합의
레이아웃 변화각 브레이크포인트별 시안 있는지
요소별 동작이미지 줄어듦? 컬럼 스택? 사이드바 숨김?
최소/최대 너비min-width, max-width 기준 명시
터치 대응모바일에서 Hover 없음 → 대체 인터랙션은?

 

사수의 팁

핸드오프 전 10분만 투자해서 레이어 정리를 해보세요.

"이 사람은 일을 깔끔하게 하는 사람이구나"라는 인상은 개발팀과의 협업에서 엄청난 자산이에요.

Figma에서 Rename It 플러그인으로 레이어 이름 일괄 변경하면 시간도 절약돼요.

 


📋 한눈에 보는 '궁극의' 셀프 QA 체크리스트

#카테고리핵심 체크 항목
1상태버튼 5상태(Default/Hover/Pressed/Disabled/Focus), 인풋 상태(Error/Success 포함)
2데이터 상태Loading(스켈레톤/스피너), Empty(빈 화면+CTA), Error(재시도 버튼), Partial
3피드백성공/실패 토스트, 삭제 확인 다이얼로그, 저장 완료 피드백 정의
4폼/유효성검사검증 시점(OnBlur/OnSubmit), 에러 메시지 위치+문구, 비밀번호 조건 표시
5텍스트 극한최대(말줄임+줄 수), 최소, 줄바꿈 기준, 특수문자/이모지 처리
6이미지 극한기본 이미지, Crop 기준, 로딩 실패 fallback, 동영상 썸네일
7숫자/날짜형식 통일, 상대시간 전환 기준, 0/음수/큰 숫자 처리
8인터랙션전환 방식(Modal/Push/Sheet), 뒤로 가기 동작, 팝업 닫기 조건
9애니메이션Duration, Easing 명시 또는 레퍼런스 영상, 없는 곳은 "no animation"
10유저 플로우전체 흐름 연결, 분기점, 에러 분기, 딥링크 진입 시 동작
11타이포그래피폰트/사이즈/무게/줄간격 일관, 디자인 시스템 체계 준수
12컬러토큰으로 관리, 화면별 일관성, 다크모드(해당 시), 투명도 확인
13접근성색상 대비 4.5:1, 터치 타겟 44px+, 포커스 상태, Alt text
14플랫폼iOS/Android 차이 대응, 하드웨어 백 버튼, 스와이프 제스처
15카피버튼 라벨, 에러 메시지, 빈 화면, 툴팁, 다이얼로그 문구 완성
16반응형브레이크포인트별 시안, 요소별 반응형 동작, 모바일 Hover 대체
17파일레이어명 정리, 변수 연결, 숨김 레이어 삭제, 소수점 값 제거
18에셋아이콘 SVG(Flatten), 이미지 @2x/@3x, Export 설정
19메모빠뜨린 부분에 Annotation 남김, "Ready for Dev" 상태 표시

 

🛠️ Figma Dev Mode 200% 활용하기

핸드오프를 더 깔끔하게 만들어주는 Figma Dev Mode 기능들이에요.

"Ready for Dev" 상태 표시

  • 완성된 프레임/섹션에 Ready for dev 상태를 걸어두면, 개발자가 Dev Mode에서 "아, 이건 작업해도 되는 거구나" 하고 바로 알 수 있어요.
  • 아직 작업 중인 화면과 완성된 화면이 섞여 있으면 개발자가 혼란스러워해요.

 

Annotation(주석) 추가하기

  • Dev Mode에서 Shift + T로 Annotation을 추가할 수 있어요.
  • 컴포넌트의 동작, 예외 상황, 특이 사항을 메모로 남기면 개발자가 Dev Mode 안에서 바로 확인 가능.
  • 외부 문서(Jira 티켓, Storybook, Confluence 등)의 링크도 연결할 수 있어요.

 

버전 비교 (Compare Changes)

디자인이 수정되면 개발자가 "어디가 바뀐 거예요?"라고 물어보는 경우가 많죠?

Dev Mode의 Compare Changes 기능으로 이전 버전과 현재 버전의 차이를 시각적으로 확인할 수 있어요.

디자인 수정 후에는 상태를 다시 "Ready for dev"로 업데이트하고, 변경 내용을 코멘트로 남겨주세요.

 

사수의 팁

Figma 링크를 공유할 때, 일반 링크가 아닌 Dev Mode 링크를 공유하세요.

개발자가 파일을 열었을 때 바로 Dev Mode로 진입해서 필요한 정보를 빠르게 확인할 수 있어요.

 


🦴 완벽하지 않아도 괜찮아요 - '메모(Annotation)'를 남기세요

위의 19개 항목을 보고 "와, 이걸 다 한다고?" 하셨을 수도 있어요.

당연히 매번 전부 다 할 수는 없어요.

시간도 부족하고, 아직 결정 안 된 것도 있고요.

그럴 때는 메모 하나만 남겨도 개발자는 안심합니다.

"이 부분 텍스트가 두 줄 이상 넘어가면 말줄임(...) 처리 부탁드려요!"
"Hover 효과는 기존 디자인 시스템의 버튼 스타일 따라가면 됩니다."
"Empty 상태는 아직 디자인 전이에요. 일단 '데이터가 없습니다'로 넣어주시면, 다음 스프린트에서 디자인 드릴게요!"
"에러 메시지 문구는 PM님과 논의 중이에요. 확정되면 바로 업데이트할게요."
"이 애니메이션은 이 레퍼런스 참고 → [Dribbble 링크]. Duration 0.3s, ease-out이면 좋겠어요."
"안드로이드 백 버튼 누르면 이 모달은 닫히고 이전 화면 유지해 주세요."

핵심은 이거예요.

"모르는 건 괜찮다. 모르는데 모른 척하는 게 문제다."

빠뜨린 부분을 솔직하게 메모로 남기는 디자이너와, 아무 말 없이 화면만 던지는 디자이너.

개발자가 더 신뢰하는 쪽은 당연히 전자겠죠?

 


🔁 보너스 : 핸드오프 '후'에도 QA가 있다는 거, 알고 계셨나요?

여기까지는 핸드오프 '전' 이야기였어요.

그런데 사실, 진짜 디자인 QA는 개발이 끝난 후에도 한 번 더 해야 해요.

이걸 '디자인 구현 리뷰(Design Implementation Review)'라고 불러요.

왜 필요할까요?

아무리 꼼꼼하게 핸드오프해도, 개발 과정에서 디테일이 빠지거나 달라지는 건 100% 일어나는 일이에요.

 

실무에서 자주 발견되는 불일치 유형

유형예시발견 빈도
시각적 불일치폰트 사이즈 1~2px 차이, 색상 미묘하게 다름, 간격 불일치⭐⭐⭐⭐⭐ 매우 흔함
상태 누락Hover/Disabled 상태 미구현, 에러 화면 없음⭐⭐⭐⭐ 흔함
인터랙션 차이애니메이션 속도/이징 다름, 전환 방식 다름⭐⭐⭐ 보통
기능적 불일치뒤로 가기 동작 다름, 스크롤 동작 다름⭐⭐⭐ 보통
반응형 문제특정 화면 크기에서 레이아웃 깨짐⭐⭐ 가끔

디자인 구현 리뷰 5단계 프로세스

Step 1. 스테이징 환경에서 직접 만져보기

  • 테스트 환경에 접속해서 주요 유저 플로우를 직접 따라가요
  • 가능하면 다양한 디바이스/브라우저에서 확인 (Chrome, Safari, 모바일)

 

Step 2. 오버레이 비교 (프로 팁!)

  • 스테이징 환경 스크린샷을 캡처 (Chrome의 FireShot 확장 프로그램 추천)
  • Figma에서 원본 시안 위에 스크린샷을 올리고 **투명도 50%**로 설정
  • 겹쳐보면 어디가 다른지 바로 보여요 - 간격, 크기, 위치 차이가 '유령'처럼 드러남

 

Step 3. 스트레스 테스트

  • 필드에 일부러 잘못된 데이터 입력해보기
  • 페이지 중간에 창 닫기, 뒤로 가기 반복
  • 빠르게 버튼 연타해보기
  • 극단적으로 긴/짧은 데이터 넣어보기

 

Step 4. 이슈 문서화 + 우선순위 매기기

우선순위기준예시
🔴 필수 수정사용자 경험에 직접 영향버튼 클릭 안 됨, 에러 화면 누락
🟡 가능하면 수정품질 저하지만 기능은 작동간격 4px 차이, Hover 색상 다름
🟢 다음에 수정미세한 차이폰트 렌더링 미묘한 차이, 그림자 강도

 

Step 5. 개발자와 리뷰 미팅

  • 문서를 공유하고, 각 항목에 대해 "수정 / 다음 스프린트 / 패스" 결정
  • 기술적 제약이 있는 경우 대안 디자인 제안 (예: CSS 한계로 완벽한 그라데이션 불가 → 단색으로 대체)

 

사수의 팁

구현 리뷰에서 모든 걸 고치려고 하면 일정이 터져요.

"사용자가 바로 체감하는 문제"와 "나만 보이는 미세한 차이"를 구분하는 것도 디자이너의 중요한 판단이에요.

대부분의 디자이너가 원하는 건 돋보기로 봤을 때 완벽한 게 아니라, 눈으로 봤을 때 자연스러운 거예요.

 


⚡ 10분 미션 : 내 최근 핸드오프 점검하기

지금 당장 해볼 수 있는 미션이에요.

Step 1.

최근에 개발팀에 넘긴 (또는 넘기려고 하는) 화면 하나를 열어보세요.

Step 2.

위 체크리스트 19개 항목 중, 가장 자주 빠뜨리는 Top 3만 골라서 체크해 보세요.

(대부분의 주니어에게는 상태(States), 에러 처리(Form Validation), 뒤로 가기(Back Navigation) 이 3개가 가장 빈번해요.)

Step 3.

빠진 항목이 있다면, 지금 바로 Figma에 메모(Annotation) 1개만 추가해 보세요.

 

완벽한 핸드오프는 하루아침에 만들어지지 않아요.

하지만 "오늘 메모 하나"가 쌓이면, 어느 순간 개발자가 먼저 이렇게 말해줄 거예요.

"디자이너님, 요즘 전달 주시는 거 진짜 깔끔하네요!"

그 한마디, 생각보다 기분이 좋을 거예요. 😊

 


📌 오늘의 한 줄 요약

핸드오프는 '예쁜 화면 전달'이 아니라, '개발자가 빈틈 없이 코드로 옮길 수 있는 설계도 전달'이다.
완벽하지 않아도 괜찮다 - 메모 하나면 빈틈을 메울 수 있다.


 

📢 잠깐, 공지가 있어요!

다음 호부터 발행 주기가 매주 → 2주에 1편으로 바뀝니다.

개인적인 사정으로 매주 뉴스레터를 발행하기가 어렵게 되었어요.

2주에 한 번, 대신 더 단단한 글로 찾아올게요.

기다리는 동안 궁금한 점이나 고민이 생기시면 언제든 댓글이나 메일로 보내주세요.

여러분의 고민이 다음 레터의 주제가 됩니다! 🙌

 

다음 주 주제가 궁금하신가요? 댓글로 투표해 주세요!

  1. 디자이너도 코드를 알아야 하나요? - 개발자와 더 잘 소통하기 위한 최소한의 개발 지식
  2. 사수 없이 성장하는 법 - 1인 디자이너의 셀프 성장 루틴

 

그럼, 다다음 주에 또 만나요!

첨부 이미지

 

다가올 뉴스레터가 궁금하신가요?

지금 구독해서 새로운 레터를 받아보세요

✉️

이번 뉴스레터 어떠셨나요?

방구석 디자인 사수 님에게 ☕️ 커피와 ✉️ 쪽지를 보내보세요!

댓글

의견을 남겨주세요

확인
의견이 있으신가요? 제일 먼저 댓글을 달아보세요 !
© 2026 방구석 디자인 사수

디자이너의 고민이 성장이 되는 시간

메일리 로고

도움말 자주 묻는 질문 오류 및 기능 관련 제보

서비스 이용 문의admin@team.maily.so 채팅으로 문의하기

메일리 사업자 정보

메일리 (대표자: 이한결) | 사업자번호: 717-47-00705 | 서울특별시 성동구 왕십리로10길 6, 11층 1109호

이용약관 | 개인정보처리방침 | 정기결제 이용약관 | 라이선스