USER EXPERIENCE

UX 사용성 · 인터랙션 노트

사용자가 어떻게 느끼고, 얼마나 막힘없이 과업을 끝낼까?

로딩 체감 속도, 5대 상태 매트릭스(Empty/Error), 알림 피드백, 단축키 동선, 모바일 터치 등 사용성을 결정짓는 인터랙션 설계 원칙

UX 사용성 · 인터랙션 아트워크
UX-1과업 · 정보구조JTBD · IA · 7대 법칙

사용자 과업(JTBD) · 정보 구조(IA) · UX 핵심 법칙

Jobs To Be Done, User Flow, Information Architecture & Core UX Laws
한 줄 요약 · CORE RULE

UI가 화면에 놓인 부품의 모양이라면, UX는 사용자가 망설이지 않고 목적을 끝내기까지의 동선과 인지 부담 관리다.

아무리 정돈된 화면이라도 메뉴명이 내부 개발 용어로 적혀 있거나 첫 화면에 선택지가 스무 개씩 펼쳐져 있으면 바로 피로해진다. 화면을 그리기 전에 핵심 과업과 인간의 인지 한계를 다루는 기본 법칙부터 기준으로 삼는다.

01 · 핵심 원리 정리

1

막연한 대상 대신 구체적 상황과 핵심 과업(JTBD) 정의

'누구나 쓰는 서비스'로 잡으면 모든 기능을 첫 화면에 우겨넣게 된다. 기능 명사가 아니라 사용자가 처한 상황과 해결하려는 목적(Job To Be Done) 문장으로 적어야 첫 화면 우선순위가 정리된다.

[상황] ~할 때, [동기] ~하고 싶다. [기대 결과] 그래야 ~할 수 있기 때문이다.
  • 예시: '점심시간이 짧은 직장인이(상황), 대기 없는 근처 식당 메뉴를 1분 안에 고르고 싶다(동기). 그래야 제시간에 식사하고 쉴 수 있다(결과).'
  • 이렇게 적어 두면 첫 화면의 주인공은 브랜드 소개가 아니라 '도보 5분 · 대기 없음 필터'로 즉시 좁혀진다.
2

정보 구조(IA)와 점진적 공개 (Progressive Disclosure)

정보 구조는 서비스의 콘텐츠와 기능을 예측 가능한 위치에 정리하는 설계도다. 처음엔 꼭 필요한 핵심만 보여주고 부가 설정은 필요할 때 열리게 하는 '점진적 공개'로 첫인상의 복잡도를 낮춘다.

  • 상단 주 메뉴(GNB)는 한눈에 파악되는 5~7개 이내로 두고, 탐색 깊이(Depth)는 3단계를 넘기지 않는다.
  • 메뉴와 버튼 라벨은 내부 DB 용어(`board_mst`, `설정값 관리`) 대신 일상 언어(`공지사항`, `알림 설정`)로 적는다.
  • 세부 옵션이 많을 때는 필수 항목 3개만 기본 노출하고 나머지는 `'고급 옵션 더 보기'`로 접어 둔다.
3

마이크로카피(UX Writing) 3원칙: 행동 동사 · 능동태 · 결과 명시

버튼 텍스트 한 줄과 안내 문구 한 줄이 오작동을 막는다. 모호한 `'확인 / 취소'` 대신 버튼을 누르면 실제로 일어나는 결과를 동사로 적는다.

  • 모호한 `'확인'` 대신 구체적 행동 표기: `'변경사항 저장'`, `'내보내기'`, `'영구 삭제하기'`.
  • 원인을 모호하게 적는 문장(`'형식이 잘못 입력되었습니다'`) 대신 해결 방법을 바로 알려주는 문장(`'이메일에 @ 기호를 포함해 주세요'`)을 쓴다.

02 · 기준 수치 · 비교표

화면 설계 판단 기준이 되는 주요 UX 법칙 7선
법칙 이름핵심 원리 요약화면 설계 적용 기준
힉의 법칙 (Hick's Law)선택지가 많고 복잡할수록 결정 시간은 급격히 늘어난다한 화면 핵심 선택지는 3~5개로 줄이고 추천 기본값(Default)을 미리 지정
피츠의 법칙 (Fitts's Law)목표물이 크고 현재 커서·손가락과 가까울수록 빠르고 정확히 누른다주 행동 버튼은 최소 44px 이상 확보하고 마지막 입력칸 바로 근처에 배치
제이콥의 법칙 (Jakob's Law)사용자는 다른 사이트에서 익숙해진 작동 방식을 그대로 기대한다로고 클릭=홈, 우측 상단=검색/계정, ESC=닫기 같은 웹 표준 관례 유지
밀러의 법칙 (Miller's Law)단기 작업 기억은 한 번에 7±2개(실용적으로 4~5덩어리)만 처리한다전화번호·카드번호는 4자리씩 끊어 보여주고 긴 폼은 의미 단위로 분할
테슬러의 법칙 (복잡성 보존)고유 복잡성은 사라지지 않으며 시스템이 안 맡으면 사용자가 떠안는다직접 입력 대신 자동완성·기본값 제안으로 시스템이 계산 수고를 대신 처리
도허티 임계 (Doherty Threshold)시스템 반응이 0.4초(400ms) 이내일 때 작업 몰입이 끊기지 않는다0.4초 이상 걸리는 동작에는 스켈레톤·스피너·낙관적 UI로 즉시 반응 표시
피크-엔드 법칙 (Peak-End Rule)경험은 가장 강렬했던 순간과 마지막 끝맺음 순간으로 기억된다저장·결제·완료 마지막 화면에 명확한 처리 요약과 다음 이동 동선 제공

03 · 자주 꼬이는 패턴 vs 권장 기준

피할 패턴삭제 확인창 제목이 '삭제하시겠습니까?'이고 버튼이 [예] / [아니오]로 되어 있음

본문을 읽지 않고 습관적으로 오른쪽 버튼을 누르다 실수로 삭제하는 사고가 생긴다.

권장 기준

버튼 라벨 자체에 구체적 행동을 적는다: `[취소]` / `[게시글 삭제]`.

피할 패턴정상 흐름(Happy Path) 하나만 만들고 세션 만료·중복 클릭·이탈 상황을 비워 둠

실제 사용 환경에서는 네트워크 지연이나 연속 클릭 같은 예외 상황이 수시로 발생한다.

권장 기준

핵심 흐름마다 ① 결과 0건 ② 중복 클릭 잠금 ③ 작성 중 이탈 확인 ④ 권한 만료 분기를 함께 챙긴다.

04 · UX-1 점검 체크리스트 (브라우저 저장)

UX-25대 상태 · 예외처리State Matrix · CLS 방지

화면의 5대 상태 설계 — 로딩 · 빈 화면 · 에러 · 부분 데이터

UI State Matrix, Wait-Time Thresholds, CLS Prevention & Recovery UX
한 줄 요약 · CORE RULE

서비스의 완성도는 데이터가 꽉 차 있을 때가 아니라 로딩 중 · 결과 0건 · 통신 에러 상황에서 드러난다.

화면을 처음 만들 때는 데이터가 예쁘게 채워진 이상적 상태(Ideal State)만 그리기 쉽다. 하지만 신규 가입자의 첫 화면은 비어 있고(Empty), 통신은 언제든 지연될 수 있으며(Loading/Error), 항목이 딱 1개뿐이거나 제목이 3줄로 길어지는 일(Partial)이 늘 발생한다.

01 · 핵심 원리 정리

1

화면의 5대 필수 상태 매트릭스 (5 UI States)

목록, 대시보드, 검색 결과, 상세 화면을 만들 때는 아래 5가지 상태를 기본 한 세트로 묶어서 설계한다.

  • 1. Ideal State(이상적 상태): 데이터가 적정량 채워진 표준 화면.
  • 2. Loading State(로딩 상태): 최종 레이아웃 크기를 미리 잡아두어 화면 덜컥거림(CLS)을 막는 스켈레톤 화면.
  • 3. Empty State(빈 상태): 첫 진입·검색 0건일 때 비어 있는 이유와 바로 누를 다음 행동 버튼(CTA)을 함께 보여주는 화면.
  • 4. Error State(에러 상태): 실패 시 내부 에러 코드를 숨기고 쉬운 원인 안내와 `[다시 시도]` 버튼을 제공하는 화면.
  • 5. Partial / Edge State(부분·극단 상태): 데이터가 1건뿐이거나 제목이 길어져도 카드 폭과 말줄임(`line-clamp`)이 유지되는 상태.
2

대기 시간 구간별 로딩 피드백과 CLS 제로 원칙

같은 2초 대기라도 아무 반응 없이 멈춰 있으면 고장으로 느껴지고, 뼈대(Skeleton)가 먼저 뜨면 훨씬 짧게 체감된다. 반대로 0.1초 이내의 빠른 응답에 스켈레톤을 띄우면 불필요한 깜빡임만 생긴다.

CLS(누적 레이아웃 이동) 방지 = 이미지·카드 영역의 가로·세로 공간(aspect-ratio / min-height) 사전 확보
  • 필터를 바꾸거나 새로고침할 때 기존 화면을 백지로 지우지 말고 투명도만 살짝 낮춘 채 자연스럽게 교체한다.
  • 요청 처리 중인 버튼은 즉시 `disabled + 스피너`로 잠가 중복 전송과 중복 결제를 차단한다.
3

에러 문구 3요소와 낙관적 업데이트(Optimistic UI) 적용 경계

북마크·좋아요처럼 가볍고 성공 확률이 높은 동작은 서버 응답 전에 UI부터 즉시 반영해 체감 지연을 없앨 수 있다. 단, 금전·원본 삭제와 직결된 작업에는 쓰지 않는다.

에러 안내 3요소 = ① 무슨 일이 생겼나(쉬운 말) + ② 작성 데이터 보존 여부 + ③ 지금 누를 복구 행동
  • 낙관적 UI 적합: 북마크, 좋아요, 체크리스트 토글, 정렬 순서 변경 (실패 시 원복 + 토스트 안내).
  • 낙관적 UI 금지: 결제 승인, 송금, 예약 확정, 영구 삭제 (반드시 서버 확정 응답 후 완료 처리).

02 · 기준 수치 · 비교표

예상 대기 시간 구간별 로딩 UI 기준표
대기 시간 구간체감 반응권장 UI 처리주의 사항
0 ~ 100ms (0.1초 이내)즉각 반응으로 인식별도 로딩 표시 없음 (즉시 전환)스피너 노출 시 오히려 깜빡임(Flash) 유발
100ms ~ 1초흐름은 유지되나 지연 감지클릭한 버튼 내부 작은 스피너 + 중복 클릭 잠금화면 전체를 덮는 로딩 오버레이 지양
1초 ~ 3초대기 중임을 명확히 체감실제 카드·표 모양과 동일한 Skeleton UI스켈레톤 높이와 실제 데이터 높이를 맞춰 CLS 방지
3초 ~ 10초진척 표시 없으면 이탈진행률 바(Progress %) 또는 단계 문구 표시'파일 분석 중 (2/4)...'처럼 현재 진행 단계 안내
10초 이상화면을 가두면 포기백그라운드 처리 전환 + 완료 시 알림/토스트대기 중에도 다른 메뉴를 오갈 수 있게 허용

03 · 자주 꼬이는 패턴 vs 권장 기준

피할 패턴검색 결과가 없을 때 '데이터가 없습니다.' 한 줄만 화면 중앙에 표시함

막다른 길에 멈춘 느낌을 주어 뒤로 가기 외에 이어갈 행동이 사라진다.

권장 기준

'조건에 맞는 항목이 없어요' 아래에 `[필터 초기화]` 버튼이나 추천 키워드 칩을 함께 둔다.

피할 패턴전송 에러가 났을 때 사용자가 길게 작성하던 입력 폼 내용을 초기화함

재작성을 강요해 가장 큰 이탈을 부르는 치명적인 결함이다.

권장 기준

전송 실패 시에도 입력값은 그대로 유지한 채 인라인 오류 안내와 `[다시 시도]` 버튼만 띄운다.

04 · UX-2 점검 체크리스트 (브라우저 저장)

UX-3입력 · 알림 · 동선폼 검증 · 토스트 · 단축키

입력 폼 · 알림 무게 조절 · URL 상태 보존 · 키보드 동선

Form Validation Timing, Notification Weight, URL State & Keyboard UX
한 줄 요약 · CORE RULE

입력 수고는 줄이고, 작업의 경중에 맞는 무게로만 피드백하며, 새로고침·뒤로 가기에도 맥락이 유지되게 만든다.

글자를 치는 도중에 빨간 경고가 먼저 뜨거나, 가벼운 복사 동작에 확인 모달이 뜨거나, 뒤로 가기를 눌렀더니 맞춰둔 필터가 초기화되면 흐름이 뚝 끊긴다. 사소해 보이지만 실제 사용 만족도를 크게 좌우하는 디테일이다.

01 · 핵심 원리 정리

1

1열 입력 폼과 검증 타이밍 원칙 (Reward Early, Punish Late)

시선이 좌우로 튀는 2열 폼보다 위에서 아래로 곧장 내려가는 1열 폼이 빠르고 정확하다. 오류 메시지는 타이핑 도중에는 숨기고 입력칸을 벗어날 때 표시한다.

타이핑 중 빨간 경고 숨김 → 입력칸 이탈 시(onBlur) 형식 검사 → 수정하는 즉시 실시간으로 경고 해제
  • 플레이스홀더(Placeholder)로 라벨을 대체하지 않는다: 글자를 입력하는 순간 무슨 칸이었는지 사라지므로 라벨은 항상 입력창 위에 고정한다.
  • 입력 조건(예: 영문·숫자 포함 8자 이상)은 에러가 난 뒤에야 알려주지 말고 처음부터 라벨 근처에 작게 적어 둔다.
  • 제출 시 오류가 있으면 첫 번째 오류 입력창으로 스크롤과 포커스를 자동 이동시킨다.
2

피드백의 무게 구분: 토스트 vs 실행 취소(Undo) vs 확인 모달

모든 알림을 모달 팝업으로 띄우면 내용을 읽지 않고 습관적으로 닫게 된다. 행동의 위험도와 되돌리기 가능 여부에 따라 피드백 방식을 나눈다.

  • 가벼운 완료(복사, 북마크, 임시저장): 2.5~3초 뒤 자동 소멸하는 하단 토스트(Toast).
  • 되돌릴 수 있는 삭제·보관(목록 숨김, 휴지통 이동): 확인 모달 없이 즉시 반영하고 토스트에 `[실행 취소(Undo)]` 버튼을 5초간 둔다.
  • 되돌릴 수 없는 고위험 동작(계정 탈퇴, 영구 삭제): 이때만 배경을 멈추는 확인 모달(AlertDialog)로 재확인한다.
3

URL 쿼리 상태 보존과 키보드 단축 동선

탭 전환이나 카테고리 필터 조건을 브라우저 URL 쿼리에 반영해 두면 새로고침, 뒤로 가기, 링크 공유 시에도 보던 화면 상태가 그대로 유지된다.

예시: /ui?tab=examples&sub=레이아웃·여백 → 새로고침 · 뒤로 가기 · 링크 공유 시 동일 화면 복원
  • 주요 단축키 관례: `/` 또는 `Cmd/Ctrl + K`(검색창 포커스), `Esc`(모달 닫기·검색 초기화), `Tab / Shift+Tab`(순차 이동).
  • 포커스 트랩(Focus Trap): 모달이 열린 동안에는 `Tab` 초점이 모달 내부에서만 순환하고 닫히면 원래 버튼으로 돌아가야 한다.

02 · 기준 수치 · 비교표

모바일 맞춤형 가상 키패드 호출을 위한 HTML 입력 속성표
입력 항목권장 type / inputmodeautocomplete모바일 키패드 동작
이메일 주소type='email'email@ 기호와 .com 키가 포함된 영문 자판 표시
휴대폰 번호type='tel'tel숫자 전용 전화 다이얼 키패드 표시
인증번호 6자리type='text' inputmode='numeric'one-time-code숫자 패드 + 문자 수신 시 상단 자동 완성 제안
금액 · 수량type='text' inputmode='decimal'off마우스 휠 증감 사고 없이 숫자 패드 호출
검색창type='search'off키보드 엔터 키가 [검색] 버튼으로 표시
상황별 알림 컴포넌트 선택 기준표
상황 성격권장 컴포넌트자동 소멸대표 예시
가벼운 작업 성공Toast (토스트)2.5 ~ 4초 후 소멸'프롬프트가 복사되었습니다', '저장됨'
입력칸 양식 오류Inline Error (인라인 문구)수정 전까지 유지'올바른 이메일 주소를 입력해 주세요'
중요 시스템 경고Inline Banner / Alert해결 전까지 상단 고정'결제 수단 유효기간이 만료되었습니다'
영구 삭제·과금 확정AlertDialog (확인 모달)직접 선택 시까지 대기'프로젝트를 영구 삭제할까요? 되돌릴 수 없습니다'

03 · 자주 꼬이는 패턴 vs 권장 기준

피할 패턴이메일 첫 글자 'a'를 입력하자마자 빨간 에러 문구가 즉시 표시됨

입력이 끝나기도 전에 오류부터 띄워 작성 흐름을 방해한다.

권장 기준

최초 검사는 포커스가 빠져나갈 때(onBlur) 수행하고, 오류 상태에서 고칠 때만 실시간으로 해제한다.

피할 패턴오류 원인이 적힌 알림 토스트가 2초 만에 사라져 읽지 못함

조치가 필요한 정보를 성공 알림처럼 빠르게 닫으면 원인을 파악할 수 없다.

권장 기준

오류나 복구 버튼이 포함된 알림은 6초 이상 유지하거나 닫기 버튼이 있는 고정 배너로 둔다.

04 · UX-3 점검 체크리스트 (브라우저 저장)

UX-4모바일 · 접근성44px 터치 · 접근성 · 점검

모바일 인체공학 · 웹 접근성(POUR) · 사용성 점검

Thumb Zone, Touch Targets, WCAG POUR, Heuristics & Usability Check
한 줄 요약 · CORE RULE

한 손 엄지로도 오타 없이 눌리고, 키보드·보조기기로도 막힘없이 동작하며, 타인의 시선에서 막힘이 없어야 완성이다.

데스크톱 큰 모니터와 마우스 커서 기준으로만 화면을 확인하면 모바일 터치 실수와 작은 글씨 문제를 놓치기 쉽다. 모바일 인체공학 수치와 시맨틱 HTML 기본기만 챙겨도 조작 오류의 대부분이 사라진다.

01 · 핵심 원리 정리

1

모바일 엄지 영역(Thumb Zone)과 터치 규격

스마트폰을 한 손으로 쥐었을 때 엄지가 편하게 닿는 곳은 화면 중앙과 하단이다. 상단 모서리는 손을 고쳐 쥐어야 닿으므로 보조 메뉴나 닫기 용도로 둔다.

최소 터치 영역: 44 × 44px | 인접 버튼 간격: 8px 이상 | 모바일 입력창 글자 크기: 최소 16px
  • 모바일 핵심 행동 버튼은 화면 하단 고정 바(Sticky Bottom Bar) 등 엄지 영역에 배치한다.
  • 시각적 아이콘이 18px로 작더라도 투명 패딩(`padding: 12px`)을 확보해 실제 터치 영역은 44×44px 이상으로 맞춘다.
  • iOS Safari는 입력창 글자 크기가 `16px` 미만이면 포커스 시 화면을 강제로 확대하므로 모바일 입력 폰트는 `16px` 이상으로 둔다.
  • 모바일 브라우저 주소창과 하단 홈 바 대응을 위해 `100dvh`와 `env(safe-area-inset-bottom)` 여백을 사용한다.
2

웹 접근성 4원칙(POUR)과 시맨틱 태그 우선 원칙

접근성은 특수 환경뿐 아니라 야외 햇빛, 한 손 조작, 트랙패드 고장 같은 일상적 제약에서도 화면을 온전히 쓰게 해주는 기본 품질이다.

  • P · 인식(Perceivable): 색상만으로 상태를 구분하지 않고 아이콘·문구를 함께 표기하며 의미 있는 이미지에 `alt`를 적는다.
  • O · 운용(Operable): 마우스 없이 키보드만으로 모든 기능을 열고 닫고 실행할 수 있게 한다.
  • U · 이해(Understandable): 일관된 탐색 위치와 예측 가능한 동작, 명확한 오류 해결 문구를 제공한다.
  • R · 견고(Robust): `<div onClick>` 가짜 버튼 대신 네이티브 `<button>`, `<nav>`, `<main>`, `<dialog>` 시맨틱 태그를 사용한다.
3

휴리스틱 점검과 제3자 3~5인 사용 관찰

직접 만든 화면은 제작자 본인에게만 익숙하기 때문에 막히는 지점이 잘 보이지 않는다. 다른 사람 3~5명에게 구체적 목표 하나만 주고 옆에서 지켜보면 주요 병목의 85%가 바로 드러난다.

  • '디자인이 괜찮은지' 묻는 대신 구체적 행동('특정 기준표를 찾아 프롬프트를 복사해 보기')을 요청하고 개입 없이 관찰한다.
  • 시선이 멈추거나 '이게 버튼인가?' 하고 망설이는 지점을 최우선 수정 대상으로 기록한다.

02 · 기준 수치 · 비교표

출시 전 점검용 닐슨 사용성 휴리스틱 핵심 요약표
점검 항목확인 질문구현 예시
01 · 시스템 상태 가시성현재 진행 상태를 즉시 알 수 있는가업로드 진행률 %, 저장 완료 표시, 활성 메뉴 탭 강조
02 · 현실 언어 일치내부 시스템 용어가 아닌 사용자 언어를 쓰는가'코드 403' 대신 '열람 권한이 없는 문서입니다' 표기
03 · 제어권과 탈출구실수로 눌렀을 때 바로 빠져나올 수 있는가모달 닫기(X·ESC), 실행 취소(Undo), 이전 단계 복귀
04 · 일관성과 표준같은 이름과 모양이 어디서나 같게 동작하는가전체 페이지에서 Primary 버튼 색상·위치·용어 통일
05 · 오류 사전 예방에러가 나기 전에 실수 자체를 줄여주는가필수 조건 사전 안내, 선택 불가능한 과거 날짜 비활성화
06 · 기억 대신 재인이전 화면 정보를 외우지 않아도 눈앞에 보이는가최근 검색어, 현재 적용 중인 필터 칩 상시 노출

03 · 자주 꼬이는 패턴 vs 권장 기준

피할 패턴모바일 표나 코드 블록 폭이 고정되어 페이지 전체에 가로 스크롤이 생김

하위 박스 하나만 화면 폭을 넘겨도 전체 레이아웃이 좌우로 흔들린다.

권장 기준

넓은 표는 감싸는 래퍼에 `overflow-x: auto`를 걸어 표 내부만 가로 스크롤되게 가둔다.

피할 패턴마우스 호버(:hover) 시에만 핵심 버튼이나 설명이 나타나게 만듦

터치스크린 기기에는 호버 상태가 없어 해당 기능에 접근할 수 없다.

권장 기준

중요 정보와 버튼은 호버 없이도 노출하거나 탭 동작으로 열리게 구성한다.

04 · UX-4 점검 체크리스트 (브라우저 저장)

UX 사용성 · 인터랙션 활용 예제 & 프롬프트 사전

바로 복사해 쓸 수 있는 지시문 카드와 조합 도구는 활용 예제 탭에 모아 두었습니다.