Amazon Q Developer Extension

SongWoo Yu·2025년 3월 6일

오늘은 VS Code에서 Q Developer을 사용하기 위해 익스텐션을 설치하는 것으로 시작한다.

설치를 완료하면 sign in하라고 한다. 나는 Amazon Builder는 가입하지 않고 AWS만 가입했기에 새롭게 가입했다. 일단 개인은 Amazon Builder ID를 이용하면 무료로 사용할 수 있다고 한다.

  1. AI 코딩 어시스턴트
    Cursor, Copilot 등 코딩 어시스턴트는 2023년 10%의 사용율에 비해 2028년에는 75%가 사용할거라는 전망이 있다. 코딩 어시스턴트에 대한 우리의 시각도 바꿔야 한다. 대규모 언어모델을 기반으로 하기에 100% 완벽한 코딩을 하진 못하기에 협력 도구로서 활용해야 한다.

  2. Amazon Q Developer, Agent의 포지셔닝, 역할
    먼저 맥락과 복잡성이라는 측면에서 바라볼 수 있다. 그냥 프롬프트에 기재하는 우리의 설명과 질문에 답하는 'chat'은 그 맥락 이해와 복잡성이 낮을 수밖에 없다. @workspace맥락을 사용한 대화는 맥락 이해도는 높고 복잡성은 낮다. 이하는 맥락 이해도와 복잡성(복잡한 요구) 모두가 높아 사용에 주의를 갖고 질문해야 하는 Agent이다. /dev(코드 생성) /test(unit tests 생성) /review(코드 이슈 식별 및 수정) /doc(문서 생성) /transform(코드 변환)

    챗은 아키텍처에 관한 질문, 간단한 코드 생성, 함수나 메서드, 파일/클래스에 대한 설명 요구, 한 언어의 코드 샘플을 다른 언어로 변환하기, 오류에 대한 수정 제안, 코드 샘플 최적화 또는 리팩토링 방법 제안 요구, 한 번의 요청으로 수행시키기 작업을 할 때 적합하다.
    또한 in line chat은 IDE 내부에서 코드와 직접 대화한다. cmd+i로 실행하여 코드 최적화 및 코드 리팩토링, 주석 추가, 테스트 작성 등을 실행할 수 있고 이 채팅은 차이점(diff)을 반환한다고 한다(수락하거나 거절하면 됨). 그래서 코드 수정에서 더 쉽다고 볼 수 있음


    에이전트형 인공지능(Agentic AI)는 일정 수준의 자율성을 가지고 특정 목표를 달성하기 위해 스스로 행동할 수 있는 인공지능 시스템을 말한다. 단순히 프롬프트에 응답하거나 미리 정의된 작업을 수행하는 전통적인 AI 모델과는 달리, 에이전트 AI는 결정을 내리고, 행동을 계획하고 심지어 경험을 통해 학습함. 이 모든 것이 제작자가 설정한 목표를 추구하는 과정에서 이루어진다.
    피처를 개발하기 위해 코드를 생성하거나 코드를 변환하는 등의 복잡한 작업을 수행한다.

  3. Code의 이해
    기존 코드를 잘 해석하고 이해하는 것의 중요성에 기반하여 만들어진 Agent가 있다. 아무런 정보가 없는 상태에서 사용할 때, /doc를 입력하면 새로운 README.md를 만들어 달라고 할 수 있다. 이를 통해 꽤나 자세하게 코드베이스를 분석해서 새로운 리드미 파일을 생성하거나 업데이트 해준다. 그리고 전체를 파악할 때 @workspace를 입력하면 전체 코드를 분석해서 설명도 해주고, 새로운 기능을 구현할 때 무엇을 변경해야하는지 잘 알려준다.

  4. 시각화(다이어그램 생성)
    시각화는 복잡한 코드를 분석하고 이해(코드와 데이터의 흐름)하는데 큰 도움을 준다. @workspace와 함께 원하는 부분의 시퀀스 다이어그램이나 여러 다이어그램을 입력하고 plant UML로 만들어달라고 하면 생성해준다. (이전에 Plant UML을 익스텐션으로 설치해야 한다.) 이외에도 mermaid 형식도 지원한다.
    Draw.io를 이용하여 만든 다이어그램에서 xml 파일을 가져온 후, 파일에 저장하고 이를 통해 q developer로 아키텍쳐를 설명해달라고 요청하고 cloudformation 탬플릿을 생성해달라고 하면 yaml 파일을 생성해준다.

  5. Amazon Q Developer의 code 변환 Agent
    코드변환 agent는 자바의 버전 업그레이드, .net의 크로스플랫폼 전환, 메인 프레임 및 Vmware의 클라우드 변환 등을 지원해준다. 다음 UML은 지원하는 영역을 알려주는 내용이다.
    자바의 경우 버전을 업그레이드 하려면 모든 라이브러리와 프레임워크도 최신 버전으로 업데이트 해야 해서 골치가 아프다고 한다. 이 과정에서 의존성 체인이 길어지고 복잡해져 업데이트가 느려진다.

    command line에서 Q Developer 사용하기
    q ai를 입력하고 질문하면 된다.

채팅창에서 /transform 을 입력하고 변환을 시작하면 모듈을 감지하고 단위 테스트 실행 여부와 여러 옵션을 선택하면 분석 후 변환 옵션을 보여준다. 여기서 선택 후 변환하면 변경 사항을 보여준다.

모두 변한 이후에는 file - project structure에서 SDK를 변환한 버전으로 바꿔 저장하고 maven clean과 maven comile을 실행하여 최신 변경 사항을 반영하고 새로운 의존성을 가져올 수 있다.

이후 단위테스트를 위한 agent를 이용하여 /test 입력만으로 열려있는 파일에 대한 단위테스트를 진행한다.

  1. 보안취약점 스캔
    자동 리뷰를 설정해놓거나 /review를 이용하여 정적 애플리케이션 보안 테스킹, 시크릿 유출에 관한 탐지, 인프라스ㅌ트럭처 as 코드 스캐닝과 코드 품질 스케닝을 실행한다.

  2. 코드 생성
    /Dev를 입력하고 요청사항을 작성하면 리드미 파일을 만들어준다. 이를 기반으로 구현하며 문제가 있는 부분을 질문하며 생성하면 된다.

다음은 참고할 URL이다
https://github.com/cremich/awesome-q-developer
https://nathanpeck.github.io/q-developer-tips/
https://explore.skillbuilder.aws/learn/external-ecommerce;view=none;redirectURL=?ctldoc-catalog-0=l-_ko&trk=e63392a4-5c23-4206-ba88-e34c6c30d89c&sc_channel=el

0개의 댓글