깃허브와 마이크로소프트(MS)는 AI 기반 프로그래밍 보조 도구인 코파일럿을 코드 리뷰, 간단한 웹 앱, 자바 업그레이드, 애저 지원 및 문제 해결 영역으로 확장했다.
깃허브는 클라우드와 온프레미스 소스 코드 버전 관리 솔루션을 제공하는 것을 넘어서고 있다. 가령 CI/CD 플랫폼인 깃허브 액션(Actions)을 개발해 빌드 및 테스트 기능을 제공했으며, 이후 자주 발생하는 버그를 제거하고 종속성 관리를 통해 보안 취약점 패치를 자동화하는 도구를 추가했다.
이러한 기능은 깃허브가 개발자의 다양한 프로젝트 개발을 효율적으로 지원하는 플랫폼으로 자리매김하는 데 기여했다. 깃허브에는 수십억 줄의 코드가 저장되어 있으며, 그 중 많은 코드는 외부 공유가 가능한 라이선스로 제공되어 있다. 덕분에 깃허브에 등록된 코드를 보면, 개발 업계 트렌드를 이해할 수 있다. 깃허브는 ‘옥토버스 리포트’라는 이름으로 매년 프로그래밍 언어 및 개발 도구 관련 통계를 제공하고 있다.
깃허브는 방대한 코드베이스와 수백만 명의 개발자가 작성한 코드와 해결한 문제들에서 얻은 지식과 패턴을 학습하여, AI 기반 프로그래밍 어시스턴트 ‘코파일럿’을 구축했다. 코파일럿은 단순히 코드를 대신 작성해주는 도구가 아니라(물론 그렇게도 사용 가능하다), 문제 해결과 난관 극복을 위한 집단 지식을 제공하는 일종의 ‘AI 페어 프로그래머’의 역할을 하고 있다.
지난주 미국 샌프란시스코에서 열린 유니버스 2024 행사에서 깃허브는 코파일럿 관련 새 기능과 서비스를 발표했다. 대부분 코파일럿 서비스를 확장해 새로운 AI 기반 도구와 서비스를 추가하고, 기존 플랫폼에 새로운 옵션을 더한 것이었다. 다시 말해 코파일럿은 이제 단순한 코드 작성 지원을 넘어서, 코드 마이그레이션과 같은 새로운 AI 에이전트 기반 서비스를 추가하여 더 복잡하고 다양한 기능을 수행하는 방향으로 확장되고 있다.
깃허브 코파일럿으로 코드 리뷰하기
새롭게 추가된 기능 중 주목할 만한 것은 ‘코드 리뷰 도구’다. MS의 워드와 유사하게, 코드 리뷰 기능은 코파일럿을 추가 리뷰어로 활용하여 풀 리퀘스트의 코드를 검사한다. 코드 리뷰는 특정 부분이나 이전 푸시 이후 변경된 모든 코드에 대해 수행할 수 있다. 물론 AI가 리뷰하는 만큼 완벽하진 않다. 깃허브도 코드 리뷰 서비스가 모든 문제를 잡아내지는 못할 수 있으며 오류가 발생할 가능성도 있다고 언급했다. 따라서 현재로서는 보조 기술로 간주되어, 사용 후에도 개별적인 테스트 실행이나 인간 리뷰어의 검토가 필요하다. 코파일럿이 제안하는 사항에 대해 사용자는 피드백을 제공할 수 있으며, 이를 통해 코파일럿은 추가 학습과 파인튜닝을 진행할 수 있다.
깃허브의 코파일럿은 사람 코드 리뷰어처럼 코드에 댓글을 달고 신속한 수정을 제안한다. 이 도구는 깃허브 워크스페이스나 비주얼 스튜디오 코드(Visual Studio Code)의 코파일럿 플러그인을 통해 사용할 수 있다. 코드 스니펫 리뷰 기능은 모든 지원 언어에서 가능하지만, 전체 변경 사항 리뷰는 C#, 자바, 자바스크립트, 타입스크립트, 파이썬과 같은 주요 언어에서만 제공된다.
사용자는 설정을 통해 새로운 풀 리퀘스트가 생성될 때마다 코파일럿이 자동으로 리뷰를 실행하도록 할 수 있다. 개발 리더와 저장소 소유자는 브랜치 규칙을 설정해 코파일럿 리뷰가 모든 새 풀 리퀘스트에 대해 실행되도록 할 수 있다. 이 방식을 통해 코드에 자동으로 주석이 추가되어 다른 팀원이 풀 리퀘스트 병합 과정에서 변경 사항을 만들거나 수락할 수 있다.
AI 기반 개발의 대중화를 이끈다 ‘깃허브 스파크’
깃허브는 유니버스 행사에서 ‘깃허브 스파크(Spark)’라는 소형 클라우드 호스팅 애플리케이션을 위한 AI 개발 도구를 발표했다. 스파크는 일종의 개발 스크래치패드인 글리치(Glitch)와 로우코드 및 노코드 플랫폼인 파워플랫폼(Power Platform) 사이의 도구로, 동료와 함께 애플리케이션 아이디어를 빠르게 구축하고 공유할 수 있는 프레임워크를 제공한다.
깃허브 스파크는 매우 흥미로운 실험으로, 애플리케이션 변경 사항을 빠르게 반복할 수 있는 새로운 개발 피드백 루프를 제공한다. 애플리케이션의 모든 변형은 히스토리 뷰에 저장되어 이전 버전으로 쉽게 돌아가 새로운 변경 작업을 시작할 수 있다. 앱은 프로그레시브 웹 앱(PWA) 형태로 제공되며, 깃허브가 데이터를 저장하는 관리형 NoSQL 저장소를 제공한다.
스파크는 이제 막 공개된 기술인 만큼 해결돼야 할 과제가 많다. 하지만 코파일럿의 기능을 누구나 애플리케이션을 구축할 수 있는 도구로 확장한다는 아이디어는 매우 매력적이다.
AI를 활용한 자바 업그레이드
MS 개발자 도구 팀은 깃허브와 협력하여 코파일럿의 새로운 활용 사례를 모색하고 있다. 그중 하나는 자바 개발자를 위한 업그레이드 지원이다. 자바 애플리케이션의 많은 경우 최신 자바 릴리즈나 스프링 부트 같은 프레임워크, 최신 API 및 서비스로 업그레이드하는 것이 필요하다는 점에서 이 기능은 유용할 수 있다.
사실 코드 업데이트는 단순히 최신 JDK 버전으로 전환하는 것 이상이 필요하다. 애플리케이션에는 여러 종속성이 존재하기 때문에 함께 업데이트해야 할 요소들이 많다. 따라서 다양한 업데이트 경로를 따라가고 발생하는 오류를 해결하는 데는 시간이 많이 소요된다. 이런 부분을 해결하기 위해 나온 것이 ‘깃허브 코파일럿 자바 업그레이드 도우미’다. 에이전트 기반 워크플로를 활용하여 필요한 작업을 자동화하고, 필요에 따라 다양한 작업을 포함한 워크플로를 구성한다. AI를 활용해 사용자에게 맞춤형 업그레이드 계획을 제공하는 것이다.
사용자는 기존 프로젝트와 빌드 도구, 프레임워크 세부 사항을 입력하고 목표 자바 버전(예: 자바 8에서 자바 21로 업그레이드)을 지정하면 된다. 코파일럿 업그레이드 도우미는 코드베이스를 분석하여 업그레이드를 위해 필요한 단계 목록을 생성하고, 이를 깃허브 이슈 형식으로 제시해 사용자가 실행 전에 검토할 수 있도록 돕는다.
작업에 만족하면 도구는 사용자를 대시보드로 안내하여 코파일럿이 코드를 다시 작성하는 과정을 실시간으로 볼 수 있다. 이 과정은 언제든지 중지하거나 다시 시작할 수 있으며, AI 기반 코드가 어떻게 작동하는지 상세한 정보로 확인할 수 있다. 특히 비즈니스에 중요한 소프트웨어일 경우, AI가 신뢰할 수 있어야 하므로 이러한 투명성은 큰 장점으로 볼 수 있다.
이 서비스는 에이전트형 AI 프로세스로, 오류를 감지하고 수정하여 코드를 변경하고 재빌드 및 재테스트하는 하위 에이전트를 실행할 수 있다. 만약 수정이 실패하면 다른 접근 방식을 시도하며, 코파일럿 자바 모델 학습에 활용된 자바 개발자들의 공유 지식을 활용한다. 다른 깃허브 코파일럿과 마찬가지로, 성공적인 변경 사항은 모델에 반영되어 이후 오류 발생 가능성을 줄이는 데 기여한다. 이는 수동 업데이트나 기타 변경 사항에도 동일하게 적용된다.
업그레이드 도우미는 깃(Git)의 기능을 활용해 변경 사항을 새로운 브랜치에 저장한다. 이렇게 하면 원본 코드를 그대로 지원하면서도 업데이트된 버전을 테스트할 수 있다. 에이전트는 수행한 작업의 세부 정보를 포함해 모든 커밋에 표시를 남겨, 업그레이드 과정이 어떻게 진행되었는지 쉽게 확인할 수 있도록 한다. 최종 풀 리퀘스트를 작성하는 작업은 사용자가 직접 수행하며, 업그레이드된 자바 애플리케이션이 모든 테스트를 통과했을 때 마무리된다.
VS 코드에서 애저 코파일럿 사용하기
깃허브 코파일럿의 또 다른 새로운 기능은 개발자의 컨텍스트 전환 빈도를 줄이는 데 초점을 맞추고 있다. 그중 하나는 비주얼 스튜디오 코드 내에서 작동하도록 설계되었으며, 새로운 @azure 연산자를 통해 애저 인프라 도구를 깃허브 코파일럿 채팅 창과 통합한다.
‘애저 코파일럿’이라는 이 기능은 애저 CLI 명령의 구문을 신속하게 파악하는 데 도움을 줄 뿐만 아니라, 미처 고려하지 못했던 기능과 서비스를 발견하는 데도 유용하다. 기본 도구에는 “검색 증강 생성 기술 기반 검색이 포함되어 있어, 애저 문서를 활용해 플랫폼과 사용 방법에 대한 최신 정보를 제공한다. 또한 앱 템플릿 선택이나 원하는 서비스에 적합한 지역을 신속하게 찾는 등 애플리케이션 구축과 배포에 필요한 상세 정보를 제공하는 데 도움을 준다.
다른 도구는 로그와 기타 진단 도구에 접근하여 문제 해결을 위한 수정 방안을 제시한다. 에이전트 AI용으로 개발된 도구는 복잡한 진단 워크플로우를 즉시 구성하는 데 필요한 API와 데이터 소스를 제공한다. 이러한 도구는 애플리케이션 개발에 사용하는 동일한 코드 에디터에서 개발 애저 인스턴스를 구축하고, 문제를 해결하며, 실행할 수 있도록 환경 운영을 지원한다.
개발 도구에 비서가 있다는 것은 AI가 코드를 대신 작성해 준다는 의미가 아니다. 적어도 현재의 생성형 AI는 그런 역할을 하지 않는다. 대신 깃허브 코파일럿은 수많은 개발자의 문제 해결 경험을 학습한 ‘AI 페어 프로그래머’로서, 힌트 제공과 코드 제안, 복잡한 작업의 자동화를 지원한다. 대규모 언어 모델을 사용한 초기 활용 사례로서, 깃허브는 이제 다음 단계로 나아가고 있으며, 그 발전이 매우 흥미로울 것으로 보인다.
dl-ciokorea@foundryco.com
Read More from This Article: 코드 리뷰·자바 버전 관리 기능 강화··· 진화하는 깃허브 코파일럿
Source: News