15

이번 주 배운 것을 총동원하는 시간

Day 5: 대용량 로그 분석 파이프라인

학습 목표

프로젝트 요구사항을 이해한다 실무와 유사한 데이터 파이프라인을 경험한다

프로젝트: 대용량 웹 로그 분석 파이프라인

이번 주에 배운 모든 것을 활용해서 실제 운영 환경에서 볼 수 있는 로그 분석 파이프라인을 만듭니다.


시나리오

"우리 서비스의 지난달 로그 분석해줘. 트래픽 패턴, 에러율, 사용자 행동 분석 필요해. 아, 로그 파일이 좀 커. 50GB 정도?"

pandas로는 죽어도 못 한다. Spark로 해결한다.


이번 프로젝트에서 사용할 기술

기술어디서 사용
DataFrame API데이터 변환 전반
groupBy, agg트래픽 집계
Window 함수시간별 추이, 순위
Join로그 + 사용자 정보
UDF로그 파싱, IP 지역 변환
Catalyst쿼리 최적화

분석 요구사항

1. 기본 트래픽 분석

  • 시간대별 요청 수
  • 상태 코드별 분포
  • Top 10 인기 페이지

2. 에러 분석

  • 시간대별 에러율 (4xx, 5xx)
  • 에러가 많은 페이지
  • 에러 트렌드

3. 사용자 행동 분석

  • 사용자당 세션 수
  • 평균 체류 시간 (추정)
  • 이탈률이 높은 페이지

4. 성능 분석

  • 응답 시간 분포
  • 느린 요청 Top 10
  • 시간대별 평균 응답 시간

데이터 형식

Apache 로그 형식 (Combined Log Format):

에디터 로딩 중...
필드설명
IP클라이언트 IP
ident거의 항상 -
user인증된 사용자 (없으면 -)
timestamp요청 시간
requestHTTP 메서드 + URL
statusHTTP 상태 코드
size응답 크기 (바이트)
referer유입 경로
user_agent브라우저 정보

진행 방법

  1. 로그 파싱 (Task 2) - UDF로 로그 파싱
  2. 기본 분석 (Task 3) - groupBy, 집계
  3. 심화 분석 (Task 4) - Window 함수
  4. 최적화 (Task 5) - Catalyst 활용
  5. 종합 대시보드 (Task 6) - 최종 결과

3~4시간 정도 소요됩니다. 화이팅!