웹 개발
서비스가 간헐적으로 느릴 때 먼저 봐야 할 로그
사용자가 느린 응답을 보고 있을 때, 서버 로그부터 캐시까지 어떤 순서로 확인할지 정리했다.
배포 후 어느 순간부터 서비스가 간헐적으로 느려진다. 항상 느린 게 아니라 가끔 느리다. 이런 문제를 진단하는 건 쉽지 않다.
사용자가 보는 모습 먼저 이해하기
느린 응답이 일관적인가? 특정 시간에만 나타나는가? 특정 페이지에서만 느린가? 첫 방문일 때만 느린가?
이런 정보가 모이면 원인 후보를 크게 줄일 수 있다.
개발자가 볼 신호 찾기
서버 모니터링 대시보드나 로그를 본다. 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 시간이 너무 짧지는 않은가?
작은 변경으로 검증하기
한 가지만 고쳐보고 배포한다. 캐시 설정을 바꿨다면, 실제로 반영되었는지 며칠 관찰한다.
느린 원인이 정말 무엇인지 설명할 수 있을 때까지 계속 로그와 모니터링을 본다. 단순히 에러가 사라지는 것이 아니라, 왜 개선되었는지 이해하는 게 중요하다.
마지막으로 이번 최적화로 얻은 교훈을 기록해두면, 비슷한 성능 문제가 나올 때 훨씬 빠르게 대응할 수 있다.