몇가지 궁금한 점입니다.
1. 페이지 요청을 받을 때 기본적으로 어느 정도의 준비루틴이 있나요
특별한 기능이 없는 기본페이지에서 어느 정도 지연이 일반적인지
2. 설치된 모듈이나 플러그인, 템플릿의 수가 페이지 응답속도에 영향을 주거나,
실제로 사용하지 않는 기능을 페이지를 열 때마다 확인하거나 불러오는 구조는 아닌지
3. 메인 페이지가 기본상태확인 페이지보다 더 느린 것은 자연스러운 현상인가
페이지 내용을 구성하는 과정에서 추가 지연이 발생할 수 있다는 점은 이해하고 있으나 ㅡ
4. 페이지 응답 속도를 확인하거나 개선할 때 유용한 방법이 있나요
기존 기능에 영향을 주지 않으면서 확인할 수있는 방법이 있다면 공유부탁드립니다.
어떤것이 일반적인 동작특성인지, 추가로 확인할 부분이 있는지 의견을 듣고 싶습니다.
감사합니다.
|
답변 3개 / 댓글 4개
채택된 답변
+20 포인트
OPcache를 켜도 체감이 비슷하다면, 설정을 더 바꾸기 전에 지연 구간을 나눠 보시면 좋겠습니다.
Chrome 개발자도구 → Network에서 메인 문서를 선택하고 Timing의 Waiting for server response(TTFB)를 확인해 주세요. 이 시간에는 네트워크 왕복 지연도 포함되므로 PHP 실행 시간으로 그대로 해석하면 안 됩니다. 문서는 빨리 오는데 화면만 늦으면 JS·이미지·추가 Fetch/XHR 요청을 확인합니다.
같은 로그인 상태·장소·브라우저에서 메인과 상태확인 페이지를 여러 번 측정하고 첫 요청과 반복 요청을 따로 기록해 보세요. 페이지별 처리 내용이 다르므로 시간 차이만으로 이상이라고 단정하기는 어렵습니다. 기존 답변의 DB 벤치마크와 전체 HTTP 응답 시간도 구분해야 합니다.
문서 TTFB가 길다면 해당 시각의 서버 로그와 DB 느린 쿼리 기록을 대조합니다. 설치 개수보다 해당 요청에서 실제 실행되는 쿼리·외부 호출 등이 중요하며, 미사용 모듈의 로딩 여부는 설치 버전과 모듈 코드 확인이 필요합니다. G7/PHP 버전, 두 페이지의 첫/반복 요청 TTFB와 전체 시간을 알려주시면 다음 확인 지점을 좁힐 수 있습니다.
Timing 설명: https://developer.chrome.com/docs/devtools/network/reference/
Chrome 개발자도구 → Network에서 메인 문서를 선택하고 Timing의 Waiting for server response(TTFB)를 확인해 주세요. 이 시간에는 네트워크 왕복 지연도 포함되므로 PHP 실행 시간으로 그대로 해석하면 안 됩니다. 문서는 빨리 오는데 화면만 늦으면 JS·이미지·추가 Fetch/XHR 요청을 확인합니다.
같은 로그인 상태·장소·브라우저에서 메인과 상태확인 페이지를 여러 번 측정하고 첫 요청과 반복 요청을 따로 기록해 보세요. 페이지별 처리 내용이 다르므로 시간 차이만으로 이상이라고 단정하기는 어렵습니다. 기존 답변의 DB 벤치마크와 전체 HTTP 응답 시간도 구분해야 합니다.
문서 TTFB가 길다면 해당 시각의 서버 로그와 DB 느린 쿼리 기록을 대조합니다. 설치 개수보다 해당 요청에서 실제 실행되는 쿼리·외부 호출 등이 중요하며, 미사용 모듈의 로딩 여부는 설치 버전과 모듈 코드 확인이 필요합니다. G7/PHP 버전, 두 페이지의 첫/반복 요청 TTFB와 전체 시간을 알려주시면 다음 확인 지점을 좁힐 수 있습니다.
Timing 설명: https://developer.chrome.com/docs/devtools/network/reference/
안녕하세요. 혹시 nginx 서버를 이용중이시라면, 아래를 확인 요청드립니다.
관리자 > 일반 > 에셋 파일 서빙 방식

만약 nginx.conf 설정에 아래와 같이 정적 파일 관련한 블록이 존재한다면, 권장값은 '확장자 미사용' 입니다.
location ~* \.(js|css|json...)$
위와 같은 블록이 존재하는데 '확장자 사용'으로 설정한 경우, .js/.css/.json 접근시 404 오류가 발생하여 확장자가 없는 주소로 재요청을 하여 에셋을 다운로드 하므로 초기 응답속도가 느릴 수 있습니다.
위 블록이 없는 경우 '확장자 사용'이 빠릅니다.
그누보드7은 다국어 파일, 레이아웃 파일, 모듈/플러그인 에셋 파일 등 일부 에셋 파일을 웹서버에서 동적으로 생성하여 응답하고 있습니다. 예를 들어 sirsoft-basic 템플릿의 메인 화면으로 접속하면 home 레이아웃을 다운로드하는데, 주소는 아래와 같습니다.
/api/layouts/sirsoft-basic/home.json?v=1791827873
이 때 nginx 에 location ~* \.(js|css|json...)$ 와 같은 블록이 존재하면 위 요청이 백엔드에 도달하지 못하고 가로채기 됩니다.
결과적으로 404 오류가 발생하게 되며 이 경우 템플릿 엔진에서는 아래 주소로 재요청을 합니다.
/api/layouts/sirsoft-basic/home?v=1791827873
'확장자 미사용' 설정은 기본 요청 주소를 '/api/layouts/sirsoft-basic/home?v=1791827873' 형태로 고정시켜주는 기능입니다.
감사합니다.
관리자 > 일반 > 에셋 파일 서빙 방식

만약 nginx.conf 설정에 아래와 같이 정적 파일 관련한 블록이 존재한다면, 권장값은 '확장자 미사용' 입니다.
location ~* \.(js|css|json...)$
위와 같은 블록이 존재하는데 '확장자 사용'으로 설정한 경우, .js/.css/.json 접근시 404 오류가 발생하여 확장자가 없는 주소로 재요청을 하여 에셋을 다운로드 하므로 초기 응답속도가 느릴 수 있습니다.
위 블록이 없는 경우 '확장자 사용'이 빠릅니다.
그누보드7은 다국어 파일, 레이아웃 파일, 모듈/플러그인 에셋 파일 등 일부 에셋 파일을 웹서버에서 동적으로 생성하여 응답하고 있습니다. 예를 들어 sirsoft-basic 템플릿의 메인 화면으로 접속하면 home 레이아웃을 다운로드하는데, 주소는 아래와 같습니다.
/api/layouts/sirsoft-basic/home.json?v=1791827873
이 때 nginx 에 location ~* \.(js|css|json...)$ 와 같은 블록이 존재하면 위 요청이 백엔드에 도달하지 못하고 가로채기 됩니다.
결과적으로 404 오류가 발생하게 되며 이 경우 템플릿 엔진에서는 아래 주소로 재요청을 합니다.
/api/layouts/sirsoft-basic/home?v=1791827873
'확장자 미사용' 설정은 기본 요청 주소를 '/api/layouts/sirsoft-basic/home?v=1791827873' 형태로 고정시켜주는 기능입니다.
감사합니다.
저도 그누보드7를 사용하고 있는데, 개인적으로는 속도가 상당히 빠르다고 느끼고 있습니다.
궁금해서 php artisan g7:bench --all로 측정해 봤는데, 게시글 목록 조회는 약 1.5~1.9ms, 상품 목록 조회는 약 0.5~0.6ms 정도 나오네요.
물론 실제 페이지 응답 시간과는 차이가 있겠지만, 현재까지 사용하면서 특별히 느리다고 느낀 적은 없습니다.
서버 환경에 따라 차이가 있을 것 같은데, 혹시 어느 정도의 지연이 발생하시나요?
답변에 대한 댓글 4개
답변을 작성하려면 로그인이 필요합니다.