← 전체 글로 돌아가기

웹 개발

에러 메시지가 화면에 나타나는 데 시간이 걸릴 때

웹 앱에서 에러 응답이 느려 보일 때 어디서부터 확인해야 하는지 정리했다.

웹 앱을 운영하다 보면 에러가 발생해도 사용자 화면에 표시되는 데 몇 초가 걸리는 경우가 있다. 이럴 때 화면만 봐서는 원인을 알기 어렵다. 로그와 네트워크 응답을 함께 봐야 한다.

먼저 확인할 것들

에러 응답이 느려 보일 때 확인해야 할 순서가 있다. 화면에서 에러가 보이면 다음을 순서대로 본다:

  • 실제 네트워크 응답 시간은 몇 초인지
  • 에러 응답 코드는 뭔지 (404, 500, 503 등)
  • 서버 로그에는 에러가 어디서 나는지 기록되어 있는지

네트워크 탭을 열어서 해당 요청을 찾아보면 된다. 예를 들어 500 에러가 5초 뒤에 돌아온다면, 화면 렌더링 지연이 아니라 서버 처리 지연이다.

서버 로그가 알려주는 것들

# 서버에서 최근 로그를 본다
sudo journalctl -n 100
# 또는 애플리케이션 로그
cat /var/log/app/error.log | tail -50

로그에서 찾아야 할 것:

  • 에러가 나기 직전의 요청 정보
  • 얼마나 오래 걸렸는지 (처리 시간)
  • 어느 함수에서 에러가 발생했는지

응답 시간이 5초 이상이면 대부분 데이터베이스 쿼리가 느리거나, 외부 API 호출을 기다리는 중이다.

정상 상태와 비교하기

에러가 나지 않는 정상 요청과 에러가 나는 요청을 비교하면 원인을 좁힐 수 있다.

  1. 같은 엔드포인트에서 정상 응답은 몇 초에 오는지
  2. 에러 응답은 몇 초에 오는지
  3. 그 차이가 데이터베이스 쿼리 때문인지, 아니면 다른 곳 때문인지

보통 정상은 200ms 정도인데 에러는 5초 이상이라면, 에러 핸들링 로직에서 뭔가 비효율적인 작업(루프 또는 재시도)을 하고 있을 가능성이 높다.

수정 후 확인하는 방법

문제를 찾아서 고쳤다면, 이전과 달라진 부분을 로그로 확인해야 한다. 예를 들어 데이터베이스 쿼리를 최적화했다면:

  1. 같은 요청을 다시 보낸다
  2. 로그에서 처리 시간이 줄었는지 본다
  3. 최종적으로 사용자가 보는 화면에서 에러가 더 빠르게 나타나는지 확인한다

작은 개선이라도 기록으로 남겨두면, 다음에 같은 증상이 나올 때 훨씬 빨리 대응할 수 있다.