📑 D. 인터랙션 — 목업 v4 (논증 + 설명 산문)

「논증형 교안 슬라이드 포맷」으로 제작. 한 질문을 끝까지 따라가는 하나의 논증으로 D1~D4(터치·상태·로딩·에러)를 엮었습니다. 슬라이드마다 강사가 읽고 그대로 말할 수 있는 설명 산문을 넣었고, 모든 수치·연구는 1차 자료로 확인했습니다(날조 없음).

이 장이 던지는 질문
화면을 '만질 때' 사용자는 무엇을 믿고 누르는가?  →  주장: 좋은 인터랙션은 매 순간 '내가 한 일이 통했다'는 확신을 준다 — 즉 A장 '평가의 간극'을 좁히는 일이다.
D
UX/UI 디자인 · 보는 눈, 만드는 손
CHAPTER D

인터랙션

'만질 때'의 확신을 설계하다  ·  D1 터치+피드백 / D2 상태 / D3 로딩 / D4 에러
이 장은 단 하나의 질문에서 출발한다 — "화면을 만질 때 사용자는 무엇을 믿고 누르는가?" A장에서 우리는 '평가의 간극'(했는데 됐는지 모름)을 배웠다. 이 장은 그 간극을 네 단계로 메운다 — 누를 수 있음을 알리고(터치) → 눌렀음·지금 상태를 알리고(피드백·상태) → 기다림을 견디게 하고(로딩) → 실패해도 길을 알린다(에러). 네 단계가 합쳐져 '내가 한 일이 통했다'는 확신을 만든다.
D. 인터랙션
01 / 12
D · 이 장의 지도
전체 구성 — 시작 전에 길을 펼친다

'확신을 주는 네 단계'로 평가의 간극을 메운다

이 장은 네 가지 인터랙션 기법(터치·상태·로딩·에러)을 따로 나열한 게 아니라, 하나의 목표를 향한 단계로 엮는다. 그 목표는 A장에서 배운 '평가의 간극'을 좁히는 것 — 즉 사용자가 매 순간 "내가 한 일이 통했다"는 확신을 갖게 하는 일이다. 본론에 들어가기 전, 우리가 지나갈 길을 먼저 펼쳐 둔다.

확신을 주는 네 단계 — '누를 수 있음 → 눌렀음 → 기다림 → 실패해도 길'  (p3–p10)
D1 · 터치
"누를 수 있음"을 알린다 — 정확히 누르게
p3–4 · 피츠의 법칙
D2 · 상태
"눌렀음·지금 상태"를 알린다
p5–6 · 닐슨 #1·피드백
D3 · 로딩
기다림을 견디게 한다 — 체감 단축
p7–8 · 도허티 임계
D4 · 에러
실패해도 길을 알린다
p9–10 · 닐슨 #5·#9
정리 — 한 줄의 논증으로 회수  (p11)  +  출처/다음 장 (p12)
🔎 회수의 약속 네 단계는 모두 노먼의 '평가의 간극'(시스템이 한 일 ↔ 내가 아는 것)을 좁히는 서로 다른 손길이다. 마지막 정리(p11)에서 이 네 손길이 어떻게 하나의 확신으로 합쳐지는지 다시 거둬들인다.
→ 자, 출발가장 먼저, 확신은 '제대로 누르는 것'에서 시작한다 — 손가락은 커서가 아니다. 버튼은 얼마나 커야 하는가?
D. 인터랙션
02 / 12
D1 · 1단계 · 근거: 피츠의 법칙(1954)
D1 터치D2 상태D3 로딩D4 에러— 누를 수 있음을 알린다
확신의 출발 — 정확히 누르게 한다

손가락은 커서가 아니다 — 크고 가까울수록 빨리 닿는다

확신은 '제대로 눌렀다'는 데서 시작한다. 그런데 마우스 커서는 1px도 찍지만, 손가락 끝은 그보다 훨씬 굵다. 작은 버튼은 자꾸 옆을 누르게 되고, 그때마다 사용자는 "내가 잘못했나?" 자책하며 흐름이 끊긴다. 1954년 심리학자 폴 피츠는 이 현상을 법칙으로 정리했다 — 대상에 닿는 시간은 '거리'와 '크기'로 정해진다.

📐 피츠의 법칙 Fitts's Law · 1954

"대상에 닿는 데 걸리는 시간은 대상까지의 거리와 대상의 크기의 함수다." 즉 타깃이 클수록·가까울수록 더 빠르고 정확하게 누른다. 그래서 터치 버튼은 충분히 크고, 서로 충분히 떨어져 있어야 한다.

🔘 엘리베이터 버튼이 작다면?

버튼이 손톱만 하고 다닥다닥 붙어 있으면, 누르려던 층 대신 옆 층을 누른다. 화면도 같다 — 24px 아이콘을 다닥다닥 붙여 놓으면 오터치(잘못 누름)가 쏟아지고, 그때마다 확신은 무너진다.

🔎 한 걸음 더 피츠의 법칙은 화면 가장자리·모서리가 왜 '누르기 쉬운 명당'인지도 설명한다 — 커서·손가락이 그 너머로 못 빠져나가 사실상 무한히 큰 타깃이 되기 때문이다. PC의 시작 버튼(좌하단 모서리), 폰의 하단 탭바가 끝에 붙는 이유다.
🎓 교실에서 design-sense 이론 탭touch-target 카드로 24px 버튼과 48px 버튼을 번갈아 눌러보게 해, 오타 빈도 차이를 손가락으로 직접 체감시킨다 — "왜 이게 자꾸 옆이 눌리지?"가 곧 피츠의 법칙이다.
→ 그래서법칙은 알았다. 그럼 버튼은 구체적으로 몇 px이어야 하나? 디자인 표준은 이미 숫자로 답을 정해 두었다.
D. 인터랙션
03 / 12
D1 · 2단계 · 근거: Material Design · Apple HIG
D1 터치D2 상태D3 로딩D4 에러
규칙으로 굳히기 — 48px의 근거

최소 48×48 — 보이는 크기와 '눌리는 크기'는 다르다

피츠의 법칙을 현장 규칙으로 굳힌 것이 디자인 표준이다. 구글 머티리얼 디자인은 터치 타깃 최소 48×48dp를, 애플 HIG44×44pt를 권한다(손가락 끝 평균 크기 근거). 핵심 반전은 이것이다 — 아이콘은 24px로 작아도, 눌리는 영역은 투명 여백까지 넓혀 48px로 만들 수 있다. 보이는 크기와 눌리는 크기는 다른 문제다.

✅ 48×48 + 간격 8px

  • 모든 연령·장갑 낀 손도 정확히 누름
  • 옆 버튼 오터치가 사라진다
  • 아이콘은 24px이라도 주변 투명영역까지 터치로 잡는다

❌ 24×24 + 간격 없음

  • 자꾸 옆이 눌려 자책·재시도
  • 어린이·어르신은 사용 불가 = 접근성 위반
  • "화면을 효율적으로 쓴다"는 착각의 대가
🔎 표준 숫자 정리 Material 48×48dp(약 9mm, 화면 크기와 무관하게 거의 일정) · Apple HIG 44×44pt · 버튼 사이 간격 8px+. 48dp는 손끝 평균 접촉면에 맞춘 값으로, 작은 화면에서도 물리 크기를 유지하려 dp(밀도독립 단위)를 쓴다.
🎯 그래서 당신은 터치 요소를 만들 때 "보이는 크기"가 아니라 "눌리는 크기"를 48px로 맞춘다 — 아이콘이 작아도 패딩으로 타깃을 넓히고, 버튼끼리는 8px 이상 띄운다.
→ 그래서정확히 눌렀다고 치자. 그런데 사용자는 '눌렸다'는 걸 어떻게 아는가? 누른 다음이 더 중요하다.
D. 인터랙션
04 / 12
D2 · 1단계 · 근거: 닐슨 휴리스틱 #1 · NN/g 반응시간
D1 터치D2 상태D3 로딩D4 에러— 눌렀음을 알린다
평가의 간극을 정조준

반응이 없으면, 사용자는 '또' 누른다

A장의 평가의 간극("했는데 됐는지 모르겠다")이 가장 적나라하게 터지는 곳이 바로 여기다. 엘리베이터 버튼을 눌렀는데 불이 안 들어오면 우리는 눌렸는지 몰라 계속 누른다. 앱도 똑같다 — 누른 즉시 반응(색 변화·토스트)이 오면 "됐구나" 안심하지만, 반응이 없으면 같은 버튼을 또 눌러 중복 결제·중복 전송까지 일으킨다. 그래서 피드백은 친절이 아니라 확신의 최소 조건이다.

👁️ 닐슨 휴리스틱 #1 시스템 상태 가시성

"디자인은 지금 무슨 일이 일어나는지를, 적절한 피드백으로 합리적 시간 안에 늘 사용자에게 알려야 한다." 닐슨의 10대 휴리스틱 1번 — 즉 첫 번째 원칙이 '상태를 보여줘라'다.

⏱️ 피드백은 0.1초 안에

NN/g 반응시간 3한계 — 0.1초 이내면 "즉각 반응한다"고 느낀다. 인스타 하트가 누르자마자 빨갛게 차오르는 이유. 늦으면 "눌린 거 맞아?" 불안이 시작된다.

🔎 NN/g 반응시간 3한계 0.1초 = 즉각 반응 느낌(별도 피드백 불필요) · 1초 = 생각의 흐름이 안 끊기는 한계 · 10초 = 주의를 붙들 수 있는 한계(넘으면 딴 일 하러 감). 로버트 밀러(1968)의 연구를 닐슨이 정리했다. → 0.1초는 '눌렀음', 그 위 단계는 D3 로딩의 영역이다.
→ 그런데'눌렀음'만 알리면 끝일까? 사용자는 그 전에 "이걸 눌러도 되나?"부터 묻는다. 버튼은 자기 상태를 모습으로 말해야 한다.
D. 인터랙션
05 / 12
D2 · 2단계 · 근거: Material Design 상태(states)
D1 터치D2 상태D3 로딩D4 에러
신호등처럼 — 모습으로 말하기

버튼은 누르기 '전에' 이미 자기 상태를 말한다

신호등은 색으로 '지금 상태'를 말한다 — 빨강=멈춤, 초록=가도 됨. 버튼도 똑같이 모습으로 자기 상태를 구분해줘야 한다. 모든 상태가 똑같이 생기면, 사용자는 눌러보고 나서야 "아, 이건 안 되는 거였네"를 안다(= 또 하나의 평가의 간극). 머티리얼은 한 요소가 가지는 상태를 enabled·hover·focus·pressed·disabled 등으로 규정한다.

Default
기본 · 누를 수 있음
Hover / Focus
손 올림 · 키 포커스(ring)
Pressed
누르는 중 · 즉각 반응
Disabled
못 누름 · 흐리게(38%)

✅ 배민 '주문하기'

메뉴를 안 담으면 회색(비활성), 담으면 청록(활성)으로 또렷이 바뀐다 — 모습만 보고 "지금 눌러도 되는지"를 안다.

❌ 모든 상태가 동일

빈 장바구니인데 주문 버튼이 멀쩡히 활성처럼 보이면, 눌렀다가 "담긴 게 없다"는 에러를 만난다. 비활성을 숨기면 '기능이 없다'고 오해한다.

🔎 한 걸음 더 머티리얼은 비활성 요소를 내용(글자·아이콘)은 38%·테두리/배경은 12% 불투명도로 흐리게 처리하도록 정한다. 또 모바일엔 Hover가 없다(마우스 부재) — 폰에선 Default·Pressed·Disabled·Selected가 더 중요하고, PC용 Hover 효과만 믿으면 안 된다.
🎯 그래서 당신은 버튼을 만들 때 모습 하나가 아니라 최소 4상태(기본·호버/포커스·누름·비활성)를 함께 디자인한다 — 비활성은 숨기지 말고 흐리게 보여주되 못 누르게.
D. 인터랙션
06 / 12
D3 · 1단계 · 근거: 도허티 임계(IBM, 1982)
D1 터치D2 상태D3 로딩D4 에러— 기다림을 견디게
확신이 흔들리는 '공백' 구간

기다림의 적은 '시간'이 아니라 '불확실함'이다

누를 수 있고, 눌렀고, 상태도 보였다. 그런데 결과가 바로 안 나오는 대기 구간이 남는다. 여기서 확신이 가장 크게 흔들린다 — "주문이 들어가긴 한 거야?" IBM의 도허티 임계(1982)는 그 분기점을 숫자로 못박았다 — 시스템 응답이 400ms(0.4초) 이내면 사람과 컴퓨터 중 누구도 서로를 기다리지 않아 생산성과 몰입이 치솟는다.

400ms
응답이 이 아래면
몰입 유지
도허티 & 타다니
IBM Systems Journal 1982
· 과거 '2초' 기준을 대체

400ms는 사람이 '반응이 즉각적'이라 느끼는 경계다. 이 아래면 작업이 끊김 없이 흐르고, 넘어가면 주의가 흩어지기 시작한다. 하지만 모든 응답을 400ms로 만들 순 없다 — 네트워크·서버는 우리 통제 밖이다. 그래서 다음 장이 중요해진다: 실제 속도를 못 줄일 때, '체감 속도'는 디자인으로 줄인다.

⚠️ 한계 — 400ms는 이상치다. 현실의 로딩은 그보다 오래 걸린다. NN/g 반응시간으로 보면 1초까지는 흐름 유지, 10초가 주의를 붙드는 한계다. 그 사이를 견디게 하는 게 로딩 디자인의 일이다.
→ 그래서속도를 더 못 줄인다면? 같은 3초도 짧게 느껴지게 만들 수 있다. 빈 화면 대신 무엇을 보여줄 것인가?
D. 인터랙션
07 / 12
D3 · 2단계 · 근거: NN/g 스켈레톤 스크린 · 체감 성능
D1 터치D2 상태D3 로딩D4 에러
체감 성능 — 정보로 시간을 줄인다

같은 3초인데 왜 스켈레톤이 더 빨라 보일까

식당에서 "5분 뒤 나와요"라는 한마디가 같은 기다림을 견딜 만하게 만든다. 로딩도 똑같다 — 빈 화면에 스피너만 돌면 고장 같지만, 곧 나올 콘텐츠의 윤곽(스켈레톤)을 회색 박스로 미리 보여주면, 사용자는 "곧 여기 뜨겠구나" 예측하며 머릿속 그림을 미리 그린다. 그래서 실제 시간이 같아도 더 짧게 느껴진다(체감 성능). 기다림의 핵심은 속도가 아니라 정보다.

✅ 스켈레톤 UI (유튜브·인스타)

영상 목록이 뜨기 전 회색 썸네일·제목 자리가 먼저 깔린다 → "곧 여기 뜬다"는 예측이 생겨 대기가 짧게 느껴지고, 포기하지 않는다. 전체 화면 로딩에 특히 적합.

❌ 빈 화면 + 스피너만

얼마나 기다릴지 모르고 "고장났나" 의심 → 대기가 길게 느껴지고 이탈. 단, 아주 짧은 작업(1초 미만)엔 스피너가 번쩍 사라져 화면이 깜빡이니 오히려 안 넣는 게 낫다.

🔎 한 걸음 더 NN/g은 스켈레톤이 "더 짧은 대기의 착시"를 만든다고 설명한다. '스켈레톤 스크린'이란 용어는 루크 로블르스키가 2013년 제안했다(2차 자료). 길이별 처방: ~1초=표시 생략, 2~10초=스켈레톤/스피너, 10초+=진행률(%)·단계 표시로 끝을 보여준다.
🎯 그래서 당신은 못 줄이는 대기엔 '얼마나·무엇이' 정보를 채운다 — 전체 화면은 스켈레톤, 긴 작업은 진행률, 실패엔 '다시 시도'. 빈 화면+스피너만은 최후의 선택지다.
D. 인터랙션
08 / 12
D4 · 1단계 · 근거: 닐슨 휴리스틱 #9
D1 터치D2 상태D3 로딩D4 에러— 실패해도 길을 알린다
확신의 마지막 보루 — 실패의 순간

좋은 에러는 코드가 아니라 '길'을 알려준다

아무리 잘 만들어도 사용자는 실패한다 — 잘못 입력하고, 인터넷이 끊긴다. 확신이 가장 크게 흔들리는 이 순간이 마지막 보루다. 길을 잘못 들었을 때 "그쪽 아닙니다"라고만 하면 막막하지만, "여기서 우회전하면 됩니다"라고 하면 바로 해결한다. 닐슨 휴리스틱 #9는 못박는다 — 에러 메시지는 코드가 아니라 평이한 말로, 문제를 정확히 짚고, 해결책을 건설적으로 제안해야 한다.

❌ "Error 500" / "입력 오류"

뭐가 틀렸는지·어떻게 고치는지 알 수 없다. 사용자는 막다른 길에 갇혀 앱을 꺼버린다. 정확한 코드가 친절한 게 아니다 — 읽어도 할 일을 모른다.

✅ 위치 + 이유 + 해결

  • 위치 — 어느 칸이 틀렸나 (빨간 테두리)
  • 이유 — 왜 안 되나
  • 해결 — "올바른 이메일 형식으로 입력해 주세요" + '다시 시도'
🔎 한 걸음 더 입력 오류는 그 자리에서(해당 칸 옆) 표시한다 — 제출 후 전체가 사라지면 최악이다. 또 잘못을 사용자 탓으로 몰지 않는다: "당신이 틀렸다"가 아니라 "이렇게 하면 됩니다" 톤. 에러 화면은 앱이 사용자를 대하는 '태도'가 드러나는 곳이다.
→ 그런데가장 좋은 에러 메시지는 사실… 안 뜨는 메시지다. 에러를 잘 알리는 것보다 한 수 위가 있다.
D. 인터랙션
09 / 12
D4 · 2단계 · 근거: 닐슨 휴리스틱 #5(에러 방지)
D1 터치D2 상태D3 로딩D4 에러
한 수 위 — 에러가 안 나게 막기

최고의 에러 처리는, 에러를 미리 막는 것이다

에러를 친절하게 알리는 것도 중요하지만, 닐슨은 그 위에 #5 에러 방지를 둔다 — "좋은 에러 메시지도 중요하지만, 최고의 디자인은 애초에 문제가 생기지 않게 미리 막는다." 여기서 이 장 전체가 하나로 묶인다 — 에러 방지는 결국 앞의 세 단계(터치·상태·로딩)를 잘하는 일이기 때문이다.

예방 기법무엇을 미리 막나연결
안 되는 선택지 비활성화못 고르는 날짜·조건 미충족 버튼을 흐리게(못 누르게)D2 상태
입력 규칙을 칸 옆에 미리"8자 이상" 안내를 입력 전에 보여줌D2 상태
충분한 터치 타깃오터치 자체를 줄여 실수 발생을 차단D1 터치
중요 행동엔 확인'삭제' 전 한 번 더 물어 되돌릴 수 없는 실수를 방지평가의 간극
🔎 한 걸음 더 닐슨 #5(방지)와 #9(복구)는 한 쌍이다 — 먼저 실수를 줄이고(#5), 그래도 난 실수는 친절히 되돌리게(#9) 한다. 둘 다 사용자를 막다른 길에 두지 않는다는 같은 정신이다.
🎯 그래서 당신은 에러 메시지를 잘 쓰기 전에, 먼저 묻는다 — "이 에러, 애초에 안 나게 만들 수 있나?" 비활성·사전 안내·확인 한 번으로 막을 수 있다면 그게 최선이다.
D. 인터랙션
10 / 12
D · 정리
D장이 증명한 것 — 한 줄의 논증

네 손길이 합쳐져, 하나의 '확신'이 된다

이 장은 네 기법을 모은 게 아니라, A장의 '평가의 간극'을 메우는 하나의 추론이었다. 출발점은 "사용자는 무엇을 믿고 누르나?"였고, 도착점은 "좋은 인터랙션은 매 순간 '내가 한 일이 통했다'는 확신을 준다"였다. 터치·상태·로딩·에러는 그 확신을 네 지점에서 떠받치는 서로 다른 손길이다.

D1 터치"누를 수 있다"를 알린다 — 크고(48px) 떨어진 타깃 (피츠의 법칙)
↓ 눌렀다면
D2 상태"눌렀다·지금 이렇다"를 알린다 — 0.1초 피드백 + 4상태 (닐슨 #1)
↓ 결과를 기다린다면
D3 로딩기다림을 견디게 한다 — 400ms 이상이면 스켈레톤·진행률로 체감 단축 (도허티)
↓ 실패한다면
D4 에러실패해도 길을 알린다 — 위치·이유·해결 (닐슨 #9), 그리고 애초에 막기 (#5)
↓ 그러므로
결론네 손길이 모두 '평가의 간극'을 좁힌다 — 사용자가 매 순간 "통했다"를 알게 하는 일
🎯 한 문장 요약 인터랙션 디자인은 꾸미기가 아니라 '내가 한 일이 통했다'는 확신을 매 순간 돌려주는 일'이며, 그것은 곧 A장에서 배운 평가의 간극을 좁히는 일이다.
D. 인터랙션
11 / 12
더 읽을거리 · 검증된 1차 자료

근거가 된 자료 & 다음 장

  • 피츠, Fitts's Law(1954) — 대상에 닿는 시간 = 거리·크기의 함수 / lawsofux.com · D1 터치 근거
  • Material Design / Apple HIG — 터치 타깃 최소 48×48dp / 44×44pt, 상태(enabled·hover·focus·pressed·disabled) · D1·D2 근거
  • 닐슨, 10대 휴리스틱(1994, 갱신) — #1 시스템 상태 가시성 · #5 에러 방지 · #9 에러 인식·복구 / NN/g · D2·D4 근거
  • NN/g, 반응시간 3한계(0.1·1·10초, 밀러 1968) · 스켈레톤 스크린(체감 성능) · D2·D3 근거
  • 도허티 & 타다니, Doherty Threshold(IBM, 1982) — 응답 400ms 이하면 몰입·생산성 급상승 / lawsofux.com · D3 로딩 근거
회수 — A장으로 · D장의 네 단계는 모두 A장에서 배운 '평가의 간극'을 좁히는 손길이었다. 좋은 디자인이 '안 보이는' 비결은, 매 순간 사용자에게 "통했다"는 확신을 조용히 돌려주는 데 있다.
D. 인터랙션
12 / 12