소프트웨어 엔지니어링 팀의 AI 활용 방법
(refactoring.fm)- AI 기반 코딩 도구가 급증하며 일부 개인 개발자들은 AI를 이용해 놀라운 성과를 내고 있지만, 하지만 실제 엔지니어링 팀에서는 성과가 미미한 경우가 많음
- 성과가 차이가 나는 이유는 2가지: "그린필드 vs 큰 코드베이스", "싱글 vs 멀티 플레이어"
- 그래서 AI를 위한 새로운 코딩 워크플로와 앞으로의 흐름을 다음과 같이 예측해봄:
- 많은 기업이 엔지니어를 추가 고용 중 — 특히 좋은 회사들이 그러함
- 가장 큰 도전 과제는 대규모 코드베이스 — 실제로 가치를 창출하는 영역
- 로봇 vs 아이언맨 — AI 도구의 철학적 차이
- 개발자 행복 최적화 — AI가 처리할 수 있는 고역은 무엇인가?
- AI 코드 추적은 안티패턴 — 추적의 유혹에 빠지지 말 것
성과 차이의 원인
-
Green-field vs 큰 코드베이스
- 대부분의 AI 도구는 새 프로젝트(Green-field)에 최적화됨
- 오래된 코드베이스에서는 활용도가 떨어짐
-
싱글 플레이어 vs 멀티 플레이어
- 현재 AI 워크플로우는 싱글 플레이어 중심
- 팀에서 협업 시 문제 발생 (머지 충돌, 복잡한 컨텍스트 처리 등)
"AI 워크플로우는 혼자 작업할 때는 괜찮지만, 팀에서 사용하면 충돌이 잦고 비효율적임."
우수한 기업들은 더 많은 엔지니어를 고용중
- AI의 발전으로 엔지니어 수요가 감소할 것이라는 예측은 틀림
- AI로 생산성이 증가하면, 결과적으로 엔지니어 고용이 늘어나는 Jevon의 역설 발생
-
AI 도입에 따른 조직별 반응
- 상위 팀: AI 도입으로 생산성이 증가 → 엔지니어 추가 고용
- 평균 팀: 관료주의와 조정 비용으로 인해 고용 변화 없음
- 하위 팀: 기술이 단순 도구에 불과 → 비용 절감을 위해 팀 축소
가장 큰 문제는 대규모 코드베이스
- AI는 알고리즘 문제 해결에는 뛰어나지만, 실제 프리랜서 작업 성과는 저조함
- 컨텍스트 부족이 주요 원인
- 코드베이스에서 컨텍스트 전달 방식:
- Fine-tuning → 예측 불가능하고 비용이 큼
- Context Window 확장 → 정확도 보장 어려움
- RAG (Retrieval-Augmented Generation) → 현재 가장 유망함
좋은 RAG가 AI 코딩 도구 확장의 핵심
로봇 vs 아이언맨: AI 도구의 철학적 차이
-
자율형 도구 → 독립적인 에이전트처럼 작동
- Slack에서 명령받아 자동으로 PR 제출
- 예: Devin, Lindy
-
증강형 도구 → 인간이 작업을 주도하며 보조 역할 수행
- IDE에서 보조 도구로 활용, 최종 PR은 사람이 제출
- 예: Augment, Cursor
-
어떤 전략이 더 유리한가?
- 피드백 루프 → 증강형 도구가 더 빠르게 오류 수정 가능
- 확장성 → 자율형 도구는 조직적 복잡성 증가 위험
- 인간 중심 접근 → 증강형 도구가 인간을 강화하는 방향으로 발전
"AI는 클론 전쟁이 아니라 어벤저스를 만들어야 함"
개발자 행복을 위한 최적화
- 성공적인 팀은 생산성이 아니라 개발자 행복에 초점
- AI를 사용해 단순 작업(고역)을 줄이는 데 집중
- AI가 해결할 수 있는 Toil
- 1) 테스트 자동화
- AI가 테스트 코드 작성 → 보일러플레이트 코드 부담 감소
- 사전 명세 작성에 대한 보상이 증가 → TDD 적용 용이
- 2) 문서화 자동화
- AI가 코드 주석 및 기술 명세 작성 → 문서 관리 부담 감소
- AI가 코드 구조와 동작 설명 가능 → 단, 코드 작성 의도는 여전히 인간이 설명해야 함
- 3) 코드 품질 개선
- 코드 스타일 및 보안 취약점 점검 가능
- 인공지능 도구 예: Augment, Packmind, Codacy
- 1) 테스트 자동화
AI 코드 추적은 안티패턴
- AI가 자율적으로 작업하면 성과 추적 필요
- 그러나 AI가 인간을 증강하는 경우, AI 코드와 인간 코드 구분은 무의미함
- 생산성과 개발자 만족도에 집중하는 것이 더 효과적임
주요 시사점
- AI 도입으로 엔지니어 고용 증가 → Jevon의 역설로 인해 생산성 증가 시 고용 확대
- AI의 멀티플레이어 도입 필요 → 팀에서의 협업 강화 필요
- 대규모 코드베이스 문제 해결 필요 → 맥락 제공이 핵심
- 증강형 도구가 자율형 도구보다 유리 → 인간이 주도하고 AI가 보조
- 개발자 행복 최적화 → 생산성보다 행복 중시
- TDD의 부활 → AI가 테스트 작성 부담 완화
- 문서화 부담 감소 → AI가 코드 주석 및 기술 명세 자동 작성
- 코드 품질 개선 → AI가 코드 스타일, 보안 문제 점검
- AI 코드 추적은 무의미 → 성과는 전체 생산성과 만족도로 평가해야 함