loading...

생성형 AI 시대, 개발자에게 필요한 AI 코딩 도구 활용 전략

이 글은 IDG의 아티클을 전재하여 제공합니다.
[원문보기] : https://www.ciokorea.com/column/346854#csidx7407749d38a10c3be18f606036d75ff

스마트워치로 운동 정보를 확인하는 것만큼 간편하게 개발자 생산성을 측정할 수 있는 세상을 상상해 봅니다. 깃허브 코파일럿과 같은 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 시대에 맞는 생산성 향상 방법을 확보해야 합니다. 올바른 기대치를 설정함으로써 팀은 새로운 차원의 생산성과 효율성을 달성할 수 있습니다.

IDG logo

▶   해당 콘텐츠는 저작권법에 의하여 보호받는 저작물로 기고자에게 저작권이 있습니다.
▶   해당 콘텐츠는 사전 동의 없이 2차 가공 및 영리적인 이용을 금하고 있습니다.


이 글이 좋으셨다면 구독&좋아요

여러분의 “구독”과 “좋아요”는
저자에게 큰 힘이 됩니다.

subscribe

구독하기

subscribe

Madhup Mishra
Madhup Mishra

SmartBear의 SVP, Product Marketing

공유하기