Amazon Web Services 한국 블로그

Amazon CodeWhisperer 미리 보기 출시 – 인공 지능 기반 프로그래밍 코드 생성 서비스

이 글을 쓸 준비를 하면서 제 경력 동안 사용했던 몇 가지 코딩 도구들에 대해 생각해 보았습니다. 제가 중학생 때 사용했던 BASIC 인터프리터의 본질적인 부분이었던 라인 기반 에디터, 대학에 들어갔을 무렵 사용했던 IBM 키 펀치, 다양한 종류의 EmacsVisual Studio를 포함해서 말이죠. 초창기 에디터는 상당히 실용적이었으며 CPU 성능이 충분해지면서 점차 정교해졌습니다. 처음에 이러한 정교함은 부분 입력된 변수 및 함수 이름의 동적 완성과 같은 어휘 지원의 형태로 나타났습니다. 이후 에디터는 소스 코드를 구문 분석하고 구문 및 데이터 유형(예: Visual StudioIntelliSense)을 기반으로 지원을 제공할 수 있게 되었습니다. 이러한 각 기능은 당시에 새로운 지평을 열었으며, 각 기능은 동일한 기본 목표를 가지고 있었습니다. 이 목표란 개발자가 더 나은 코드를 작성함과 동시에 일상적이고 반복적인 작업을 줄일 수 있도록 돕는 것이었습니다.

Amazon CodeWhisperer 발표
오늘은 Amazon CodeWhisperer에 대한 이야기를 하려고 합니다. 수십억 줄의 코드로 훈련되고 기계 학습에 의해 구동되는 CodeWhisperer도 목표는 같습니다. CodeWhisperer는 학생, 새내기 개발자, 경험이 풍부한 전문가 등 어떤 이용자에게나 생산성을 높이는 데 도움이 되어줄 것입니다.

CodeWhisperer는 여러 IDE 및 언어를 지원하는 평가판 양식으로 출시됩니다. 시작하려면 적절한AWS IDE 툴킷을 간단하게 설치하고 CodeWhisperer 기능을 활성화한 다음 평가판 액세스 코드를 입력한 후 다음을 입력하세요.

CodeWhisperer는 코드와 코멘트를 지속적으로 검토하고 구문론적으로 올바른 권장 사항을 제시합니다. 권장 사항은 코딩 스타일과 변수 이름을 기반으로 합성되며, 이는 단순한 토막이 아닙니다.

CodeWhisperer는 소스 코드의 커서 위치, 커서 앞에 오는 코드, 주석 및 동일한 프로젝트의 다른 파일에 있는 코드 등 여러 상황에 맞는 단서를 사용하여 권장 사항을 유도합니다. 권장 사항은 그대로 사용하거나, 필요에 따라 개선하거나 사용자 정의할 수 있습니다. 앞서 언급 드린 대로, CodeWhisperer는 오픈 소스 리포지토리, 내부 Amazon 리포지토리, API 설명서 및 포럼에서 가져온 수십억 줄 코드에 대해 교육 받았고, 지금도 계속하여 교육을 받고 있습니다.

CodeWhisperer 시작하기
PyCharm에 CodeWhisperer 평가판을 설치하고 그 속도를 확인했습니다. 다음은 이 기능으로 무엇을 할 수 있는지 보여주는 몇 가지 예시들입니다. 소수의 목록을 만들고 싶습니다. # See if a number is pr이라고 입력합니다. CodeWhisperer가 이 작업을 완료하도록 제안해서 탭(실제 키는 각 IDE마다 다름)을 눌러 권장 사항을 수락합니다.

다음 줄에서는 Alt+C(마찬가지로 IDE 한정)를 누르면 한 쌍의 함수 정의 중에서 선택할 수 있습니다. 첫 번째 것을 수락하자 CodeWhisperer가 함수 본문을 권장합니다. 이렇게 말이죠.

for 구문을 작성하면 CodeWhisperer가 루프의 전체 본문을 권장합니다.

또한 CodeWhisperer는 다양한 AWS 서비스에 액세스하는 코드를 작성하는 데 도움을 줄 수도 있습니다. # create S3 bucket을 시작하고, 나머지는 탭으로 완성합니다.

더 멋진 예시를 많이 보여드릴 수도 있지만, 평가판에 참여해 CodeWhisperer를 체험하시면 더 많은 것을 배울 수 있습니다.

미리보기 참여하기
Amazon CodeWhisperer 평가판은VS Code, IntelliJ IDEA,PyCharm,WebStormAWS Cloud9를 사용하여 Python, Java 및 JavaScript로 작성된 코드를 지원합니다. AWS Lambda 콘솔에 대한 지원이 진행 중이며 곧 준비될 예정입니다.

CodeWhisperer 평가판에 참여하시고 의견을 들려주세요!

Jeff