← 전체 글로 돌아가기

웹 개발

서비스가 간헐적으로 느릴 때 먼저 봐야 할 로그

사용자가 느린 응답을 보고 있을 때, 서버 로그부터 캐시까지 어떤 순서로 확인할지 정리했다.

배포 후 어느 순간부터 서비스가 간헐적으로 느려진다. 항상 느린 게 아니라 가끔 느리다. 이런 문제를 진단하는 건 쉽지 않다.

사용자가 보는 모습 먼저 이해하기

느린 응답이 일관적인가? 특정 시간에만 나타나는가? 특정 페이지에서만 느린가? 첫 방문일 때만 느린가?

이런 정보가 모이면 원인 후보를 크게 줄일 수 있다.

개발자가 볼 신호 찾기

서버 모니터링 대시보드나 로그를 본다. CPU 사용률이 높은 시점과 느린 응답 시점이 일치하는가? 메모리는 부족한 게 아닌가?

HTML Head와 메타 정보 확인

SEO 관련 메타 정보가 올바른가? 캐시 헤더가 너무 길거나 짧지는 않은가?

curl -s https://example.com | grep -Ei 'title|description|canonical|og:|twitter:'
npm run build

먼저 HTML 헤더를 확인한다. 그 다음 로컬에서 빌드해서 결과를 비교한다.

빌드 로그 검증하기

빌드할 때 경고가 없었는가? 특정 파일이 느리게 빌드되었는가? 이런 정보가 배포 후 성능 문제의 원인이 될 수 있다.

Next.js 캐시 확인하기

sitemap.xml이나 RSS 피드는 최신인가? 정적 페이지들이 제대로 캐시되고 있는가?

Next.js의 ISR(Incremental Static Regeneration) 설정이 제대로 작동 중인가? Revalidate 시간이 너무 짧지는 않은가?

작은 변경으로 검증하기

한 가지만 고쳐보고 배포한다. 캐시 설정을 바꿨다면, 실제로 반영되었는지 며칠 관찰한다.

느린 원인이 정말 무엇인지 설명할 수 있을 때까지 계속 로그와 모니터링을 본다. 단순히 에러가 사라지는 것이 아니라, 왜 개선되었는지 이해하는 게 중요하다.

마지막으로 이번 최적화로 얻은 교훈을 기록해두면, 비슷한 성능 문제가 나올 때 훨씬 빠르게 대응할 수 있다.