19강 / 20강

로그 분석 — 서버가 남긴 발자국 읽기

스트리밍 집계 · Top-K · 슬라이딩 윈도우

로그 분석 — 서버가 남긴 발자국 읽기
하루 수천만 줄. 전부 메모리에 올리지 않고 한 줄씩 흘려보내며 답을 구하는 것이 요령입니다.

어제 오후 3시경 사이트가 5분간 느렸다는 제보가 있습니다. 원인을 찾아야 해요. 단서는 접속 로그 2,400만 줄입니다.

211.45.x.x - - [19/Aug/2026:15:02:11] "GET /product/1042 HTTP/1.1" 200 8421 0.031
183.99.x.x - - [19/Aug/2026:15:02:11] "POST /api/cart HTTP/1.1" 200 142 0.008
45.77.x.x  - - [19/Aug/2026:15:02:12] "GET /search?q=%EC%9D%B4 HTTP/1.1" 200 20481 2.840

이 파일을 엑셀로 열려고 하면 안 됩니다. 컴퓨터가 멈춰요. 한 줄씩 읽으면서 필요한 것만 기억하는 방식이 필요합니다.

실무 로그 분석의 뼈대 전체입니다. 꼭 실행해 보세요.
Python 브라우저에서 실행

🎮 로그 분석기

가상 로그를 생성하고 Top-K IP, 상태 코드 분포, 시간대별 요청 수를 실시간으로 집계합니다. 봇 비율을 올리면 이상 신호가 어떻게 보이는지 확인해 보세요.

로그 분석기 — 봇 비율을 올려 이상 신호를 만들어 보세요
불러오는 중…

슬라이딩 윈도우 — "최근 5분" 을 계속 갱신하기

"최근 5분간 요청 수"를 매초 알고 싶습니다. 매초 5분치를 다시 세면 낭비예요. 들어온 건 더하고, 나간 건 빼면 됩니다.

슬라이딩 윈도우는 17강 트래픽 제어와 18강 속도 규칙의 핵심 부품이기도 합니다.
Python 브라우저에서 실행
평균만 보다가 장애를 놓치는 것 — 가장 흔한 실수입니다.
Python 브라우저에서 실행
🤔 확인 문제
2,400만 줄짜리 로그에서 IP별 접속 횟수를 구하는 가장 적절한 방법은?
🤔 확인 문제
평균 응답시간이 50ms인데 고객 불만이 많습니다. 다음으로 확인할 지표는?
🤔 확인 문제
"최근 5분간 요청 수"를 매초 갱신할 때 효율적인 자료구조는?