아직 외부에 공개하지도 않았는데 requests 가 800건 이상 들어온 것을 보고 의아함이 들었다.
어디서,
누가,
왔는지 알아보자.

- Edge Requests:
HTTP 상태코드별 분포:
- 2XX (성공): 파란색 - 대부분의 요청이 정상 처리
- 4XX (클라이언트 에러): 주황색 - 소량 발생
- 5XX (서버 에러): 빨간색 - 거의 없음
- 3XX (리다이렉트): 회색 - 일부 발생
=> 최근 3시간 동안 트래픽이 집중되었고, 대부분 정상적으로 처리됨

정상적인 사용자 방문 패턴:
- 실제 누군가가 사이트를 체계적으로 탐색
- 홈 → about → faq 순서로 페이지 방문
- 각 페이지마다 동일한 28회의 정적 파일 요청 (브라우저가 자동 로드)
1명이 페이지 방문
↓
HTML 로드 (1회)
↓
HTML 안의 <script>, <link> 태그들이
각각의 /_next/static/ 파일들을 요청 (27회)
↓
총 28회 요청 발생
실제 방문자 추정
약 2-3명 정도가 사이트를 방문했고:
- 1명은 홈 → About → FAQ 순서로 탐색
- 1-2명은 홈페이지만 방문
- /api/stats는 각 페이지에서 호출되는 API인 것 같음
총 935 Edge Requests의 구성:
- 실제 페이지 요청: ~200회 정도
- 정적 파일 요청: ~700회 정도
- 기타 (favicon 등): 나머지
=> 이는 매우 정상적인 웹사이트 방문 패턴이고, Next.js 앱의 전형적인 리소스 로딩 동작입니다.
2. Fast Data Transfer:
데이터 전송량:
- Outgoing: 11MB (파란색) - 서버에서 클라이언트로 보낸 데이터
- Incoming: 1MB (주황색) - 클라이언트에서 서버로 받은 데이터
=> Outgoing이 훨씬 많은 것은 정상 (이미지, CSS, JS 파일 전송)
3. Vercel Functions:
함수 실행 상태:
- Error Rate: 12.5% (빨간 점들) - 함수 실행 중 일부 에러 발생
- Timeout: 0% - 타임아웃은 없음
=> 12.5% 에러율은 다소 높은 편입니다. 어떤 함수에서 에러가 발생하는지 확인이 필요

=> api/stats 에서 에러가 발생했다.
main 화면에 통계데이터를 가져오는 부분인데, 생각해보니 매번 main 에 올때마다 여러 테이블들을 count 하는 건 별로 효율적이지 못하다는 생각이 들어서, 통계테이블을 만들고 하루 한번 배치로 하도록 바꿈.
또, service 가 기동될때 메모리에 넣어놓으면 DB I/O를 줄일 수 있어 속도나 cost도 절약할 수 있을 것으로 생각되어 방법을 바꿈.
4. Compute:
CPU 사용량:
- Active CPU: 9초 - 실제 CPU가 작동한 시간
- 최대 1초까지 스파이크 발생
=> CPU 사용량이 적절한 수준으로, 성능 최적화가 잘 되어 있습니다.
'Tech Notes' 카테고리의 다른 글
| Redis를 사용하는 이유 (2) | 2025.09.24 |
|---|---|
| 서버리스 환경에서 캐싱이 동작하지 않는 이유와 해결책 (0) | 2025.09.24 |
| Prisma + Neon: 현대적인 풀스택 개발을 위한 완벽한 조합 (1) | 2025.09.18 |
| Google Safe Browsing이란? 웹 보안의 숨은 영웅 🛡️ (0) | 2025.09.17 |
| SSL 인증서란? (0) | 2025.09.17 |