인터랙션 엔지니어링 · 2 / 10

상태 3종 세트: 로딩, 빈 상태, 오류 상태

AI가 만든 UI는 기본적으로 상태가 하나예요. 데이터 충분, 네트워크 원활, 전부 정상. 그런데 사용자가 처음 만나는 화면은 대개 다른 셋이에요. 데이터 없음, 기다리는 중, 뭔가 깨짐. 이 세 가지 비정상 순간이야말로 경험의 분수령이에요. 이번 레슨에서 상태 3종 세트를 하나씩 뜯고, 각각에 A/B 대결을 붙입니다.

빈 상태스켈레톤 스크린오류 3요소카피 고쳐 쓰기
정상은 합격선이고, 비정상 순간에서 격차가 나요

AI에게 「노트 앱 하나 만들어 줘」라고 하면, 예쁜 가짜 데이터가 미리 깔린 화면을 내놓아요. 실제 사용자의 첫 화면에는 데이터가 없어요. 첫 검색은 타임아웃날 수 있고, 첫 동기화는 실패할 수 있어요. 그 순간을 어떻게 그릴지 AI는 스스로 안 떠올려요. 요구하지 않으면 전부 대충이에요.

상태AI 기본의 대충 버전있어야 할 모습
빈 상태텅 빈 화면, 또는 회색 한 줄 「데이터 없음」다음 단계를 가르치기: 여기가 뭔지 설명하고, 동작 입구를 주고, 가능하면 예시까지
로딩맨 스피너 하나, 1초든 30초든 같은 모습어디까지 왔는지 말하기: 콘텐츠 모양을 먼저 그리고, 진행이 보이게
오류 상태alert로 코드 뭉치를 띄우거나, 아예 반응이 없음사람 말로 퇴로 주기: 무슨 일, 왜, 어떻게

지난 레슨의 배려 체크리스트가 여기서 전부 쓰여요. 빈 상태는 미리 내다보기를, 로딩은 제때 알리기를, 오류 상태는 자기 문제로 짐을 더하지 않기를 시험해요. 3종 세트를 하나씩 가요.

빈 상태는 신규 사용자의 첫 화면이에요. 하얀 화면을 주지 마세요

Cooper는 《About Face 4》 제 8장에서 도와주는 소프트웨어를 비유해요. 매장 직원에게 길을 물으면, 좋은 직원은 길만 알려 주는 게 아니라 더 이득인 선택도 짚어 줘요. 빈 상태는 사용자가 길을 묻는 순간이에요. 도착했는데, 그래서요? 텅 빈 화면은 직원이 어깨를 으쓱하는 것과 같아요.

좋은 빈 상태는 세 질문에 답해요. 여기가 뭔지, 지금 뭘 할 수 있는지, 하면 대략 어떤 모습인지. 앞의 둘은 한 문장과 버튼 하나로 해결되고, 세 번째는 예시 데이터나 템플릿이 필요해요. 아래 노트 앱 둘 다 첫 실행이에요. 더 배려한다고 생각하는 쪽을 눌러 주세요.

처음 연 노트 앱 A/B 대결
카드를 눌러 투표하면, 판정이 열려요
방안 A
notes.example.com
내 노트0편
목록 영역이 텅 비어 있고, 새 노트 버튼은 오른쪽 위 메뉴에 숨겨져 있어요
방안 B
notes.example.com
내 노트0편
아직 노트가 없어요
첫 줄을 쓰거나, 템플릿으로 시작해요
첫 노트 쓰기 예시 노트 모습 보기
여기가 뭔지 설명하고, 주 버튼을 주고, 예시 입구까지 준비했어요
로딩에서 맨 스피너만 돌리지 말고, 어디까지 왔는지 말해요

배려하는 소프트웨어는 제때 알려 줘요. 사용자가 관심 있는 진행은 보이게 해야 해요. 맨 스피너는 「바쁘다」만 전해요. 오 초가 지나면 사용자는 멈춘 건가 의심하기 시작해요. 스켈레톤 스크린은 콘텐츠 모양을 먼저 그려 「곧 오고, 오면 이런 모습」을 알리고, 진행 설명을 붙이면 불안이 크게 줄어요.

얼마나 기다릴 때 어떤 피드백을 줄지—그 세 단계 대기 심리는 심리학 부에서 이미 다뤘어요. 여기에 점프 카드만 두고, 다시 가르치진 않아요.

다른 부 링크 · 대기 심리: 괴로운 건 그 5초가 아니었어요0.1초 / 1초 / 10초 세 단계 피드백 결정, 왜 기대 관리가 속도 올리기보다 먹히는지—심리학 부 2레슨에서 다 다뤄요. 여기를 눌러 건너가세요.
같은 3초 대기, 두 가지 기다리는 법 A/B 대결
좌우 둘 다 로딩 데모를 재생해요(교구라서 일시정지할 수 있어요). 더 배려한다고 생각하는 쪽을 눌러 주세요
방안 A
chat.example.com
메시지 목록
로딩 중…
맨 스피너: 바쁘다—뭐가, 어디까지, 얼마나 더? 전부 침묵
방안 B
chat.example.com
메시지 목록
최근 30일 메시지를 불러오는 중…
스켈레톤 스크린: 콘텐츠 모양을 먼저 그리고, 어디까지 왔는지와 진행 바를 붙였어요
오류 상태 3요소: 무슨 일, 왜, 어떻게

Cooper는 《About Face 4》 제 15장에서 오류 메시지에 대해 단호해요. 옛식 오류 대화상자는 사용자를 탓하거나 기술 장애를 떠넘기고, 대부분은 아예 나와선 안 돼요. 꼭 말해야 할 때는 세 가지를 분명히 하세요. 무슨 일, 왜 이런지, 지금 어떻게. 셋이 갖춰져야 사람 말이고, 「어떻게」가 빠진 오류 정보는 막다른 골목에 가두는 것과 같아요.

바닥선이 하나 더 있어요. 말투로 사용자를 탓하면 안 돼요. 제 15장의 원칙은 사용자 시선에 잘못이 없다는 거예요. 「잘못된 문자를 입력했습니다!」를 「여기에는 글자와 숫자만 쓸 수 있어요」로 바꾸면, 정보는 같고 태도는 천지 차이예요. 아래 동기화 실패 안내 둘 중 더 배려하는 쪽을 눌러 주세요.

같은 동기화 실패, 두 가지 말법 A/B 대결
카드를 눌러 투표하면, 판정이 열려요
방안 A
notes.example.com
내 노트
오류
SyncException: ETIMEDOUT at
upload.ts:214 (code 10060)
확인
예외 스택이 그대로 올라오고, 유일한 퇴로는 「확인」을 눌러 체념하는 일뿐이에요
방안 B
notes.example.com
내 노트
이 노트는 아직 동기화되지 않았어요
무슨 일방금 수정은 이 기기에 저장됐고, 클라우드에는 아직 안 갔어요.
네트워크 연결이 시간 초과됐어요. 망이 불안정할 수 있어요.
어떻게연결되면 자동으로 다시 시도하고, 지금 수동으로 동기화할 수도 있어요.
지금 다시 시도나중에
3요소가 갖춰져 있고, 로컬 데이터가 안 사라졌다는 것도 말했으며, 퇴로를 둘 줬어요
실습 · 약한 카피 세 줄을 사람 말로

3요소 공식을 베끼는 것만으로는 부족해요. 손맛을 익혀야 해요. 아래 오류 카피 세 줄은 AI 산출의 실제 수준이에요. 줄마다 「고쳐 쓰기」를 눌러, 약한 카피가 3요소로 어떻게 다시 쓰이는지 보고, 어디가 약했는지도 기억해 두세요.

오류 카피 고쳐 쓰기 고쳐 쓰기 0 / 3
각 줄 오른쪽 「고쳐 쓰기」를 누르면, 약한 카피는 지워지고 3요소 버전이 펼쳐져요
작업에 실패했습니다. 다시 시도하세요.고쳐 쓰기 →
무슨 일경비 청구서가 제출되지 않았고, 초안은 그대로 남아 있어요.
첨부 파일이 10MB 상한을 넘었어요.
어떻게첨부를 압축하거나, 두 장으로 나눠 제출해 보세요.
원문 병소: 「작업 실패」는 어떤 작업인지 안 말하고, 「다시 시도」는 빈말이에요. 열 번 다시 해도 실패해요. 병근이 첨부 크기거든요.
Error 422: Unprocessable Entity고쳐 쓰기 →
무슨 일배송 정보가 저장되지 않았어요.
휴대폰 번호가 한 자리 모자라고, 지금 10자리예요.
어떻게빠진 자리를 채우면 제출할 수 있어요. 커서를 그쪽에 옮겨 뒀어요.
원문 병소: HTTP 상태 코드는 개발자용 로그예요. 사용자에게 들이미는 건 남 탓이에요. 지난 레슨 진료 카드 넷이 바로 이거예요.
잘못된 문자를 입력했습니다!고쳐 쓰기 →
무슨 일사용자 이름이 아직 검사를 통과하지 않았어요.
사용자 이름은 글자·숫자·밑줄만 되고, 공백은 들어올 수 없어요.
어떻게공백을 밑줄로 바꾸면 돼요. 예: xiao_shan.
원문 병소: 「잘못된」에 느낌표까지 붙이면, 공백 하나가 용의자가 돼요. 제 15장의 바닥선은 말투로 사용자를 탓하지 않는 거예요. 규칙만 밝히면 돼요.
자가 점검 · 당신 페이지는 상태를 몇 개 덮었나요

3종 세트를 다 말했으니, 자가 점검 표로 마무리해요. 최근에 AI에게 만들게 한 페이지를 떠올리고, 아래 다섯 상태 중 만든 것만 체크하면 커버리지가 바로 나와요. 이 표는 AI에게 요구를 넣는 템플릿이기도 해요. 9레슨에서 표 전체를 프롬프트에 넣는 법을 배워요.

상태 커버리지 자가 점검표 0 / 5
행을 눌러 체크하고, 풀었다가 다시 체크해도 돼요. 판정은 커버리지 구간에 따라 바뀌어요
기본 상태데이터가 가득할 때의 정상 표시. AI가 반드시 만들고, 공짜 한 점이에요
로딩 상태스켈레톤 스크린 또는 진행 설명. 맨 스피너는 반점이에요
빈 상태여기가 뭔지 설명하고, 동작 입구를 주고, 예시가 있으면 더 좋아요
오류 상태무슨 일, 왜, 어떻게—3요소가 갖춰져야 해요
성공 상태성공은 보여야 하지만, 팝업으로 생색내면 안 돼요(지난 레슨 대결)
상태 커버리지0%
핵심 요점

비정상 순간이 분수령이에요: AI는 기본적으로 「전부 정상」만 만들어요. 빈 상태·로딩·오류 상태 3종 세트를 요구에 안 넣으면, 전부 대충이에요.

빈 상태는 다음 단계를 가르쳐야 해요: 여기가 뭔지, 동작 입구, 예시. 빈 상태는 신규 사용자의 첫 화면이고, 하얀 화면은 사람을 밖으로 밀어내요.

로딩은 어디까지 왔는지 말해야 해요: 스켈레톤 스크린으로 콘텐츠 모양을 먼저 주고, 진행 설명을 붙이세요. 대기 피드백 세 단계는 psy-2에 있어요. 다시 안 가르쳐요.

오류 상태 3요소: 무슨 일, 왜, 어떻게. 말투로 사용자를 탓하지 마세요(Cooper, 《About Face 4》 제 15장). 더 나은 생각은 오류가 애초에 나지 않게 하는 거예요. 다음 레슨에서 오류 방지와 되돌릴 수 있음을 다뤄요.

출처: 샤오산 아카데미 「인터랙션 엔지니어링」 특집 오리지널; 일부 인터랙션 원칙은 《About Face 4: 인터랙션 디자인의 정수》에서 정리했어요.