GN⁺: AI가 기술 부채를 더 비싸게 만드는 이유
(gauge.sh)- AI가 코드 작성과 정리에 도움을 주기 때문에 기술 부채(tech debt) 가 덜 중요해질 것이라는 믿음이 있음
- 하지만 실제로는 AI가 기술 부채의 비용을 더 크게 만들고 있음
- 낮은 부채의 코드베이스에서 AI 도구의 속도 향상은 극대화되지만, 높은 부채를 가진 레거시 코드베이스에서는 AI 도구의 효율이 급격히 떨어짐
- 결과적으로, 기술 부채가 많은 코드베이스는 AI 도구를 활용하는 데 더 큰 어려움을 겪고 있음
복잡한 코드에 취약한 생성형 AI
-
Cursor나 Aider 같은 AI 코딩 도구들은 코드의 복잡성에 매우 민감하게 반응함
- 기존 패턴이나 인터페이스가 잘 정의된 코드에서는 속도 향상이 크지만, 복잡한 제어 흐름과 의존성이 많은 코드에서는 유효한 응답을 생성하는 데 어려움을 겪음
- 복잡한 코드베이스는 AI 모델뿐만 아니라 개발자가 요청을 명확하게 구성하는 것도 어렵게 만듦
- 이로 인해 많은 개발자들은 AI 도구가 ‘생산 수준’의 복잡성을 처리할 수 있을 때까지 기다리는 경향이 있음
AI 도구를 제대로 활용하기
- 레거시 코드베이스에서 AI 도구를 무리하게 사용하기보다는, 인간 전문가가 리팩토링을 통해 AI가 원활히 작동할 수 있도록 하는 것이 중요함
- 직접적인 리팩토링이 위험할 경우, Strangler Fig 패턴과 같은 방법을 사용해 새로운 모듈을 개발하고 이를 통해 AI 도구의 이점을 즉시 활용할 수 있음
- 이를 통해 개발팀은 더 높은 수준의 추상화에 집중하고, 코드의 세부 구현보다는 아키텍처 설계에 중점을 두게 됨
AI 친화적인 접근 방식
- AI 도구가 제대로 작동할 수 있도록 시스템을 모듈화하고, 명확한 인터페이스를 통해 모듈 간 상호작용을 정의하는 것이 중요함
- 자연어로 핵심 기능과 데이터 흐름을 설명할 수 있는 모듈 구조를 유지하는 것이 유용한 기준임
- Gauge Tach와 같은 도구를 사용해 가시성 및 아키텍처 규칙을 설정하면, 모듈화된 시스템으로 발전할 수 있음
품질이 속도를 좌우함
- 고품질의 코드베이스를 유지하는 것이 그 어느 때보다 중요해졌음
- 모듈화된 아키텍처에 투자하면, 팀은 AI 도구의 최대 효과를 발휘할 수 있으며, 빠른 기능 개발과 고품질 소프트웨어를 동시에 구축할 수 있음
Hacker News 의견
-
젊고 고품질의 코드베이스를 가진 회사들이 생성 AI 도구로부터 가장 큰 혜택을 받음. 반면, 복잡한 레거시 코드베이스를 가진 회사들은 이를 채택하는 데 어려움을 겪음. 개인 프로젝트에서 LLM을 사용할 때도 비슷한 경험을 했음. 코드베이스가 조금이라도 독특해지면 모델이 오류를 범하고 작업이 더 어려워짐
-
LLM은 쉬운 작업을 더 쉽게 만들어 주지만, 어려운 작업에서는 실수를 범함. 이러한 격차는 줄어들지 않고 오히려 커지고 있음
-
'고부채' 환경에서는 미묘한 제어 흐름과 장기 의존성, 예상치 못한 패턴 때문에 유용한 응답을 생성하는 데 어려움을 겪음. 많은 경우 이것은 '기술 부채'가 아니라 코드베이스의 성숙함을 나타내는 것임
-
생성 AI 도구가 레거시 코드베이스의 복잡한 문제를 해결하도록 강요하기보다는, 인간 전문가가 레거시 코드를 리팩토링하여 생성 AI가 원활하게 작동할 수 있도록 해야 함
-
AI가 기술 부채를 덜 중요하게 만들 것이라는 믿음이 생겨나고 있음. 그러나 AI가 생성한 코드는 불규칙하고 일관성이 없으며, 특정 프롬프트와 컨텍스트 입력에 매우 민감함
-
AI 생성 코드는 실제로 가치가 있을 수 있지만, 이 기사에서의 프레임은 비현실적임
-
머신러닝은 기술 부채의 고금리 신용카드와 같음. 코드 생성이 쉬워질수록 더 많은 코드가 생성되고, 유지보수 비용이 증가함
-
LLM의 코드 생성 능력에 감탄하지만, 목표는 코드 양을 줄이는 것임
-
AI가 단순한 작업을 처리하고 더 많은 코드를 생성하지만, 발견하기 어려운 버그를 생성함. 이러한 도구로 더 빠르게 움직일 수 있지만, 다른 방식으로 운영해야 할 필요가 있음
-
AI가 코드 이해 및 수정에 도움을 줄 수 있지만, 맹목적인 복사-붙여넣기는 좋지 않음. 코드 검토와 설명 요청, 반복 작업이 여전히 필요함