Lighthouse 보고서의 기회 섹션에는 요청을 보낸 후 사용자의 브라우저가 페이지 콘텐츠의 첫 번째 바이트를 수신하는 데 걸리는 시간인 서버 응답 시간이 보고됩니다.
![Lighthouse 서버 응답 시간의 감사가 낮은 스크린샷](https://developer.chrome.google.cn/static/docs/lighthouse/performance/server-response-time/image/a-screenshot-the-lightho-dee8ff91ad494.png?authuser=19&hl=ko)
느린 서버 응답 시간이 성능에 영향을 미침
이 감사는 브라우저에서 기본 문서 요청에 응답할 때까지 600ms 이상 대기하는 경우 실패합니다. 사용자는 페이지 로드에 시간이 오래 걸리는 것을 싫어합니다. 느린 서버 응답 시간은 긴 페이지 로드의 가능한 원인 중 하나입니다.
사용자가 웹브라우저에서 URL로 이동하면 브라우저는 해당 콘텐츠를 가져오기 위해 네트워크 요청을 합니다. 서버가 요청을 수신하고 페이지 콘텐츠를 반환합니다.
사용자가 원하는 콘텐츠가 모두 포함된 페이지를 반환하려면 서버에서 많은 작업을 수행해야 할 수 있습니다. 예를 들어 사용자가 주문 내역을 보고 있는 경우 서버는 데이터베이스에서 각 사용자의 내역을 가져온 다음 해당 콘텐츠를 페이지에 삽입해야 합니다. 이러한 작업이 가능한 한 빨리 작동하도록 서버를 최적화하는 것은 사용자가 페이지 로드를 기다리는 시간을 줄이는 한 가지 방법입니다.
서버에서 많은 작업을 수행할 필요가 없는 경우에도 클라이언트와 서버 간의 네트워크 지연으로 인해 서버 응답 시간이 느려질 수 있습니다.
서버 응답 시간을 개선하는 방법
서버 응답 시간을 개선하기 위한 첫 번째 단계는 페이지 콘텐츠를 반환하기 위해 서버가 완료해야 하는 핵심 개념 작업을 파악한 다음 각 작업에 걸리는 시간을 측정하는 것입니다. 가장 긴 작업을 파악했다면 작업 속도를 높일 수 있는 방법을 찾아보세요.
서버 응답이 느려지는 데는 다음과 같은 여러 가지 원인이 있을 수 있으며 이에 따라 다음과 같이 개선할 수 있는 여러 가지 방법이 있습니다.
- 페이지를 더 빠르게 준비할 수 있도록 서버의 애플리케이션 로직을 최적화합니다. 서버 프레임워크를 사용하는 경우 프레임워크에 이를 수행하는 방법에 관한 권장사항이 있을 수 있습니다.
- 서버가 데이터베이스를 쿼리하는 방식을 최적화하거나 더 빠른 데이터베이스 시스템으로 마이그레이션하세요.
- 서버 하드웨어를 업그레이드하여 메모리 또는 CPU를 늘립니다.
CDN을 사용하여 네트워크 지연 시간을 줄입니다. 이는 문서가 CDN 에지 노드에서 캐시될 수 있는 경우 특히 효과적입니다.
자세한 내용은 TTFB 최적화 가이드를 참고하세요.
스택별 안내
Drupal
테마, 모듈, 서버 사양은 모두 서버 응답 시간에 영향을 미칩니다. 더 최적화된 테마를 찾거나, 최적화 모듈을 신중하게 선택하거나, 서버를 업그레이드해 보세요. 호스팅 서버는 PHP 명령 코드 캐싱, Memcached 또는 Redis와 같은 메모리 캐싱 시스템을 사용하여 데이터베이스 쿼리 시간을 줄이고 애플리케이션 로직을 최적화하여 페이지를 더 빠르게 준비해야 합니다.
Magento
Magento의 Varnish 통합을 사용하세요.
React
React 구성요소를 서버 측에서 렌더링하는 경우 renderToNodeStream()
또는 renderToStaticNodeStream()
를 사용하여 클라이언트가 마크업의 모든 부분을 한 번에 수신하고 하이드레이션할 수 있습니다.
WordPress
가벼운 테마 (블록 테마가 좋음)를 선택하고 전체 페이지 캐싱 또는 정적 사이트 솔루션을 구현합니다. 불필요한 플러그인을 사용 중지하여 서버 오버헤드를 최소화합니다.
호스팅을 관리 서비스 또는 전용 서비스로 업그레이드하는 것이 좋습니다.