AI 생성 코드의 증가로 개발팀은 코드 리뷰, 보안 테스트, 자동화 테스트 프로세스를 고도화해야 한다.
스마트워치로 운동 정보와 나의 심박수를 확인하는 것만큼 간편하게 개발자 생산성을 측정할 수 있는 세상을 상상해 보자. 깃허브 코파일럿과 같은 AI 코딩 도구를 사용하면 이런 꿈의 세상이 머지않은 것처럼 보인다.
깃허브는 코파일럿이 맥락을 인식한 코드 완성 및 스니펫 생성을 통해 개발자의 생산성을 높여준다고 주장한다. 실제로 이 도구는 AI를 활용하여 필요한 코드 전체 또는 일부 모듈을 제안함으로써 수동 코딩 작업을 줄여준다. 마치 더 빠르게 코딩하고 복잡한 문제 해결에 집중할 수 있도록 도와주는 강력한 비서와 같다.
일반적으로 조직은 소프트웨어 개발 및 개발팀의 성과를 평가하기 위한 구조화된 접근 방식으로 DORA(DevOps Research and Assessment) 메트릭을 사용해 왔다. 구체적인 데이터를 제공하는 DORA 덕에 팀은 더 높은 신뢰성과 향상된 시스템 안정성으로 소프트웨어를 더 빠르게 제공했다. 특히 배포 빈도, 변경 리드 타임(lead time for changes), 변경 실패율(Change Failure Rate, CFR), 평균 복구 시간(Mean Time To Restore, MTTR)에 집중함으로써 팀은 워크플로우에 대한 중요한 인사이트를 얻었다.
DORA 메트릭에 AI가 미치는 영향
DORA 메트릭이 모두 장점만 있는 것은 아니다. 잘못 사용하면 품질보다 양에 치중하게 될 수 있다. 마치 교재를 제대로 이해하지 못한 채 시험공부를 하는 학생처럼, 개발자는 DORA 지표를 개선하기 위해 시스템을 조작할 수 있다. 최신 마이크로 서비스 기반 애플리케이션을 개발하는 개발자는 오래된 모놀리식 시스템을 처리하는 개발자에 비해 상대적으로 DORA 지표에서 유리한 평가를 받을 수 있다. 그런 면에서 누군가에게는 불공평하게 느껴질 수 있는 제도이다.
AI 코딩 도구의 등장은 이 문제를 더욱 악화시킨다. 깃허브 코파일럿 같은 도구는 생산성 지표를 향상시킬 수 있지만, 그 결과가 반드시 더 나은 배포 방법 또는 더 나은 안정성을 보장하진 않는다. 오히려 AI가 생성한 코드는 개발 프로세스를 제대로 개선하지 않고 생산성 통계를 부풀릴 수 있다.
AI 코딩 도구는 혁신적이지만, 여러 단점도 존재한다. 예를 들어, AI 코딩 도구에 과도하게 의존하면 개발자의 실력이 저하될 수 있고, 생성된 코드에 대한 저작권, 코드 품질, 보안 문제 등이 발생할 수 있다. 이 모두 DORA 지표에 직접적인 영향을 미칠 수 있는 부분이다.
방대한 양의 공개 코드를 학습한 AI 코딩 도구는 의도치 않게 버그나 취약점이 있는 스니펫을 제안할 수 있다. 가령 AI가 생성한 코드가 SQL 인젝션 공격 요소를 만들었다고 가정해 보자. 프로젝트별 맥락을 이해하지 못한 채 개발팀의 고유한 비즈니스 로직이나 아키텍처 표준과 맞지 않는 코드를 생성한다면 어떨까? 거기다 이러한 잠재적 결함은 개발 주기 후반부나 실제 운영 환경 배포 이후에야 드러날 수 있다. 심각한 문제이다.
또한 개발자가 생성형 AI 코드에 지나치게 의존하게 된다면, 코드 검토 및 테스트에 대한 태도가 느슨해질 위험도 있다. 미묘한 버그와 비효율성을 간과하여 프로덕션 환경에서 결함이 발생할 수 있다는 뜻이다.
이러한 문제는 DORA 지표에 직접적인 영향을 미친다. AI 코드로 인한 결함이 증가하면 변경 실패율(CFR)이 높아져 배포 파이프라인 안정성에 부정적인 영향을 미칠 수 있다. 프로덕션 환경에서 발견된 AI 기인 버그는 해결에 더 많은 시간이 소요되어, 평균 복구 시간(MTTR)을 증가시킬 수 있다. 또한 AI 코딩 도구로 생긴 오류를 잡기 위해 추가적인 검토와 테스트가 필요하기 때문에 개발 프로세스가 느려지고 변경 리드 타임이 늘어날 수 있다.
개발팀을 위한 가이드라인
이러한 영향을 완화하기 위해 개발팀은 엄격한 코드 검토 관행을 유지하고 포괄적인 테스트 전략을 수립해야 한다. 계속 증가하는 방대한 양의 AI 코드는 인간이 수동으로 작성된 코드만큼이나 철저하게 테스트해야 한다. 이를 위해 조직은 엔드투엔드 테스트 자동화 및 테스트 관리 솔루션에 투자하여 주기 초기에 코드 품질에 대한 추적 및 엔드투엔드 가시성을 제공하고 테스트 전반을 체계적으로 자동화할 수 있다.
궁극적으로 개발팀은 코드 리뷰 수행, 보안 테스트 적용, 테스트 자동화 방식을 적극 개선하여 AI 코딩 도구로 증가된 부하를 관리해야 한다. 이를 통해 적절한 수준의 신뢰도를 갖춘 고품질 소프트웨어를 지속적으로 제공할 수 있다.
다음은 소프트웨어 개발팀이 고려해야 할 5가지 가이드라인이다.
1. 코드 리뷰
코드 리뷰 시 테스트 모범 사례를 통합하여 AI 생성형 코드에서도 코드 품질을 유지하자. 깃허브 코파일럿 같은 AI 코딩 도구가 테스트하는 범위를 확대하고, AI 코딩 도구가 테스트를 누락한 영역을 따로 식별하게 하고 예외 상황 예측하라고 요청하면서 개발 과정의 품질과 안정성을 높일 수 있다. 이를 통해 팀은 높은 수준의 코드 품질과 안정성을 유지할 수 있다.
2. 보안 검토
모든 코드 입력 사항은 잠재적으로 보안 위협을 가지고 올 수 있다고 취급해야 한다. AI 코드를 통해 침입할 수 있는 SQL 인젝션이나 크로스 사이트 스크립팅(XSS) 공격과 같은 일반적인 위협으로부터 애플리케이션을 강화하려면, 모든 코드를 엄격하게 확인하고 검토하는 것이 필수적이다. 거기다 개인 정보 및 신용카드 번호와 같이 추가적인 보안 계층이 필요한 민감한 데이터를 보호하기 위해서 강력한 거버넌스 정책을 수립해야 한다.
3. 자동화된 테스트
테스트 케이스 생성을 자동화하여 팀이 단위, 기능 및 통합 테스트를 위한 단계를 빠르게 구축해보자. 이를 통해 애플리케이션에서 생성형 AI 코드가 급증하는 것을 관리할 수 있다. 자동화된 엔드투엔드 테스트 시스템을 구축할 때, 개발자나 QA 전문가뿐만 아니라 비기술 분야 직원들도 쉽게 테스트를 만들고 관리할 수 있게 해야 한다. 이렇게 하면 테스트 과정에 더 많은 사람이 참여할 수 있어, 전체적인 소프트웨어 품질 관리 능력이 향상된다.
4. API 테스트
API 생성 및 관리를 위한 AI 기반 자동화 테스트 시스템을 구축하자. 이때 개방형 표준을 이용하면 좋다. 이러한 API 테스트 기술을 개발자 도구와 통합하면 개발 속도를 높이고 비용을 절약할 수 있다. 또한 코드 변경이 이뤄지는 동안 기존에 작성된 테스트가 올바르게 작동하도록 관리하고 유지보수를 해야 한다.
5. 테스트 관리 개선
AI는 지능형 의사 결정, 위험 분석 및 테스트 프로세스 최적화에 도움을 줄 수 있다. 또한 AI는 방대한 데이터를 분석하여 테스트 커버리지, 효율성 및 주의가 필요한 영역에 대한 인사이트를 제공할 수 있다.
깃허브 코파일럿 및 AI 코딩 도구는 생산성 향상을 약속하지만, DORA 메트릭을 관리할 수 없게 만들 수 있는 심각한 우려를 불러일으킬 수 있다. 개발자의 생산성은 표면적으로 높아질 수 있지만 그 대가도 존재한다. AI가 생성한 코드를 면밀히 검토하지 않으면 기업은 그 이점을 제대로 누릴 수 없으며 심한 경우 재앙을 마주할 수 있다. 따라서 AI 코드를 도입하는 조직은 DORA 지표를 재평가하여 AI 시대에 맞는 생산성 향상 방법을 확보해야 한다. 올바른 기대치를 설정함으로써 팀은 새로운 차원의 생산성과 효율성을 달성할 수 있다.
[참조 : CIO, 칼럼| 개발팀 성과 향상을 위한 5가지 전략]
'프로그램개발' 카테고리의 다른 글
깃허브 설문 "AI 코딩 도구 사용하는 개발자 97% 이상" (0) | 2024.08.23 |
---|---|
제휴 마케팅 프로그램 개발: 비즈니스 성장을 위한 실용적인 전략과 팁 (0) | 2024.02.01 |
웹페이지 단가 상담 필요하세요? - 똑똑한개발자의 특징 (0) | 2023.10.20 |
PHP를 활용한 설문조사 프로그램 개발 (0) | 2023.09.25 |
초보자를 위한 PHP 반복문 사용법: for문, while문, do-while문 이해하기 (0) | 2023.09.06 |
댓글