AWS 기술 블로그

HAQM Q Developer CLI를 통한 쉽고 빠른 에이전트 코딩 실습

이 글은 AWS DevOps & Developer Productivity 블로그의 “A lightning fast, new agentic coding experience within the HAQM Q Developer CLI by Brian Beach“의 한국어 번역입니다.

HAQM Q Developer는 Amazon Q Command line Interface(CLI) 내에서 향상된 CLI 에이전트를 발표했습니다. 이제, Q Developer는 CLI에 최신 에이전트 경험을 제공하여 사용자와 함께 작동하고 사용자의 피드백을 바탕으로 반복적으로 변경을 수행하는 더욱 역동적이고 상호작용적인 코딩 경험을 제공합니다. 또한, HAQM Q Developer는 CLI 환경을 통해서 로컬의 파일을 읽고 쓰는 것을 돕고, AWS 리소스를 참조하고, 코드를 작성하거나, 자동으로 문제를 디버깅할 수 있습니다.

소개

개발자에게 통합 개발 환경(IDE)과 통합 린터(linter), 자동 완성 기능은 워크플로를 간소화하는 데 많은 도움을 주고 있습니다. HAQM Q Developer 같은 AI 어시스턴트의 등장으로 기존의 개발 방식이 크게 바뀌었습니다. 채팅으로 Q Developer와 모범 사례를 논의하거나 복잡한 메서드를 몇 초 만에 리팩터링하도록 요청할 수 있습니다. 이제 개발자는 새로운 기능을 개발하고, 문서를 작성하고, 단위 테스트를 생성하고, 코드 검토를 자동화하기 위해 HAQM Q Developer 에이전트를 사용하여 보다 더 효율적으로 활용할 수 있습니다. 이러한 강력한 에이전트 기능은 개발자들의 일상적인 개발 작업에 접근하는 방식을 더욱 변화시켰습니다.

하지만, 개발자는 IDE에서 보내는 시간만큼이나 명령줄 인터페이스(CLI)도 많은 시간을 보내고 있습니다. 때로는 그보다 더 많은 시간을 CLI를 통해 작업할 수도 있습니다. HAQM Web Service(AWS) CLI, 깃(Git), 패키지 관리자, 린터(linter)와 같은 도구는 인프라를 관리하고, 반복적인 작업을 자동화하고, 팀과 협업하는 방식을 혁신적으로 변화시켰습니다. 도커(Docker)와 쿠버네티스(Kubernetes)와 같은 도구는 애플리케이션을 개발하고 배포하는 방식을 변화시켰습니다. IDE의 확장 탭을 보면 Maven, Docker, Vue용 확장 프로그램이 설치되어 있지만, 많은 개발자들은 CLI의 유연성과 강력함을 선호하기 때문에 거의 사용하지 않습니다.

HAQM Q Developer는 2024년도 부터 CLI에서 사용할 수 있게 되었고, 일부 개발자들에게 일상적인 개발 루틴에서 없어서는 안 될 부분이 되었습니다. Git 브랜치, HAQM S3 버킷 등을 나열할 수 있는 지능적인 명령어 완성 기능을 제공하는 어시스턴트는 이러한 작업을 수행하는 개발자들의 수많은 시간을 절약해 주었습니다. 채팅 기능을 사용하면 HAQM Q Developer와 자연스러운 언어로 대화하면서 특정 작업을 수행하는 방법을 배울 수 있고, 번역 기능은 평이한 언어로 된 프롬프트를 해당 셸 명령어로 매끄럽게 변환해 줍니다.

최근 HAQM Q Developer는 HAQM Q CLI 내에서 향상된 CLI 에이전트를 발표했습니다. HAQM Q Developer와 새로운 에이전트는 HAQM Bedrock을 기반으로 하고, 그 결과 CLI는 Claude 3.7 Sonnet의 단계별 추론 기능을 갖추게 되었습니다. 또한, 새로운 CLI 에이전트는 컴파일러, 패키지 관리자, AWS CLI 등 시스템에 설치된 도구를 활용할 수 있습니다. 마지막으로, 향상된 CLI는 에이전트와 역동적이고 상호 작용하는 대화를 가능하게 하는 멀티턴 대화를 지원합니다. 이로써 CLI를 선호하는 개발자들은 명령줄 환경에서 편안하게 작업하면서 더 많은 작업을 더 빨리 처리할 수 있습니다.

CLI 에이전트는 IDE의 기능과 작업 흐름에 제약을 받지 않고, 작업을 수행하는 데 필요한 기본 도구와 명령에 직접 액세스할 수 있게 해줍니다. 예를 들어 보겠습니다.

예시

CLI 에이전트의 기능을 어떻게 활용하는지 보여드리기 위해 예제를 하나 들어보겠습니다. 내부 개발자 커뮤니티 서밋에서 사용할 콘텐츠 요청을 관리할 수 있는 애플리케이션이 필요하다고 가정해 보겠습니다. 콘텐츠 요청 애플리케이션을 사용하면 커뮤니티 회원들이 서밋에 대한 주제를 제안할 수 있습니다. 이러한 상황에서 개발자는 HAQM Q Developer CLI를 사용하여 애플리케이션을 구축하려고 합니다.

CLI가 이미 설치되어 있으므로, q chat을 실행하여 상담원과 새로운 대화를 시작하겠습니다. 그런 다음 Q Developer에게 “scaffold a new application named call-for-content using React and Vite, and then commit it to Git.” 라고 요청하겠습니다. 다음 비디오에서 볼 수 있듯이 에이전트는 개발자의 의도를 이해하고, 애플리케이션을 구축하는 데 필요한 작업을 수행합니다. 과거에는 Q Developer CLI는 개발자가 수행해야할 지침만 제공했습니다. 이 새로운 향상된 버전에서는 CLI 에이전트가 개발자의 노트북에 설치된 도구를 사용하여 각 단계를 완료합니다. 아래의 예시에서는 각 단계별 확인(confirmation)을 비활성화했지만, Q Developer는 각 작업 전에 단계별로 확인을 요청할 수 있습니다.

이 영상에서 에이전트는 빠르게 작업하고 있습니다. 너무 빨라서 따라가기가 어렵습니다. 그래서 다음 그림에서 단계별로 설명해 보겠습니다. 에이전트는 npm create를 호출하여 새 앱을 만든 다음, npm install을 실행하여 모든 종속성을 추가합니다. 그런 다음 일련의 git 명령을 실행하여 새 저장소를 만들고, 생성된 파일을 추가하고, 커밋 메시지를 포함한 변경 사항을 커밋합니다.

에이전트가 단순히 파일을 생성하는 것이 아닙니다. 주어진 명령을 통해 개발자의 의도에 맞는 서로간 종속된 파일을 유연하게 생성합니다. 또한, 에이전트는 개발자가 직접 실행했을 것과 동일한 명령어를 실행합니다. 개선된 HAQM Q Developer CLI는 시스템에 설치된 다른 명령줄 도구를 포함한 도구를 사용하여 작업을 완료할 수 있습니다. Q Developer가 모든 작업을 완료하면, 완료된 작업의 요약과 함께 다음에 실행할 단계를 제안합니다. 다음 이미지에서 볼 수 있듯이, Q Developer는 변경 사항을 미리 보기 위해 개발 서버를 실행할 것을 제안합니다. 이것은 훌륭한 제안이므로, Q Developer에게 서버를 시작하고 모든 것이 제대로 작동하는지 확인하도록 요청합니다.

애플리케이션이 실행되면, 콘텐츠 요청 애플리케이션을 구축할 준비가 된 것입니다. CLI 에이전트는 멀티턴 대화를 지원하기 때문에 중단된 지점부터 이어서 진행할 수 있습니다. 개발자가 CLI 명령줄에서 요구 사항을 설명하기만 하면 에이전트가 코드를 생성하기 시작합니다. 이것이 HAQM Q Developer가 가장 잘하는 일입니다. 이 예제에서는 App.jsxApp.css 파일을 수정해야 합니다.

이전 예시에서 보았듯이 에이전트는 명령어를 실행하는 것 외에도 로컬 시스템에서 파일을 읽고 쓸 수 있습니다. 따라서 Q Developer가 코드를 생성하면 에이전트가 로컬 파일 시스템의 올바른 위치에 코드를 넣을 수 있습니다. 이 작업이 완료되면 에이전트는 npm run dev를 사용하여 개발 서버를 시작합니다. 지난번에 서버를 시작하라고 요청했었기 때문에, 에이전트는 개발자가 진행 상황을 확인하고 싶을 것이라고 정확하게 추측합니다. 지난번과 마찬가지로 에이전트는 변경 사항에 대한 또 다른 요약을 제공합니다. 이러한 정기적인 요약을 통해 개발자는 보다 상세하게 Q Developer가 생성하는 단계들을 보다 면밀하게 관찰 할 수 있습니다.

만약, 제목의 색상이 마음에 들지 않는 경우 Q Developer에게 업데이트를 요청할 수도 있지만, 본 예시의 경우는 직접 파일을 업데이트 하겠습니다. CLI를 사용하는 동안에도 파일을 직접 편집할 수 있으며 이는 개발자가 매우 유연하게 HAQM Q Developer와 상호작용을 할 수 있음을 의미합니다. 에이전트는 파일을 편집하기 전에 파일을 읽어보고 개발자가 수동으로 변경한 부분이 있는지 확인합니다.

생성된 애플리케이션은 괜찮아 보이나 현재 콘솔에서만 출력되고 있습니다. 에이전트에게 해당 데이터를 통해 무엇을 보여줘야 하는지 지시하지 않았습니다. 애플리케이션이 DynamoDB에 데이터를 입력하도록 만들고 싶습니다. 이미 만들어 놓은 DynamoDB 테이블이 있지만 기억하지 못할 수 있습니다. 다음 이미지는 에이전트에게 DynamoDB 테이블이 어디에 위치하는지 알아봐 달라고 요청하는 것을 보여줍니다. 에이전트가 어떻게 응답하는지 알아보겠습니다.

이전 이미지에서 볼 수 있듯이 에이전트는 개발자의 모호한 요청을 이해하고 무엇을 해야 할지 파악할 수 있습니다. 먼저 us-east-1을 살펴봅니다. 테이블을 찾지 못하면 us-west-2로 이동하여 다시 시도합니다. 테이블은 us-west-2에 있었지만, 그렇지 않다면 에이전트는 계속 검색을 시도했을 것입니다. Q Developer는 AWS 리소스를 나열하고 설명하는 방법을 알고 있습니다. 에이전트가 테이블를 찾으면 npm을 사용하여 DynamoDB SDK를 설치한 다음, 애플리케이션 파일을 업데이트합니다. 이미지에서는 단순하게 표기되지만 실제로 에이전트는 여러 파일을 수정 보완 하였음을 참고하시기 바랍니다.

몇 가지 간단한 프롬프트만으로도, 개발자는 향상된 CLI 에이전트를 사용하여 전체 개발 프로세스 동안 Q Developer와 협업할 수 있었습니다. 위의 애플리케이션에서 인증 등을 추가하기 위해 작업을 더 할 수도 있습니다. 그러나 이 게시글에서는 Q Developer CLI가 어떻게 작동하는지에 대해 잘 알아보기 위함이니 개발은 이쯤에서 마치도록 하겠습니다.

결론

HAQM Q Developer의 새로운 CLI 에이전트는 개발자가 소프트웨어 개발에 접근하는 방식을 완전히 바꿔 놓았습니다. 개발자가 선호하는 CLI 명령줄 환경에 고급 AI 어시스턴트의 기능을 직접 가져옴으로써, 이제 복잡한 작업을 그 어느 때보다 빠르게 수행할 수 있게 되었습니다. Q Developer의 자연어 이해와 문맥 인식 능력, 그리고 다양한 개발 도구를 추론하고 사용할 수 있는 CLI 에이전트의 능력이 결합되어 일상적인 작업 흐름에서 없어서는 안 될 부분이 되었습니다. 마지막으로, 멀티턴 대화에 대한 지원 덕분에 에이전트와 협업하고 함께 작업하여 더 많은 작업을 더 빨리 완료할 수 있습니다.

CLI를 사용하는 데 상당한 시간을 할애하는 개발자라면 HAQM Q Developer CLI 에이전트를 사용해 보시기를 강력히 추천합니다. HAQM Q Developer 사용자 안내서를 따라 CLI를 설치하고 새로운 에이전트 기능을 즉시 무료로 활용할 수 있습니다. HAQM Q Developer CLI를 통해 여러분의 기존 작업 방식을 변화시킬 수 있을 것이라고 확신합니다.

Sewoong Kim

Sewoong Kim

김세웅 Solutions Architect는 MFG SA팀의 일원으로서 컨테이너와 서버리스를 중심으로 AWS 기반 서비스를 구성하는 고객들에게 최적화된 아키텍처를 제공하고, GenAI Application Architect를 보다 고도화 하기 위한 여러 기술적인 도움을 드리고 있습니다.

East Kim

East Kim

김익수 솔루션즈 아키텍트는 인프라 마이그레이션에서 AI/ML까지 다양한 분야에서, 항공, 물류, 제조 고객들의 성공적인 AWS Cloud 여정을 위한 최적의 아키텍트를 구성하고 지원하는 역할을 수행하고 있습니다.