느린 검색 응답을 프로파일링으로 원인 파악 후 쿼리·인덱스 개선으로 해결
인턴 때 상품 검색 API가 데이터가 늘수록 응답이 느려진다는 이슈를 맡았습니다. 처음엔 서버 사양 문제인 줄 알았는데, 실행 계획을 확인하니 풀텍스트 검색 쿼리가 인덱스 없이 전체 행을 스캔하고 있었습니다.
검색 컬럼에 복합 인덱스를 추가하고, 자주 쓰이는 카테고리 필터를 선행 조건으로 올리니 응답 시간이 2,100ms에서 210ms로 줄었습니다. 실패했던 부분은 처음에 인덱스를 추가하면서 기존 쓰기 성능을 확인하지 않은 것입니다. 쓰기 처리량이 약간 낮아진 걸 나중에야 발견했고, 이후엔 인덱스 추가 전 읽기·쓰기 비율을 먼저 확인하게 됐습니다.
개선 후 24시간 응답 시간 분포 차트를 만들어 팀에 공유했습니다. 측정 없이 개선이라고 부를 수 없다는 걸 그때 처음 실감했고, 이후 성능 작업엔 항상 before/after 지표 비교를 함께 챙기게 됐습니다.