AI가 없다면 프로그래머와 협력하여 코드를 작성하는 것이 올바른 방법입니다.

Super Neuro에서
유명 게임 개발 회사인 유비소프트와 오픈소스 기술 대기업인 모질라는 최근 엔지니어에게 버그 경고 및 수정 기능을 제공하는 공동 개발한 프로그래밍 지원 도구인 Clever-Commit을 출시했습니다.
"파이썬 작성을 돕는 것은 AI가 프로그래머를 대체하기 위한 첫 단계일 뿐이다"라는 제목의 기사를 게재했는데, 이 기사에서는 점점 더 많은 AI 도구가 엔지니어가 코드 작성 과정에서 코드 품질과 작업 효율성을 개선하는 데 도움이 될 수 있다고 소개했습니다.
예를 들어, GitHub CEO가 투자한 Kite는 현재 프로덕션 환경에 따라 코드 조각을 지능적으로 완성하고, 함수를 호출하고, 문서 데모를 쿼리할 수 있습니다. 카이트가 AI의 야망은 인간을 돕는 데 그치지 않고 결국 엔지니어의 기능을 대체하는 데 있다고 농담한 적이 있습니다.
물론, 이건 그냥 농담이에요. 현재로선 AI가 장인을 완전히 대체할 가능성은 낮아 보인다. 미래에는 AI가 엔지니어가 더 효율적이고 더 높은 품질로 작업하는 데 더 많은 도움을 줄 것입니다.

최근, 모질라와 유비소프트가 공동으로 개발한 AI 코딩 어시스턴트인 클레버커밋이 등장했습니다. 이 기능의 목적은 Firefox 엔지니어를 버그로부터 구출하는 것입니다. 2월 12일, 모질라는 유비소프트와 협력하여 이 도구를 사용하여 코드 작성의 효율성을 높이고, 이를 통해 파이어폭스 사용자에게 더 나은 브라우징 경험을 제공하기 시작했다고 발표했습니다.
Clever-Commit: 고에너지 벌레가 곧 출몰합니다!
Clever-Commit의 전신은 Ubisoft이 작년에 출시한 Commit-Assistant입니다.

Commit-Assistant는 버그를 찾아 수정 방법을 제안하는 시스템입니다. 개발자가 게임 경험을 개선하는 데 도움이 되는 코드 지원 도구입니다. 이 AI 비서의 탄생은 거대한 코드 베이스 덕분입니다. 훈련 기간 동안 유비소프트의 약 10년 분량의 작업 코드가 제공되었으며, 그 중에는 많은 버그가 수정된 코드도 포함되어 있었다고 합니다.
이러한 배경에서 Mozlia와 Ubisoft은 Clever-Commit의 업그레이드 버전을 출시하기 위해 협력했습니다.
Clever-Commit은 보조 프로그래밍 도구로, 간단히 말해 코드를 검사하는 AI 보조 도구입니다. 개발자가 Firefox 코드 베이스에 코드 변경 사항을 제출하면 Firefox는 새 코드를 이전 코드와 비교하여 발견된 버그와 유사한지 확인할 수 있습니다. 도우미가 새로운 제출물이 의심스럽다고 판단하면 개발자에게 경고합니다.

보조자의 판단 정확도가 높으면 소스 저장소에 제출되기 전에 버그를 감지하고 경고할 수 있다는 의미입니다. 일부 버그의 경우 Clever-Commit은 적절한 수정 방법을 제안할 수도 있습니다.
모질라는 코드 검토 단계에서 Clever-Commit을 먼저 사용할 계획이며, 시간이 지남에 따라 다른 개발 단계로 확장할 계획입니다. Mozilla가 Firefox에 사용하는 세 가지 언어, 즉 C++, JavaScript, Rust와 완벽하게 호환된다는 점도 언급할 가치가 있습니다.
어떻게 버그를 찾나요?
사실, 그 발생은 불가피하며, 결함을 자동으로 예방하고 해결하는 것은 소프트웨어 개발에 있어서 피할 수 없는 방향입니다. 기존 접근 방식에서는 코드와 프로세스 측정 항목을 활용하여 소프트웨어 프로젝트에서 결함 삽입을 효과적으로 방지할 수 있는 측정 항목 기반 모델을 구축합니다.
여기에 사용된 기술은 CLEVER라고 불리는데, 유비소프트와 콘코디아 대학의 연구원들이 처음 개발한 기술입니다. 그들은 "CLEVER: 대규모 산업 프로젝트에서 적시 오류 방지 및 해결을 위한 코드 메트릭과 클론 감지의 결합"이라는 제목의 논문을 썼으며, 이 논문에서 이에 대한 세부 사항을 설명했습니다. 일반적으로 버그 예방 및 해결 기술을 결합한 것입니다.

기사 주소: https://montreal.ubisoft.com/wp-content/uploads/2018/05/ICSE-CE-MSR-165.pdf
중요한 것은 코드를 추가할 때 위험한 부분인지 정확하게 판단하여 가로채거나 수정하는 것입니다.
구현 방법에는 두 가지 주요 단계가 있습니다. 첫 번째는 기존 지표를 기반으로 라이브러리를 구축하는 것입니다. 이를 통해 새로 추가된 코드가 위험한 코드와 유사한지 여부를 판단할 수 있습니다. 두 번째 단계는 이러한 위험해 보이는 코드를 코드의 복제 영역에 추가한 다음, 위험한 코드인지 여부를 확인하는 것입니다.


또한, CLEVER는 현재 프로젝트를 평가할 뿐만 아니라, 관련된 다른 프로젝트도 고려하여 판단하므로 더욱 높은 수준의 지능성을 달성합니다. 코드 베이스 매칭과 이전 데이터 축적을 기반으로, CLEVER는 버그 식별률과 개선 제안 측면에서 선두 수준에 있습니다.
유비소프트와 파이어폭스의 국경 간 협력
CLEVER가 그토록 강력한 이유는 바로 강력한 리소스가 뒷받침되기 때문입니다. 유비소프트는 비디오 게임 산업의 거대 기업으로, 고예산 비디오 게임의 디자인과 구현을 전문으로 합니다.

유비소프트의 소프트웨어 시스템은 수백만 개의 파일과 커밋으로 구성되어 있으며, 6개 대륙의 29개 지역에 있는 8,000명 이상의 개발자가 개발하고 유지관리하는 높은 결합도를 가지고 있습니다. 이는 CLEVER의 개발 및 교육에 있어서 독보적인 장점입니다.
CLEVER의 성능을 비교하기 위해 Ubisoft 시스템 12개에서 테스트했습니다. 결과에 따르면 CLEVER는 위험한 코드 제출에 대해 79%의 정확도와 65%의 재현율을 달성했는데, 이는 유사한 방법인 Commit-guru(66% 정확도와 63% 재현율)의 성능을 능가하는 수치입니다. 게다가 CLEVER는 개발자에게 위험한 커밋의 66.7%를 수정하는 방법을 추천할 수 있었습니다.
CLEVER 기술을 활용한 Clever-Commit은 Mozilla의 개발 프로세스에 완벽히 통합되면 좋은 성과를 거둘 것으로 기대되며, 이를 통해 개발자들의 고통도 크게 줄어들 것으로 기대됩니다. 취약점이 커밋되기 전에 4~5개를 포착하면 커밋된 후에 찾는 것보다 더 많은 리소스를 절약할 수 있습니다.

Firefox 엔지니어링 팀은 코드 작성, 테스트, 릴리스 프로세스에 Clever-Commit을 사용할 것이라고 밝혔습니다. 그들은 이 접근 방식을 통해 취약성 위험 분석 및 감지에 소요되는 수백 시간을 절약할 수 있을 것으로 기대합니다.
그 밖에 다른 것이 있나요?
대규모 코드베이스에서 버그를 감지하기 위해 머신 러닝을 사용하려는 시도도 있습니다.
작년에 Microsoft는 Visual Studio에서 비슷한 도구인 IntelliCode를 출시했습니다.

IntelliCode는 가장 인기 있는 공개 GitHub 저장소(각각 100개 이상의 별을 받은 2,000개 이상의 프로젝트)를 연구하여 가장 우수한 코딩 관행의 특징을 발견했습니다.
IntelliCode의 초기 목적은 매우 보수적이었습니다. 다른 프로젝트에서 동일한 API를 사용하는 방식을 기반으로 어떤 제안이 사용될 가능성이 더 높은지 이해하여 더욱 스마트한 IntelliSense 완성 제안을 제공했습니다. 또한 코딩 스타일과 공백 사용을 감지하여 비슷한 코드 작성 스타일로 코드를 작성하는 데에도 사용됩니다.
Clever-Commit과 마찬가지로 IntelliCode는 버그를 찾는 데 사용할 수 있습니다. 개발자의 순간적인 실수에 대해 적절한 시정 조치를 제공합니다.
