https://tech.kakaopay.com/post/skeleton-ui-idea/

DeferredComponent 내부의 지연 시간을 200ms으로 잡았기 때문에, 응답 지연이 100ms인 경우에는 스켈레톤을 보여주는 대신 사용자에게 잠시 빈 화면이 노출된 뒤 화면이 제공됩니다. 응답 지연이 1000ms인 경우에는 200ms 동안은 빈 화면이 뜨고 나머지 800ms 동안 스켈레톤이 노출됩니다. 제가 느끼기엔 200ms의 하얀 화면이 그리 어색하게 느껴지지는 않는데, 여러분들은 어떠신가요?

물론 이렇게 지연 시간을 설정한 경우에도 덜그럭 거리는 스켈레톤 뷰를 완벽히 피할수는 없습니다. 예컨데 200ms까지 스켈레톤을 보여주지 않게끔 설정한 화면이 있다고 가정하였을 때, 만약 사용자에게 API 응답이 250ms, 또는 300ms만에 도착했다면 50~100ms 동안 노출될 스켈레톤이 사용자에게 똑같이 덜그럭 거리는 느낌을 주게 되겠죠.

그렇다면 이런 지연된 스켈레톤이 정말 아무 의미가 없을까요?

지금 이야기중인 이 서비스에서는 대략 90%의 사용자들이 296ms 이내에 응답을 받는다고 합니다. 이 수치를 토대로 생각해보면 스켈레톤을 200ms 지연시킬 경우 전체 사용자 중 75%는 기존에 느끼던 덜그럭거림을 느끼지 않을 수 있지만, 기존에 덜그럭거림을 느끼지 못하던 15%의 사용자들은 덜그럭거리는 스켈레톤 뷰를 보게 된다는 생각을 해볼 수 있을 것 같습니다.

(물론 실 서비스에서는 다양한 시나리오를 세워보고 고민하며, 실험과 검증을 통해 지속적으로 개선 프로세스를 진행해야겠지만) 위 가설이 참이여서 전체 사용자의 75%가 느끼던 덜그럭거림을 덜어내고 15%의 사용자에게만 덜그럭거림을 느끼게 한다면 마냥 손해보는 장사는 아닐 수 있겠다는 생각이 듭니다.