디자인 핸드오프에서 제품이 망가진다

디자인 핸드오프에서 제품이 망가진다

완성된 화면을 처음 받아 든 날, 시안과 나란히 놓고 보면 어딘가 미묘하게 어긋나 있습니다. 버튼을 감싼 여백이 두 픽셀쯤 좁고, 로딩이 도는 동안 화면은 텅 비어버리고, 에러가 났을 때 무슨 일이 일어나는지는 아무도 정해두지 않았습니다. 분명 시안은 완성되어 있었는데, 구현된 제품은 그 시안이 아닙니다.

이 어긋남은 디자이너의 실력이나 개발자의 성의 문제가 아닙니다. 디자인 핸드오프를 전달로 이해하는 순간 생기는 필연적인 균열입니다. 결론부터 말씀드리면, 핸드오프는 파일을 넘기는 행위가 아니라 서로 다른 두 직군이 같은 의도를 공유하는 과정입니다. 던지고 끝내는 순간, 의도는 번역 과정에서 새어 나가고 제품은 조금씩 갈라집니다. 오늘은 왜 핸드오프라는 순간이 품질을 깎는지, 그리고 그것을 어떻게 다시 설계할 수 있는지 이야기해보려 합니다.

핸드오프가 전달이 되는 순간 제품이 갈라진다

디자인 핸드오프가 무너지는 자리는 늘 비슷합니다. 시안은 모든 것이 잘 풀린 화면, 이른바 해피 패스 한 장만 보여줍니다. 그런데 실제 제품은 한 장의 그림이 아니라 시간 속에서 움직이는 동사입니다. 데이터를 기다리는 순간, 입력이 비어 있는 순간, 네트워크가 끊긴 순간이 모두 화면을 갖습니다. 이 상태들이 시안에 없으면, 개발자는 빈칸을 자기 판단으로 채울 수밖에 없습니다.

피그마가 정리한 개발자 핸드오프 가이드는 가장 흔히 누락되는 요소로 바로 이 상태 문서화를 꼽습니다. 명세는 치수와 색과 간격을 전달하지만, 인터랙션의 동작과 상태의 전환, 그리고 그 디자인이 왜 그렇게 결정되었는지는 좀처럼 함께 건너가지 않습니다. 빠진 정보가 많을수록 구현은 시안에서 멀어지고, 그 거리를 메우려 재작업 사이클이 늘어납니다.

핸드오프에서 보통 전달되는 것거의 빠지는 것
치수, 색상, 간격, 폰트로딩·에러·빈 화면·비활성·포커스 상태
화면 한 장의 최종 모습상태와 상태 사이의 전환과 동작
무엇을 그렸는가왜 그렇게 결정했는가
정적인 레이아웃화면 크기와 입력에 따른 반응

여기서 놓치기 쉬운 포인트가 있습니다. 시안은 명사의 목록이고, 제품은 그 명사들이 움직이는 문장입니다. 명사만 건네고 문법을 건네지 않으면, 같은 단어로도 전혀 다른 문장이 만들어집니다.

좋은 핸드오프는 번역이 아니라 공유다

그렇다면 핸드오프의 목표를 다시 물어야 합니다. 디자이너의 머릿속을 개발자에게 그대로 복사하는 것일까요. 그것은 불가능합니다. 두 직군은 세상을 다른 언어로 봅니다. 디자이너는 비례와 흐름으로, 개발자는 구조와 상태로 화면을 읽습니다.

과학기술학자 수전 리 스타와 제임스 그리스머는 1989년 서로 다른 전문 집단이 어떻게 협력하는가를 연구하며 경계 객체라는 개념을 제시했습니다. 경계 객체는 각 집단의 필요에 맞게 유연하게 해석되면서도, 집단을 가로질러 공통의 정체성을 유지하는 대상입니다. 핵심은 이것입니다. 협력에 반드시 완전한 합의가 필요한 것은 아니며, 모두가 같은 객체를 가리킬 수 있으면 서로 다르게 이해하면서도 함께 일할 수 있다는 것입니다. 디자인 파일과 토큰, 동작하는 프로토타입은 모두 디자이너와 개발자 사이의 경계 객체입니다. 좋은 핸드오프는 의도를 완벽히 번역하는 일이 아니라, 두 직군이 함께 가리킬 수 있는 객체를 잘 만드는 일입니다.

심리언어학은 이 통찰에 다른 결을 더해줍니다. 허버트 클라크는 소통이 공통 기반 위에서만 성립한다고 설명합니다. 대화하는 사람들이 공유한다고 서로 믿는 지식의 토대가 있어야 말이 통한다는 것이지요. 핸드오프가 어긋나는 이유가 여기 있습니다. 디자이너는 이 버튼이 눌리면 0.2초간 부드럽게 눌리는 느낌이 당연하다고 여기지만, 그 당연함은 개발자와 공유된 적이 없습니다. 명시되지 않은 의도는 공통 기반에 오르지 못하고, 전달의 마지막 단계에서 조용히 사라집니다.

같은 도면을 세 사람이 다르게 읽었다

에이전시에서 한 공간 프로젝트를 맡았던 시절의 일입니다. 도면대로 진행했는데 현장에 가보니 실제 치수가 도면과 맞지 않았습니다. 더 곤란했던 것은 그다음이었습니다. 디자이너인 저와 기획 담당자, 그리고 시공팀이 같은 도면을 펴놓고도 서로 다른 그림을 머릿속에 그리고 있었던 것입니다. 말로는 분명 합의된 듯했지만, 각자가 가리키는 곳이 미묘하게 달랐습니다. 공통 기반이 있다고 믿었을 뿐, 실제로는 없었던 것이지요.

문제를 푼 것은 더 자세한 도면이 아니었습니다. 저는 공간을 3D 모델로 세워, 모두가 같은 입체를 보면서 같은 지점을 손가락으로 가리킬 수 있게 했습니다. 시공팀은 시공의 관점에서, 기획자는 동선의 관점에서, 저는 비례의 관점에서 그 모델을 각자 다르게 읽었지만, 가리키는 대상은 하나였습니다. 그 3D 모델이 바로 경계 객체였습니다. 세 직군의 서로 다른 언어를 하나의 대상 위에서 만나게 한 것입니다.

디지털 제품에서 이 객체의 역할을 하는 것이 디자인 토큰과 Dev Mode 명세, 그리고 동작하는 프로토타입입니다. 특히 토큰은 강력합니다. 색상이나 간격 같은 결정에 이름을 붙여, 디자인 도구와 코드가 동일한 이름을 부르게 만들기 때문입니다. 개발자가 화면에서 hex 값 대신 의미가 담긴 토큰 이름을 본다면, 옮겨 적는 과정에서 생기던 오류가 사라집니다. 이것은 디자인 시스템이 컴포넌트의 모음이 아니라 공유된 언어라는 사실의 가장 실용적인 증거이기도 합니다.

토큰과 조기 참여로 핸드오프를 다시 설계하라

핸드오프를 전달이 아니라 공유로 바꾸기 위해, 내일부터 점검할 수 있는 것들을 정리해보겠습니다.

핸드오프를 순간으로 다룰 때과정으로 다룰 때
시안 완성 후 한 번에 전달와이어프레임부터 함께 검토
디자이너가 그리고 개발자가 받는다같은 객체를 함께 들여다본다
어긋나면 구현 단계에서 발견어긋남을 미리 좁혀둔다

이렇게 보면 디자이너의 일은 화면을 그려 넘기는 데서 끝나지 않습니다. 오히려 디자이너가 화면을 그리지 않는다고 말할 만큼, 협업의 구조를 설계하는 일이 점점 더 큰 비중을 차지합니다.

결론

핸드오프는 파일을 던지고 돌아서는 선이 아니라, 두 직군이 같은 객체 앞에 나란히 서는 다리입니다. 의도는 전달되는 순간 일부가 사라지지만, 공유되는 객체 위에서는 함께 다듬어질 수 있습니다. 그래서 좋은 디자인은 넘겨지는 것이 아니라 공유되는 것입니다.

그러니 다음에 시안을 넘기기 전에, 우리가 진짜로 건네야 하는 것이 무엇인지 한 번 더 물어보면 좋겠습니다. 개발자에게 필요한 것은 더 정교한 그림 한 장이 아니라, 함께 가리킬 수 있는 하나의 대상일지도 모릅니다. 여러분의 팀은 지금, 같은 것을 보고 있나요?


참고 자료

자주 묻는 질문

디자인 핸드오프란 무엇인가요? +

디자이너가 만든 화면을 개발자가 구현할 수 있도록 명세와 의도를 넘기는 과정입니다. 다만 파일을 한 번 전달하고 끝나는 순간으로 보면 의도와 상태 정보가 빠지기 쉽습니다. 좋은 핸드오프는 일회성 전달이 아니라 구현 중에도 이어지는 협업에 가깝습니다.

디자인 핸드오프에서 가장 많이 누락되는 것은 무엇인가요? +

상태 문서화입니다. 시안은 대개 모든 것이 잘 풀린 화면 한 장만 보여주지만, 구현에는 로딩, 에러, 빈 화면, 비활성, 포커스 상태가 모두 필요합니다. 이 상태들이 정의되지 않으면 개발자가 임의로 채우게 되고, 그 지점에서 제품이 시안과 갈라집니다.

디자인 토큰이 핸드오프에 어떻게 도움이 되나요? +

토큰은 색상, 간격, 타이포그래피 같은 디자인 결정에 이름을 붙여 디자인 도구와 코드가 같은 이름을 부르게 합니다. 개발자가 Dev Mode에서 hex 값 대신 토큰 이름을 보면 번역 과정에서 생기는 오류가 사라지고, 디자인이 바뀌어도 이름이 그대로라 어긋남이 줄어듭니다.

개발자를 언제 디자인 과정에 참여시켜야 하나요? +

와이어프레임 단계처럼 아이디어가 아직 말랑할 때가 가장 좋습니다. 시안을 다 그린 뒤에 구현이 불가능하다는 피드백을 받으면 가장 비싼 재작업이 발생합니다. 일찍 부를수록 기술적 제약을 미리 반영해 핸드오프 자체가 가벼워집니다.

이 글 공유하기

디자이너 포트폴리오, 무엇을 담아야 할까요?

커리어노트가 설계를 돕습니다

무료로 시작하기

관련 글

디자인 시스템은 컴포넌트 모음이 아니다

디자인 시스템은 컴포넌트 모음이 아니다

피그마 라이브러리는 가득 찼는데 화면마다 버튼이 제각각인 이유는 컴포넌트가 부족해서가 아닙니다. 디자인 시스템의 본질을 부품 창고가 아니라 팀이 공유하는 언어와 합의의 체계로 다시 정의하고, 거버넌스와 네이밍, 채택이 왜 진짜 일인지 짚어봅니다.

더 읽기
UX 라이팅은 문구 다듬기가 아니다

UX 라이팅은 문구 다듬기가 아니다

버튼 앞에서 손가락이 멈추는 건 화면이 덜 예뻐서가 아니라 문장이 다음 행동을 안내하지 못해서입니다. UX 라이팅을 마지막에 글자를 채우는 마무리 작업이 아니라 사용자의 행동을 설계하는 인터페이스의 일부로 다시 정의하고, 마이크로카피 한 줄이 전환을 어떻게 바꾸는지 짚어봅니다.

더 읽기
접근성은 배려가 아니라 설계다

접근성은 배려가 아니라 설계다

연한 회색 글씨처럼 세련돼 보이는 화면이 누군가에게는 읽을 수 없는 벽이 됩니다. 접근성을 약자를 위한 선의가 아니라 모두를 위한 디자인 품질로 바라봐야 하는 이유를, 커브컷 효과와 포용적 디자인의 관점에서 짚어봅니다.

더 읽기