AI가 기술 부채를 더 비싸게 만든다
AI가 기술 부채를 덜 중요하게 만들 것이라는 새로운 믿음이 떠오르고 있습니다. 코드를 작성하거나 정리하는 일이 점점 더 쉬워지고 있기 때문에, 일반적인 회사가 조금 더 많은 기술 부채를 감당할 수 있을 것이라고 생각하는 게 합리적으로 보이지 않나요?
하지만 사실은 그 반대입니다. AI는 기술 부채를 감당하는 데 드는 실제 비용을 크게 증가시켰습니다. 중요한 점은 생성형 AI가 ‘부채가 적은’ 코딩과 ‘부채가 많은’ 코딩 간의 속도 격차를 크게 벌려놓았다는 것입니다.
비교적 젊고 고품질의 코드베이스를 가진 회사들은 생성형 AI 도구의 혜택을 가장 많이 누리지만, 복잡하고 오래된 레거시 코드베이스를 가진 회사들은 이를 도입하는 데 어려움을 겪을 것입니다. 다시 말해, ‘부채가 많은’ 코드베이스를 가지는 페널티는 이제 그 어느 때보다 더 커졌습니다.
생성형 AI는 높은 복잡도를 다루지 못한다
Cursor나 Aider 같은 도구를 사용해 전문적인 코딩 작업을 해본 적이 있다면, 이러한 도구들의 성능이 코드의 복잡도에 매우 민감하다는 것을 알 것입니다. 이 도구들은 기존의 패턴을 적용하거나 기존 인터페이스나 모듈 관계를 활용할 때 극적인 속도 향상을 제공합니다. 그러나 미묘한 제어 흐름, 장기 의존성, 예상치 못한 패턴이 있는 ‘부채가 많은’ 환경에서는 유용한 응답을 생성하는 데 어려움을 겪습니다.
복잡한 코드베이스는 모델이 일관된 응답을 생성하기 어렵게 만들 뿐만 아니라, 개발자가 일관된 요청을 작성하기도 어렵게 만듭니다.
이러한 경험은 대부분의 개발자들이 생성형 AI 도구가 ‘프로덕션 수준’의 복잡성을 처리할 수 있을 때까지 “관망”하는 자세를 취하도록 만들었습니다. 생성형 AI가 다중 모달, 더 빠르고 작고 저렴한 모델 등의 측면에서 극적으로 개선되고 있음에도 불구하고, 이 장애물은 여전히 완고하게 남아 있으며, o1의 낮은 채택률과 멀티 에이전트 프레임워크가 논리적 추론 능력을 확장하는 데 실패한 사례들이 이를 보여줍니다.
도구가 당신을 돕게 하세요
생성형 AI 도구를 레거시 코드베이스의 복잡한 문제를 해결하도록 억지로 사용하려고 하기보다는, 인간 전문가가 레거시 코드를 리팩토링하여 AI가 원활히 작동할 수 있도록 해야 합니다.
직접적인 리팩토링이 여전히 너무 위험한 경우, 팀은 Strangler Fig와 같은 접근 방식을 사용하여 그린필드 기반의 모듈을 구축하고, 이를 통해 생성형 AI 도구의 혜택을 즉시 누릴 수 있습니다.
이는 현대 개발 팀이 더 높은 수준의 추상화로 전환해야 한다는 것을 의미합니다. 제품은 lean한 전문가 팀이 소유해야 하며, 이 팀은 코드의 구현 세부사항보다는 아키텍처에 초점을 맞춰야 합니다.
AI 친화적인 접근법
궁극적으로 목표는 AI 도구를 가능한 한 원활히 작동하도록 만드는 것입니다. 이를 위해 확실한 방법 중 하나는 시스템을 명확하고 응집력 있는 모듈로 분해하는 데 시간을 들이는 것입니다. 각 모듈은 명시적인 인터페이스를 통해 상호작용해야 합니다.
모듈 세트를 평가하는 유용한 기준은 핵심 기능과 데이터 흐름을 자연어로 설명할 때 얼마나 잘 설명할 수 있는지를 확인하는 것입니다. 현재와 계획된 기능을 간결하게 설명할 수 있어야 합니다. 또한, 원하는 아키텍처를 향해 발전하도록 가시성과 규칙을 설정하는 것도 고려해 볼 수 있습니다.
현대 개발 팀은 도메인의 요구를 강력하게 모델링할 수 있는 잘 정의된 모듈 시스템을 유지하고 발전시키기 위해 노력해야 합니다. 그리고 일상적인 기능 작업은 이 기초 위에서 생성형 AI 도구를 최대한 활용하며 수행해야 합니다.
품질이 속도로 이어진다
고품질의 코드베이스를 가지는 것은 이제 그 어느 때보다 더 가치가 있습니다. 모듈형 아키텍처에 대한 투자는 팀이 생성형 AI 도구를 최대한 활용하여 빠른 기능 개발을 수행하면서 동시에 더 높은 품질의 소프트웨어를 구축할 수 있도록 합니다.
Comments ()