피드로 돌아가기
I Gave Gemini 3 My Worst Legacy Code — Here’s What Happened
Dev.toDev.to
Backend

Developer가 Gemini 3에 2000줄 레거시 코드를 분석시켜 리팩토링 결과를 경험한 사례

I Gave Gemini 3 My Worst Legacy Code — Here’s What Happened

Jubin Soni2026년 3월 31일9intermediate

Context

2000줄의 모놀리스 스파게티 코드는 데이터 처리 로직, DB 연결, 이메일 발송, 에러 로깅이 하나의 process_claim() 함수에 결합된 상태였다. 테스트 격리와 의존성 교체가 불가능한 구조로 유지보수에 심각한 병목이 발생하고 있었다.

Technical Solution

  • process_claim() 함수 → ClaimValidator, TaxCalculator, ClaimService, Repository, Notifier 클래스로 분리
  • class 내부의 new 키워드 호출 제거 후 생성자 의존성 주입 방식으로 전환
  • 순수 함수와 Mock 객체를 활용하여 관심사 분리
  • 클래스별 함수 수 20줄 이하 기준 적용

Impact

테스트 환경에서 InMemoryDatabase 주입으로 라이브 DB와 이메일 서버 없이 단위 테스트 실행 가능

Key Takeaway

레거시 코드 개선의 핵심은 한 함수가 여러 역할을 수행하는 God Object 패턴을 제거하는 것입니다.


레거시 스파게티 코드에서 class 내부의 new ClassB() 호출을 생성자 의존성 주입으로 대체 시 테스트 격리와 구현 교체가 용이한 느슨한 결합 구조 구현

원문 읽기
I Gave Gemini 3 My Worst Legacy Code — Here’s What Happened | Devpick