저자는 이러한 전환을 가능하게 한 두 가지 중요한 요인을 제시합니다. 첫째, Ruby DX 팀의 로드맵이 Sorbet의 RBS 지원을 요구하게 되면서 C++ 및 C로 작성된 프로젝트를 다루게 된 것이며, 이는 루비에서는 접해보지 못한 시스템 프로그래밍 개념을 이해해야 함을 의미했습니다. 둘째, Shopify의 Ruby 및 Rails 인프라 팀에 속한 전문가들의 적극적인 지식 공유와 멘토링이 큰 도움이 되었습니다. 그러나 저자는 훌륭한 멘토와 학습 기회는 항상 존재했지만, AI가 학습 곡선을 근본적으로 변화시켰다는 점을 지적합니다.
ZJIT(새로운 JIT Ruby 컴파일러) 프로젝트를 예시로 들며, 시스템 프로그래밍 프로젝트의 복잡성을 설명합니다. ZJIT 작업은 Rust, C, JIT 일반 지식, ZJIT 특정 개념, Ruby 내부 구조, Ruby 빌드 시스템 등 여러 영역에 대한 깊은 이해를 요구하며, 하나의 풀 리퀘스트(PR)가 종종 2~4개 영역을 동시에 다룬다고 설명합니다. 여기서 Claude와 같은 AI는 언어 문법, 일반 개념, 표준 패턴과 같은 초기 세 가지 영역에서 매우 유용하며, 학습 방해 요소를 절반으로 줄여준다고 강조합니다.
저자는 AI를 단순한 코드 생성기가 아닌 ‘보완적인 페어링 파트너’로 인식했을 때 진정한 돌파구가 마련되었다고 말합니다. AI가 프로젝트 특정 컨텍스트나 깊은 도메인 지식은 부족하지만, 언어별 문법과 패턴에 대한 지식은 풍부하므로, 개발자는 요구사항과 프로젝트 제약을 제공하고 AI는 언어 전문가 역할을 수행하는 방식으로 협력합니다. 이를 통해 개발자는 언어와 효과적인 적용 방법을 동시에 학습할 수 있습니다. 예를 들어, ZJIT를 위한 Ruby 바이트코드 명령어 프로파일링 시, Claude Code에게 유사한 PR을 검토하고 이해되지 않는 부분을 설명해달라고 요청하거나, ‘JIT 컴파일러가 왜 프로파일링이 필요한가요?’와 같은 기본적인 질문을 자유롭게 할 수 있다고 언급합니다. 물론, AI와 함께 잘못된 방향으로 갈 때도 있었지만, 멘토와 팀원들의 명확화와 지식 공유로 해결되었으며, AI가 학습을 가속화하지만 인간 전문성은 여전히 대체 불가능하다고 덧붙입니다.