Programming/DevOps, Tools

[tool] AWS CodeWhisperer 15분 사용기

kghworks 2023. 4. 17. 13:02

코드 속삭여주는 나의 코딩 동료

Github Copilot의 대항마를 AWS에서 내놓았다. 이름 하야

 

Amazon CodeWhisperer
(코드를 속삭이는 자?)

 

아마존에선 실시간 AI 코딩 동료라고한다.

 

출시를 알리는 AWS 블로그 (출처 : https://aws.amazon.com/ko/blogs/korea/amazon-codewhisperer-free-for-individual-use-is-now-generally-available/)

 

사용방법은 아주 간단한데, intellij의 경우

  1. Intellij에서 AWS Toolkit plugin을 다운로드
  2. AWS toolkit 창 CodeWhisperer를 최초 start
  3. AWS에 계정 등록 및 연동 (하라는 대로 따라가면 됨)

 

자세한 방법은 아래 링크에 들어가서 하라는 대로 각자 IDE에 이식하면 된다.

https://docs.aws.amazon.com/ko_kr/codewhisperer/latest/userguide/getting-started.html

 

Getting started - CodeWhisperer

Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.

docs.aws.amazon.com

 

지원하는 언어는 아래와 같으며 주요 언어와 IDE 가 지원 되니 대부분의 개발자들은 바로 사용 가능하다. (이클립스, C가 아직 안되는 상황, C같은 unmanaged 언어 유저들은 더 보수적으로 접근할거 같긴 하다)

지원 언어 (출처 : https://aws.amazon.com/ko/codewhisperer/)
AWS Toolkit 창 (Intellij)

 

 

로컬에서 15분 정도 간단하게 테스트를 해보았다. 밑에 첨부한 움짤들을 참고하면 감이 올 거다.

내 깃헙에도 올려두었다 https://github.com/gihyeon6394/toy-java/tree/main/src/codeWhisperer

 


15분 사용 소감

  • 잔버그가 많음. 켜도 동작하지 않을 때도 있음
  • 한글 지원이 완벽치는 않은듯? 영어로 코멘트 해주는게 훨씬 잘먹힘
  • java Docs 적용하려고 타이핑하려하면 한글로 엄청 깨진 뭔가를 추천함
  • 그래서 주석달 때는 한글로 작성할거면 끄는게 좋을 듯
  • 단축키가 없나요? 밑에 퀵뷰로 코드를 제안할 때 바로바로 적용해주는 단축키 필요해 보임
    • tab 하면 된다 ㅎㅎ
  • 사용자 데이터들 기반으로 머신러닝 해간다면 1년뒤가 기대됨
  • 일단 무료라 감사합니다

 

Copilot, chatGPT 등 업무 자동화에 도움이 될만한 혁신적인 도구들이 시장에 나오고 있다.

 

주변 동료들과 관련하여 짧게 대화를 나눠봤는데, 일단 거부감이 있어 보인다. (경쟁자를 견제하는건가!) 코드를 직접 작성하지 못하고, 의존하게 되어 나중에는 코딩을 할 줄 모른다나 어쩐다나... 구글링 하면 스택오버플로우에 의존하게 되니 구글링 하지 말라는 것처럼 들리는데.. 이미 나온 기술을 외면한다고 기술이 사라지랴. 내가 안 써야 된다고 마음먹은들 다른 개발자들이 너무 잘쓴다. 누군가는 십분 활용하여 생산성을 올리고, 누군가는 지피티에 의존하면 안 된다는 신념(?)아래 구글링만 하면서 코딩할 것이다. (지피티가 못믿겠거든 정규식 짜게 시켜보라. 2~3번 대화안에 정규식과 테스트코드가 나온다.)

 

암튼 개발자로서 많은 부분이 자동화되는 것 같아서 기쁜 마음이다. 패턴 찍어내기식 개발은 직접 타이핑하지 않는 시대가 도래하고 있는 것 같다. (getter/setter 생략하는 lombok이 얼마나 편하던가)

 

회사에선 안 쓰려고 하고, 당분간 개인 프로젝트에서 써보려고 한다. 2달 정도 써보고 다시 사용기를 포스팅하겠다.

 

그때까지 부디 유료로 돌리지 말아 주세요 AWS..

 

메인 메서드

main mthod 만들기

최초 변수 1개 코딩 후 추천받는 대로 코딩

예외 던지는 메서드 

기존에 생성한 메서드를 가져다 쓴다. (내 코드를 전체적으로 모니터링 하는 중인듯)

setter에서 파라미터 유효성 검증

로직 간단하게 코멘트 후 추천받는대로 코딩

User 클래스의 필드 추천 받아보기

String까지만 쳐봄
email도 추천한다

 

참고로 정보를 AWS로 넘기지 않는 설정도 가능하다. 민감한 코드이거나, 본인이 동의하지 않는다면 아래 창에서 설정 가능하다. (나의 경우 이런 건 그냥 넘겨준다. 비즈니스 코딩만 아니면 AWS에게 줘봤자 뭐....)