광고 자리 모집 중 · 제휴 문의

IDE에서 Amazon Q Developer 활용하기: 실시간 코드 생성, 보안 취약점 자동 스캔 및 레거시 코드 변환 가이드

365Finds Editorial
Wiki 문서 11,430편 수록

내 AI에서 365 Wiki 사용하기

아래 프롬프트를 복사해 평소 사용하는 AI에 붙여넣고 바로 질문하세요.

전체 Skill 다운로드

먼저 프롬프트로 체험해 보세요. 365 Wiki를 자주 쓴다면 전체 365Wiki Skill을 설치해 매번 붙여넣는 수고를 줄일 수 있습니다. 평소 쓰는 AI가 없다면 Gemini나 Microsoft Copilot 웹 버전도 사용할 수 있습니다.

현대 소프트웨어 개발 조직은 보일러플레이트 코드 작성에 드는 시간, 배포 직전에야 CI/CD 파이프라인에서 발견되는 보안 취약점, 구형 런타임에 묶여 유지보수가 어려워진 레거시 코드베이스라는 세 가지 핵심 병목 현상과 마주하고 있습니다. Amazon Bedrock 기반의 생성형 AI 보조 도구인 Amazon Q Developer는 Visual Studio Code, JetBrains IDE 제품군(IntelliJ IDEA, PyCharm 등), Visual Studio 2022와 같은 주요 통합 개발 환경(IDE)에 직접 통합되어 전체 소프트웨어 개발 수명 주기를 지원합니다.

공식 플러그인을 통해 제공되는 Amazon Q Developer의 세 가지 핵심 엔지니어링 역량은 다음과 같습니다.

  1. 실시간 인라인 코드 자동 완성 및 대화형 개발: 코드 컨텍스트와 자연어 주석을 기반으로 문법을 예측하고 함수 전체를 생성하며, /dev 명령어로 여러 파일에 걸친 기능 개발을 자율적으로 수행합니다.
  2. 보안 규칙 기반 취약점 정적 분석: Amazon CodeGuru 탐지기 라이브러리를 바탕으로 IDE의 'Problems' 창에서 SQL 인젝션, 하드코딩된 자격 증명, XSS 등을 감지하고 원클릭 수정 패치를 제공합니다.
  3. 레거시 코드 자동 변환(Code Transformation): 자율 에이전트가 Java 8 또는 11 프로젝트를 Java 17 또는 21로 자동 업그레이드하거나 .NET 애플리케이션을 현대화하며, 로컬 빌드 및 단위 테스트를 수행하여 호환성을 검증합니다.

본 가이드에서는 지원 IDE 환경 설정부터 실시간 코드 생성, 보안 진단 및 조치, 레거시 마이그레이션 실행 절차, 그리고 무료 티어와 Pro 티어의 거버넌스 차이까지 실무 관점에서 다룹니다.


1. 사전 준비 및 IDE 인증 설정

Amazon Q Developer는 주요 개발 도구 생태계를 폭넓게 지원합니다. 기능을 활용하기에 앞서 개발 환경의 최소 지원 버전과 인증 방식을 확인해야 합니다.

지원 IDE 환경 및 최소 요구 버전

IDE 환경최소 지원 버전플러그인 설치 경로
Visual Studio Code1.85.0 이상VS Code 마켓플레이스: "Amazon Q" 확장 설치
JetBrains IDEs (IntelliJ IDEA, PyCharm 등)2024.3 이상JetBrains 마켓플레이스: "Amazon Q" 플러그인 설치
Visual Studio (Windows 전용)Visual Studio 2022 v17.7 이상Visual Studio 마켓플레이스: "AWS Toolkit for Visual Studio 2022"
Eclipse2024-06 (4.32) 이상Eclipse 마켓플레이스: "Amazon Q" 플러그인 설치

인증 방식: 무료 티어(Free Tier)와 Pro 티어(Pro Tier) 비교

플러그인 설치 후 IDE 액티비티 바의 Amazon Q 아이콘을 클릭하여 인증을 진행합니다.

[!NOTE] 플러그인 수명 주기 안내: AWS는 기존 Amazon Q Developer IDE 플러그인의 기술 지원을 2027년 4월 30일에 종료할 예정임을 공지했습니다. 향후 진화하는 차세대 에이전트 코딩, Model Context Protocol(MCP), 대화형 워크플로를 위해 공식 로드맵을 주시하고 Kiro 등의 대안을 검토하는 것이 권장됩니다.


2. 실시간 코드 생성 및 컨텍스트 대화형 개발

Amazon Q Developer는 에디터 내 타이핑에 맞춰 반응하는 실시간 인라인 제안과 사이드바 및 인라인 채팅의 두 가지 방식으로 코드 생성을 제공합니다.

실시간 인라인 제안(Inline Suggestions)

코드 작성 중이거나 자연어로 주석을 입력하면, Amazon Q는 활성 파일, 커서 위치, 임포트된 라이브러리, 워크스페이스의 컨텍스트를 분석하여 회색 고스트 텍스트로 완성 코드를 즉시 표시합니다.

핵심 단축키 일람

동작macOS 단축키Windows / Linux 단축키
전체 제안 수락TabTab
다음 단어만 수락Cmd + 오른쪽 화살표Ctrl + 오른쪽 화살표
다음 후보 제안으로 이동오른쪽 화살표 (또는 Option + ])오른쪽 화살표 (또는 Alt + ])
이전 후보 제안으로 이동왼쪽 화살표 (또는 Option + [)왼쪽 화살표 (또는 Alt + [)
제안 거부 / 닫기Esc 또는 계속 타이핑Esc 또는 계속 타이핑
수동으로 제안 강제 호출Option + CAlt + C

실무 코드 생성 예시

Python에서 비동기 HTTP 유틸리티를 작성할 때 명확한 타입 힌트와 Docstring 주석을 정의하면, 지수 백오프 재시도 로직이 포함된 견고한 구현체가 자동으로 완성됩니다.

import aiohttp
import asyncio
from typing import Dict, Any, Optional

# 주석을 통해 Amazon Q Developer에 코드 생성을 요청:
async def fetch_json_with_retry(
    url: str, 
    headers: Optional[Dict[str, str]] = None, 
    max_retries: int = 3, 
    backoff_factor: float = 1.5
) -> Optional[Dict[str, Any]]:
    """
    Fetch JSON payload from a remote endpoint with exponential backoff retry.
    Handles client connection timeouts and non-200 HTTP responses.
    """
    # Tab 키를 눌러 Amazon Q가 생성한 코드 블록을 적용:
    timeout = aiohttp.ClientTimeout(total=10)
    for attempt in range(1, max_retries + 1):
        try:
            async with aiohttp.ClientSession(timeout=timeout) as session:
                async with session.get(url, headers=headers) as response:
                    if response.status == 200:
                        return await response.json()
                    elif response.status in (429, 500, 502, 503, 504):
                        await asyncio.sleep(backoff_factor ** attempt)
                    else:
                        response.raise_for_status()
        except (aiohttp.ClientError, asyncio.TimeoutError):
            if attempt == max_retries:
                raise
            await asyncio.sleep(backoff_factor ** attempt)
    return None

IDE 채팅 패널 및 인라인 에디터 채팅

더 넓은 아키텍처 맥락이나 다단계 리팩터링 작업에는 채팅 인터페이스를 활용합니다.

오픈소스 참조 추적 (Reference Tracker)

생성된 코드가 공개 오픈소스 학습 데이터와 유사할 경우, 내장된 Reference Tracker가 경고 알림을 표시합니다. 출처 저장소 URL과 라이선스 유형(MIT, Apache 2.0, GPL 등)이 명시되어 라이선스 침해를 사전에 방지합니다. Pro 티어에서는 관리자 설정을 통해 오픈소스와 일치하는 코드 제안을 전사적으로 차단할 수도 있습니다.


3. 자동화된 보안 취약점 스캔 및 원클릭 조치

기존 정적 애플리케이션 보안 테스팅(SAST)은 배포 파이프라인 후반부에 진행되어 수정 비용이 컸습니다. Amazon Q Developer는 코딩이 이루어지는 IDE 내부에서 보안 결함을 조기에 발견합니다.

진단 범위 및 탐지 엔진

보안 스캔 엔진은 생성형 AI 추론과 Amazon CodeGuru 탐지기 라이브러리 기반의 규칙 추론을 결합하여 다음 위험을 감지합니다.

보안 스캔 실행 절차

개발자는 두 가지 방식으로 스캔을 수행할 수 있습니다.

  1. 상시 자동 스캔(Auto-Scan): IDE 플러그인 설정에서 활성화하면 파일 저장 시 백그라운드에서 실시간으로 변경 사항을 진단합니다.
  2. 온디맨드 프로젝트 / 파일 스캔:
    • VS Code 또는 JetBrains에서 검사할 프로젝트를 엽니다.
    • 상태 표시줄의 Amazon Q 아이콘을 클릭하거나 채팅 창을 엽니다.
    • Run Security Scan을 선택합니다(또는 채팅창에 이 프로젝트의 보안 스캔을 실행해줘 입력).
    • 프로젝트 파일(최대 100MB, 테스트 코드 및 서드파티 바이너리는 자동 제외)이 패키징되어 분석이 시작됩니다.

취약점 검토 및 패치 적용

진단 결과는 IDE 표준 'Problems' 탭에 표시되며, CVSS 기준 심각도(Critical, High, Medium, Low, Info)가 부여됩니다.

[Problems - 프로젝트]
└── src/api/user_controller.py
    └── [High] 42행: CWE-89 - 쿼리 생성 시 문자열 연결로 인한 SQL 인젝션 취약점 감지

해당 항목을 클릭하면 Amazon Q 패널에서 상세 진단 결과를 확인할 수 있습니다.

  1. 근본 원인 분석: 검증되지 않은 외부 입력이 데이터베이스 실행부까지 전달되는 경로를 설명합니다.
  2. CWE 공식 분류: MITRE CWE 고유 식별 번호를 제공합니다.
  3. 추천 수정 코드(Suggested Remediation): 문자열 연결을 매개변수화된 쿼리 또는 ORM 매핑으로 전환하는 Diff를 제시합니다.
  4. 원클릭 적용: Apply Fix 또는 Insert at cursor를 누르면 에디터의 소스 코드가 즉시 수정되며, 저장 후 재스캔하여 문제 해결을 검증할 수 있습니다.

4. 레거시 코드 변환: Java 버전 업그레이드 및 현대화 워크플로

Java 8 또는 11 기반의 대형 시스템을 Java 17 또는 21로 전환하는 작업은 막대한 시간과 의존성 충돌을 수반합니다. **Amazon Q Developer 코드 변환 에이전트(Agent for Code Transformation)**는 라이브러리 충돌 해결, 폐기된 API 교체, 로컬 테스트 검증을 자동으로 수행합니다.

지원 마이그레이션 경로 및 빌드 도구

시작 소스 버전지원 대상 목표 버전빌드 도구
Java 8Java 17, Java 21Apache Maven (v3.8 이상)
Java 11Java 17, Java 21Apache Maven (v3.8 이상)
Java 17Java 17(의존성 최신화), Java 21Apache Maven (v3.8 이상)
Java 21Java 21(라이브러리 유지보수)Apache Maven (v3.8 이상)
.NET Framework (Windows).NET 8 (크로스 플랫폼 Linux 전환)MSBuild / Visual Studio

Java 코드 변환 사전 요구사항

작업을 시작하기 전 로컬 환경이 다음 조건을 충족해야 합니다.

단계별 코드 변환 프로세스

코드 변환은 안전한 사전 검증과 리팩터링 피드백 루프로 구성됩니다.

flowchart TD
    A["1. 작업 시작 (/transform)"] --> B["2. 로컬 Maven 사전 빌드 검증"]
    B --> C["3. 격리된 보안 환경으로 암호화 전송"]
    C --> D["4. AI의 AST 분석 및 구문·의존성 자동 변환"]
    D --> E["5. 목표 JDK 컴파일 및 기존 단위 테스트 검증"]
    E --> F["6. .aws/transform 폴더로 패치 다운로드"]
    F --> G["7. IDE 화면에서 Diff 검토 및 수락"]

1단계: IDE에서 변환 시작

VS Code 또는 IntelliJ IDEA의 Amazon Q 대화창에 다음 명령어를 입력합니다.

/transform

또는 메뉴에서 Amazon Q: Code Transformation 창을 엽니다. 변환할 모듈을 선택하고 목표 JDK(Java 17 또는 Java 21)를 지정합니다.

2단계: 로컬 사전 빌드 검증

Amazon Q는 로컬 Maven을 호출하여 프로젝트 구조를 검증하고 추상 구문 트리(AST)를 추출합니다. 기존 소스코드에 컴파일 에러가 있을 경우 작업을 즉시 중단하여 불필요한 클라우드 리소스 낭비를 막습니다.

3단계: 안전한 전송 및 자동 리팩터링

검증이 완료되면 소스코드는 암호화되어 전용 격리 환경으로 전송되며, 에이전트가 다음 작업을 수행합니다.

4단계: 목표 버전 컴파일 및 단위 테스트 회귀 검증

에이전트는 목표 JDK 환경에서 컴파일을 수행하고 기존 단위 테스트를 실행합니다. 메서드 시그니처 변경 등으로 컴파일 오류가 발생하면, 에이전트가 자율 교정 루프를 수행하여 테스트가 통과할 때까지 코드를 조정합니다.

5단계: IDE에서 Diff 검토 및 머지

변환이 완료되면 요약 보고서와 패치 파일이 프로젝트 루트의 .aws/transform 폴더로 다운로드됩니다.


5. 아키텍처 및 라이선스 비교: 무료 티어 vs. Pro 티어

엔지니어링 팀 도입 시 고려해야 할 라이선스 정책과 사용 한도는 다음과 같습니다.

평가 항목무료 티어 (AWS Builder ID)Pro 티어 (사용자당 월 $19)
인증 방식개인 AWS Builder ID (AWS 계정 불필요)AWS IAM Identity Center (기업 SSO: Okta, Azure AD)
인라인 코드 완성포함 (무제한)포함 (무제한)
IDE 기술 대화포함 (무제한)포함 (무제한)
보안 취약점 스캔포함 (표준 프로젝트 스캔)포함 (엔터프라이즈 맞춤형 규칙 및 자동 스캔)
에이전트 기능 작업 (/dev)사용자당 월 50회 요청사용자당 월 400회 요청 (조직 계정 단위 풀링 공유)
코드 변환 (/transform)월 1,000줄 (체험용 한도)사용자당 월 4,000줄 (조직 계정 단위 풀링 공유)
코드 변환 초과 과금추가 불가 (한도 도달 시 중단)4,000줄 초과 시 줄당 $0.003 종량제 과금
데이터 프라이버시 정책서비스 개선에 활용 가능 (옵트아웃 지원)고객 데이터를 기반 모델 학습에 절대 사용하지 않음
지적 재산권(IP) 면책미포함포함 (생성된 코드에 대한 완벽한 IP 면책 보장)
중앙 집중식 관리미지원 (개별 설정)AWS 관리 콘솔, 사용 현황 대시보드 및 라이선스 필터링

6. 성공적인 실무 도입을 위한 베스트 프랙티스

Amazon Q Developer를 도입하여 기술 부채를 방지하고 생산성을 극대화하기 위한 실무 권장 지침은 다음과 같습니다.


참고 자료