Amazon Web Services 한국 블로그

AI 코딩 동반자 Amazon CodeWhisperer 활용하는 4가지 방법

Amazon CodeWhisperer가 대중에게 공개된 후 불과 몇 개월이 지났지만, 벌써 많은 고객이 Amazon CodeWhisperer를 이용해 소프트웨어 개발 방법을 단순화하고 능률을 높이고 있습니다. CodeWhisperer는 기본 모델을 통해 작동하는 생성형 AI를 사용하여 코드의 의미와 맥락을 이해하고, 관련성 있고 유용한 제안을 제공합니다. CodeWhisperer를 사용하면 애플리케이션을 더 빠르고 안전하게 만들 수 있으며, 간단한 제안에서 복잡한 문제를 더 단순한 작업으로 분해할 수 있는 전체 함수 및 단위 테스트 작성까지, CodeWhisperer는 다양한 수준으로 도움을 제공합니다.

코드 테스트 적용 범위를 개선하거나 애플리케이션에 대한 세분화된 권한 부여 모델을 구현하는 상황을 상상해 보세요. 코드 작성을 시작하셨다면 여기 CodeWhisperer가 여러분과 함께합니다. CodeWhisperer는 사용자의 코멘트와 기존 코드를 이해하여, 스니펫에서 전체 함수 또는 클래스에 이르는 다양한 실시간 제안을 제공합니다. 이러한 즉각적인 지원은 사용자의 흐름에 맞게 조정되므로 솔루션이나 구문 팁을 찾기 위해 맥락을 전환하지 않아도 됩니다. 코드 동반자를 사용하면 개발 프로세스 중에 집중력과 생산성을 높일 수 있습니다.

익숙하지 않은 API를 발견하면 CodeWhisperer가 관련성 높은 코드 제안을 제공하기 때문에 작업 속도를 높일 수 있습니다. 또한 CodeWhisperer는 감지하기 어려운 취약점을 탐지하고 이를 수정하는 방법을 제안하는 포괄적인 코드 스캔 기능도 제공합니다. OWASP(Open Worldwide Application Security Project)에서 설명하는 모범 사례와 일맥상통하는 기능이죠. 이렇게 하면 코딩 효율이 향상될 뿐만 아니라 더 안전하게 작업하고 원하는 작업 품질을 확실히 이끌어낼 수 있습니다.

또한 CodeWhisperer는 오픈 소스 학습 데이터와 유사한 코드 제안에 플래그를 지정하고, 편향되거나 불공정하다고 간주될 수 있는 문제 코드에 플래그를 지정하거나 제거할 수 있습니다. CodeWhisperer는 관련 오픈 소스 프로젝트의 리포지토리 URL와 라이선스를 제공하므로 사용자는 이를 쉽게 검토하고 필요한 경우 속성을 추가할 수 있습니다.

다음은 프로토타이핑과 온보딩에서 데이터 분석과 권한 관리에 이르는, 소프트웨어 개발의 다양한 영역에서 사용 중인 CodeWhisperer 예시입니다.

1. 프로토타이핑과 온보딩 속도를 높이는 CodeWhisperer
CodeWhisperer를 흥미로운 방식으로 사용하는 대표적인 고객은 BUILDSTR로, 주로 플랫폼 개발 및 현대화를 위한 클라우드 엔지니어링 서비스를 제공하는 컨설팅 회사입니다. 이 회사는 백엔드에서는 Node.js와 Python을 사용하고 프런트엔드에서는 주로 React를 사용합니다.

BUILDSTR의 공동 설립자인 Kyle Hines와 이야기를 나눈 적 있는데, 그는 이렇게 말했습니다. “다양한 고객을 위한 다양한 유형의 개발 프로젝트에서 CodeWhisperer를 활용한 결과, 프로토타이핑에는 엄청난 변화가 생겼습니다. 예를 들어 우리는 Amazon DynamoDB 같은 다른 AWS 서비스와 상호 작용하는 AWS Lambda 함수용 템플릿을 매우 빠르게 만들 수 있게 되었습니다.” Kyle은 이제 프로토타이핑에 소요되는 시간이 40% 단축되었고, 고객 환경에 존재하는 취약성 수가 50% 이상 감소했다고 말했습니다.

CodeWhisperer를 사용하여 AWS Lambda 함수의 핸들러를 생성하는 코드 편집기의 스크린샷.

Kyle은 또한 “새로운 인재를 채용하고 개발하는 일은 컨설팅에 항상 동반되는 프로세스이기 때문에 우리는 CodeWhisperer를 활용해 신규 개발자를 온보딩했고 덕분에 BUILDSTR Academy는 온보딩에 수반되는 시간과 복잡성을 20% 이상 줄일 수 있었습니다.”라고 덧붙였습니다.

2. 실험적 데이터 분석을 위한 CodeWhisperer
Wendy WongService NSW에서 데이터 파이프라인을 구축하고 AI 관련 애자일 프로젝트를 수행하는 비즈니스 성과 분석가입니다. 커뮤니티에 기여한 공로를 인정받아 AWS Data Hero로 선정되기도 했습니다. Wendy는 Amazon CodeWhisperer 덕분에 통계 및 시각화 도구를 이용해 데이터 세트를 분석하여 주요 특성을 요약하는 실험적 데이터 분석 프로세스 속도가 크게 증가했다고 말합니다.

CodeWhisperer가 자신이 작성하는 모든 코드의 의도를 정확하게 추론하며 궁극적으로는 모범 사례를 제안하여 코드 품질 개선을 지원하는 사용자 친화적이며 신뢰할 수 있는 코딩 동반자라는 사실을 알게 되었습니다.

“CodeWhisperer가 제 코드와 주석을 정확하게 자동 완성하기 때문에 세부 사항을 모두 기억할 필요가 없어 코드 작성이 훨씬 쉬워졌습니다.” 그녀의 설명입니다. “이전에는 데이터 준비 사전 처리 작업을 설정하는 데 15분이 걸렸지만 이제는 5분밖에 걸리지 않습니다.”

Jupyter Notebook에서 Amazon CodeWhisperer를 사용하는 실험적 데이터 분석의 스크린샷.

Wendy는 이러한 반복 작업을 CodeWhisperer에 위임하여 효율성을 높였다고 말하며, CodeWhisperer를 이용해 실험적 데이터 분석을 단순화하는 방법을 설명하는 일련의 기사를 작성하기도 했습니다.

데이터 세트 탐색에 사용하는 또 다른 도구는 SQL입니다. Wendy는 CodeWhisperer를 이용해 SQL 전문가가 아닌 데이터 엔지니어를 돕는 방법을 확인하고 있습니다. 예를 들어 “다중 조인(Join) 작성”이나 “하위 쿼리 작성”을 요청하면 올바른 사용 구문을 빠르게 얻을 수 있다는 사실을 알게 되었습니다.

Amazon CodeWhisperer에 SQL 구문 및 코드 생성 요청.

3. 테스트와 기타 일상 작업의 속도를 높이는 CodeWhisperer
저는 AWS Developer Relations Platform 팀에서 일하는 소프트웨어 엔지니어를 만난 적이 있습니다. 이 팀의 가장 중요한 업무는 community.aws 웹 사이트 구축과 운영입니다.

AWS Developer Relations Platform 팀이 Amazon CodeWhisperer의 도움을 받아 구축하고 운영하는 community.aws 웹 사이트의 스크린샷.

Nikitha Tejpal은 주로 TypeScript 관련 업무를 수행하며, CodeWhisperer는 그녀가 코딩을 입력할 때 효과적인 자동 완성 제안을 제공하여 그녀의 코딩 프로세스를 지원합니다. Nikitha는 CodeWhisperer가 단위 테스트를 도와주는 방식이 특히 마음에 든다고 말합니다.

“이제 저는 일단 포지티브 테스트를 작성하는 데 집중한 다음, 주석을 사용하여 CodeWhisperer가 동일한 코드에 대한 네거티브 테스트를 제안하게 합니다.” 그녀의 설명입니다. “이렇게 하면 단위 테스트 작성 시간을 40% 줄일 수 있습니다.”

그녀의 동료인 Carlos Aller Estévez는 CodeWhisperer의 자동 완성 기능을 사용하여 기존 코드를 보완하기 위한 코드 한두 줄을 제안받은 후 이를 수락하거나 무시합니다. 때로는 CodeWhisperer의 예측 기능을 능동적으로 활용하여 코드를 대신 작성하도록 만들기도 합니다. 그는 이렇게 설명합니다. “CodeWhisperer에게 코드를 대신 작성하게 하려면, 제가 원하는 것을 설명하는 주석이 포함된 메서드 서명을 작성하고 자동 완성되길 기다리기만 하면 됩니다.”

예를 들어 Carlos가 지정된 경로나 상위 경로에 대한 권한이 사용자에게 있는지 확인하고 싶을 때, CodeWhisperer는 Carlos의 메서드 서명과 주석을 기반으로 문제의 일부를 해결할 깔끔한 솔루션을 제공했습니다. 생성된 코드는 지정된 리소스의 상위 디렉터리를 확인한 다음, 존재할 수 있는 모든 상위 경로의 목록을 생성합니다. 그런 다음 Carlos는 각 경로에 대한 간단한 권한 검사를 수행하여 구현을 완료했습니다.

“CodeWhisperer는 알고리즘과 구현 세부 사항에 도움을 주며, 덕분에 더 오랫동안 비즈니스 요구 사항 같은 큰 그림을 생각하고 더 나은 솔루션을 만들 수 있습니다.” 그는 이렇게 덧붙입니다.

CodeWhisperer에서 메서드 서명과 주석을 기반으로 생성한 코드.

4. 다중 언어를 지원하는 협업 도구, CodeWhisperer
CodeWhisperer는 Python, Java, JavaScript, TypeScript, C#, Go, Rust, PHP, Ruby, Kotlin, C, C++, 쉘 스크립팅, SQL과 Scala를 포함한 15개 프로그래밍 언어의 코드 생성을 지원합니다.

CodeWhisperer는 여러 제품과도 협업이 가능합니다. CodeWhisperer는 Visual Studio(VS) Code와 IDE JetBrains 제품군(IntelliJ, PyCharm, GoLand, CLion, PhpStorm, RubyMine, Rider, WebStorm, DataGrip 포함)은 물론 AWS Cloud9, AWS Lambda 콘솔 및 Amazon SageMaker StudioJupyterLab에도 사용할 수 있습니다.

AWS는 고객이 책임감 있는 AI 이론을 실현할 있도록 고객의 요구를 충족하고, 편향을 식별 및 완화하고, 설명 가능성을 개선하고, 데이터를 안전하게 보호하는 새로운 서비스 제작에 투자하고 있습니다.

Amazon CodeWhisperer는 Individual Tier에서 무료로 사용할 수 있습니다. 자세한 내용은 CodeWhisperer 요금을 참조하십시오. 시작하려면 다음 단계를 따르십시오.

Danilo