Comet5의 잡다한 블로그
기술자료

작은 지연이 큰 체감 차이를 만든다

2026-05-07 · Comet5

작은 지연이 큰 체감 차이를 만든다

성능을 이야기할 때 우리는 종종 “몇 초 걸린다”는 단위에 익숙하다. 하지만 실제 사용자 경험에서는 1초보다 훨씬 작은 단위의 지연이 더 큰 차이를 만든다. 100ms, 200ms, 300ms 같은 짧은 시간들이 쌓이면서, 서비스의 체감 속도를 완전히 바꿔버린다.

사람은 생각보다 미묘한 지연에 민감하다. 버튼을 눌렀을 때 즉시 반응이 오면 자연스럽게 느껴지지만, 100~200ms만 늦어져도 “약간 느리다”는 인상을 받는다. 300ms를 넘어가면 반응이 끊긴 것처럼 느껴지기 시작하고, 그 순간부터 사용자는 기다림을 인식한다. 이 작은 차이가 인터랙션의 자연스러움을 결정한다.

프론트엔드에서는 이 차이가 더욱 직접적으로 드러난다. 클릭, 스크롤, 입력 같은 동작에서 즉각적인 피드백이 없으면 사용자는 시스템이 멈췄다고 느낀다. 그래서 실제 처리가 끝나지 않았더라도 로딩 인디케이터를 보여주거나, 버튼 상태를 변경하는 식으로 “반응하고 있다”는 신호를 먼저 전달하는 것이 중요하다.

백엔드에서도 마찬가지다. API 응답 시간이 100ms에서 300ms로 늘어나는 것은 수치상으로는 작은 변화처럼 보일 수 있다. 하지만 이 응답이 여러 번 이어지는 화면이라면 이야기가 달라진다. 여러 요청이 직렬로 연결되거나, 렌더링 과정에서 순차적으로 호출된다면 이 지연은 누적된다. 결국 사용자는 “느리다”는 인상을 받게 된다.

이 때문에 성능 최적화는 단일 요청의 속도뿐 아니라, 전체 흐름에서의 지연을 함께 고려해야 한다. 불필요한 네트워크 호출을 줄이고, 병렬 처리를 활용하고, 필요한 데이터만 요청하는 방식이 중요해진다. 작은 지연을 줄이는 작업들이 모여 전체 체감 속도를 개선한다.

흥미로운 점은 사용자가 느끼는 속도와 실제 속도가 항상 일치하지는 않는다는 것이다. 예를 들어 초기 로딩은 조금 느리더라도, 이후 인터랙션이 빠르면 전체적으로 쾌적하다고 느낄 수 있다. 반대로 첫 화면은 빠르게 뜨지만, 이후 동작이 계속 지연된다면 오히려 더 느리게 느껴진다. 즉, “어디에서 기다리게 하느냐”도 중요한 요소다.

그래서 일부 시스템에서는 실제 처리 속도를 줄이는 것뿐 아니라, 체감 속도를 개선하는 전략도 함께 사용한다. 프리패칭(prefetching), 스켈레톤 UI, 낙관적 업데이트 같은 기법들이 여기에 해당한다. 사용자가 기다림을 느끼기 전에 다음 상태를 준비하거나, 기다리는 동안에도 진행되고 있다는 느낌을 주는 방식이다.

결국 성능은 단순한 숫자가 아니라 경험이다. 100ms의 차이는 로그 상에서는 미미해 보일 수 있지만, 사용자에게는 분명한 차이로 전달된다. 이 작은 차이들이 쌓여 서비스의 인상을 만든다.

그래서 성능을 개선할 때는 이렇게 생각해볼 필요가 있다.
이 지연이 사용자에게 어떻게 느껴질까.
그 질문을 기준으로 보면, 어디를 줄여야 할지가 훨씬 명확해진다.