컴퓨터와 사용자가 서로를 기다리지 않는 속도, 대략 400ms 이내로 반응하면 생산성이 급격히 높아진다는 원칙. 1982년 IBM의 월터 도허티와 아르빈드 타다니의 논문에서 나왔다. 반응이 이 선 아래로 내려가면 사용자가 흐름을 잃지 않는다.
체감 성능으로 버티기
실제 처리를 400ms 안에 끝낼 수 없다면, 그사이 피드백을 줘서 기다림을 짧게 느끼게 한다.
- 스켈레톤 화면(Skeleton Screen)·자리표시자: 무엇이 올지 모양을 먼저 보여 준다. React에서는 Suspense의 fallback이 이 자리다
- 블러 업(Blur-up): 아주 작은 이미지를 먼저 흐리게 늘려 보여 주고, 원본이 오면 바꾼다. 자리를 미리 잡아 레이아웃도 밀리지 않는다 → 비율을 유지하는 박스
- 진행 표시: 정확하지 않아도 진행 막대가 있으면 사람들은 더 오래 참는다
- 낙관적 UI(Optimistic UI): 서버 응답을 기다리지 않고 성공한 것처럼 먼저 보여 주고, 실패하면 되돌린다 → useOptimistic
- 반대로, 결과가 너무 빨리 나오면 믿음이 안 가는 작업(보안 검사 등)은 일부러 과정을 보여 주며 시간을 들이기도 한다
INP와의 관계
INP(Interaction to Next Paint)는 상호작용부터 다음 화면이 그려지기까지를 재는 웹 지표다. 도허티 임계가 "왜 반응성이 중요한가"라는 원리라면, INP는 "웹에서 그것을 어떻게 재고 어디에 선을 그을까"다. 다만 같지는 않다. 도허티 임계는 1980년대 시스템 전반의 응답 시간에 대한 원칙이고 400ms를 말하지만, INP는 웹 페이지 안의 상호작용에 한정되고 '좋음' 기준이 200ms로 더 엄격하다.
긴 작업이 메인 스레드를 막으면 이 선을 넘기 쉽다 → 이벤트 루프, useTransition
출처: 『UX/UI의 10가지 심리학 법칙』 존 야블론스키 (원서 Laws of UX) · Laws of UX — Doherty Threshold → 『UX/UI의 10가지 심리학 법칙』