피드로 돌아가기
I Refactored 100 Functions With Claude. CI Was Green. Production Got Slower in 7 Spots.
Dev.toDev.to
Backend

AI 리팩토링 후 p95 180ms에서 240ms로 성능 저하 발생 및 검증 프로세스 구축

I Refactored 100 Functions With Claude. CI Was Green. Production Got Slower in 7 Spots.

Ken Imoto2026년 5월 28일8intermediate

Context

Python 3.12, FastAPI, asyncpg 기반의 CPU-bound 서비스에서 Claude Code를 통한 100개의 함수 리팩토링 수행. CI의 Green 상태와 Mutation Test 통과에도 불구하고, 실제 운영 환경에서 특정 엔드포인트의 p95 지연 시간이 증가하는 성능 회귀 현상 발생.

Technical Solution

  • Readability 향상을 위해 도입한 List Comprehension이 데이터셋을 두 번 순회하게 하여 Hot Path에서 약 12ms 지연 유발
  • Defensive Programming을 위한 Guard Clause 추가가 @functools.lru_cache의 메모이제이션 경로를 차단하여 Cache Hit Rate를 91%에서 6%로 급감시킴
  • 튜플 형태의 리턴값을 Dataclass로 변경함에 따라 asyncpg의 Row Decoder Fast Path가 깨지고 추가적인 메모리 할당 및 init 호출 비용 발생
  • 기능적 정확성만 검증하는 Unit Test와 Mutation Test의 한계를 파악하고 성능 측정 기반의 벤치마크 프로세스 도입
  • AI 리팩토링 결과를 주니어 엔지니어의 PR로 간주하여 데이터 구조, 반복 패턴, 캐시 경계, 락 획득 여부를 집중 검토하는 Slow Read 단계 추가

- 리팩토링 전후의 Baseline Benchmark 측정 및 비교 - 데이터 구조 변경, 반복문 패턴 변화, 캐시 경계 수정 여부 전수 조사 - Hot Path에 영향을 주는 변경 사항은 반드시 Load Test 수행 - 기능 구현 PR과 리팩토링 PR을 엄격히 분리하여 성능 회귀 시 Bisect 효율 극대화

원문 읽기