로그 패턴 분석으로 병목을 찾은 경험 결
인턴 때 주간 정산 리포트가 항상 월요일 오전에 늦게 나온다는 불만이 있었습니다. 담당자는 "데이터가 많아서"라고만 했는데, 저는 실제로 어느 단계에서 시간이 많이 걸리는지 확인해보고 싶었습니다.
스크립트 각 단계에 시간 로그를 넣어서 돌려봤더니, 전체 40분 중 32분이 특정 SQL 집계 쿼리 하나에서 소비되고 있었습니다. 그 쿼리가 인덱스 없이 전체 테이블을 스캔하고 있었던 것입니다. 선임분께 공유했더니 인덱스를 추가했고, 이후 같은 작업이 8분으로 줄었습니다.
그 경험에서 비효율은 느낌으로 판단하기 전에 측정부터 해야 한다는 걸 배웠습니다. "느리다"와 "어디서 느리다"는 완전히 다른 정보입니다. 지금도 뭔가 느리다는 제보가 오면 먼저 단계별로 시간을 재는 습관이 생겼습니다.