Google 250M줄 C++ 리팩터링과 테스트 의무화 경험, Titus Winters 인터뷰
Software engineering at Google & CS education with Titus Winters
Google에서 readability 프로그램을 이끌고 Abseil을 만든 Titus Winters가 2010년 2억 5천만 줄 규모 C++ 코드베이스 리팩터링과 테스트 의무화 경위를 설명했다. 그는 AI 도입 후 장애가 약 30% 늘었지만 출시 기능 수는 정체되어 있다고 지적했다. 기사에 따르면 2010년 Google은 약 2억 5천만 줄의 코드를 1만 명의 엔지니어가 편집하고 있었고, 한 팀이 옛 C++ 코드를 정리하는 작업을 맡았다. 팀은 LLM이 없던 시기에 MapReduce로 전체 코드를 훑으며 빌드 타깃을 AST로 파싱하고, 호출 패턴을 매칭해 편집 내용을 기계적으로 생성했다. 이후 새 API와 옛 API를 병행 운영하고, 디렉터리 단위로 나눠 배치 적용한 뒤 옛 패턴의 재유입을 막고 옛 API를 삭제하는 순서로 진행했다. 기사에 따르면 clang-format 도구도 이 작업을 위해 만들어졌다. Titus는 2007년 무렵 Search가 월 단위 출시를 하지 못하고 분기 단위로 줄어들자 모든 변경에 테스트를 동반하도록 의무화했고, 이후 Search의 출시 주기가 회복됐다고 설명했다. 기사는 Titus가 AI 도입 후 여러 회사에서 코드 산출량은 크게 늘었지만 장애는 약 30% 증가하고 출시 기능 수는 정체된 상황을 보았다고 전한다. 다만 AI가 그 전에는 현실적이지 않았던 야심찬 프로젝트를 가능하게 한다는 점도 함께 언급했다.
기사에 나온 대로 코드 산출량이 늘어도 장애가 약 30% 증가한 사례가 있다면, 자동 생성 코드의 변경마다 테스트와 안전망을 함께 두는 Google식 테스트 의무화가 실무 기준으로 참고할 만하다.
원문 출처
The Pragmatic Engineer (Gergely Orosz)