Amazon CodeWhisperer 치트 시트
개요
Amazon CodeWhisperer는 실시간으로 지능적인 코드 제안을 제공하는 AWS의 AI 기반 코드 완성 서비스입니다. 코드와 주석을 분석하여 문맥에 맞는 관련 추천을 생성하며, 여러 프로그래밍 언어를 지원하고 인기 있는 IDE와 통합됩니다.
⚠️ 참고: CodeWhisperer는 Amazon Q Developer로 리브랜딩되었습니다. 이 치트 시트는 레거시 CodeWhisperer 인터페이스와 명령어를 다룹니다.
설치 및 설정
VS Code 확장 프로그램
# Install AWS Toolkit extension (includes CodeWhisperer)
code --install-extension AmazonWebServices.aws-toolkit-vscode
# Or install standalone CodeWhisperer extension
code --install-extension AmazonWebServices.codewhisperer-for-command-line-companion
JetBrains IDE
# Install AWS Toolkit plugin
# File > Settings > Plugins > Marketplace
# Search "AWS Toolkit" and install
명령줄 통합
# Install CodeWhisperer CLI
npm install -g @amzn/codewhisperer-cli
# Or using pip
pip install codewhisperer-cli
인증
AWS Builder ID (무료)
# Sign up for AWS Builder ID
# Free tier with usage limits
# No AWS account required
# Authentication in IDE:
# 1. Click "Start" in CodeWhisperer panel
# 2. Choose "Use for free with AWS Builder ID"
# 3. Complete browser authentication
AWS IAM 자격 증명
# Configure AWS credentials
aws configure
# Enter Access Key ID
# Enter Secret Access Key
# Enter Default region
# Enter Default output format
# Or use environment variables
export AWS_ACCESS_KEY_ID=your_access_key
export AWS_SECRET_ACCESS_KEY=your_secret_key
export AWS_DEFAULT_REGION=us-east-1
AWS SSO 통합
# Configure SSO profile
aws configure sso
# Enter SSO start URL
# Enter SSO region
# Complete browser authentication
# Use SSO profile
aws sso login --profile your-profile
핵심 기능
코드 완성
# Automatic suggestions while typing
# Press Tab to accept suggestion
# Press Esc to dismiss suggestion
# Use arrow keys to navigate multiple suggestions
# Trigger manual suggestions
# Ctrl+Space (VS Code)
# Alt+C (JetBrains)
주석-to-코드 생성
# Type descriptive comment
# Function to calculate compound interest
def calculate_compound_interest(principal, rate, time, compound_frequency):
# CodeWhisperer generates the implementation
amount = principal * (1 + rate/compound_frequency) ** (compound_frequency * time)
return amount - principal
다중 라인 코드 생성
// Generate entire functions from comments
// Create Express.js REST API endpoint for user management
app.post('/api/users', async (req, res) => {
try {
const { name, email, password } = req.body;
const hashedPassword = await bcrypt.hash(password, 10);
const user = new User({ name, email, password: hashedPassword });
await user.save();
res.status(201).json({ message: 'User created successfully', userId: user._id });
} catch (error) {
res.status(400).json({ error: error.message });
}
});
언어 지원
지원되는 언어
# Fully supported languages:
- Python
- Java
- JavaScript
- TypeScript
- C#
- Go
- Rust
- PHP
- Ruby
- Kotlin
- C++
- Shell scripting (Bash)
- SQL
- Scala
- R
- Swift
프레임워크 통합
# Popular frameworks supported:
- React/Next.js
- Angular
- Vue.js
- Spring Boot
- Django/Flask
- Express.js
- .NET Core
- Laravel
- Rails
IDE 통합
VS Code 명령어
# Command Palette commands:
"AWS: CodeWhisperer - Start"
"AWS: CodeWhisperer - Pause"
"AWS: CodeWhisperer - Resume"
"AWS: CodeWhisperer - Show Security Scan"
"AWS: CodeWhisperer - Open Settings"
# Keyboard shortcuts:
Alt+C # Trigger suggestion
Tab # Accept suggestion
Esc # Dismiss suggestion
Ctrl+Right # Accept word
JetBrains 명령어
# Tools menu:
Tools > AWS > CodeWhisperer > Start
Tools > AWS > CodeWhisperer > Pause
Tools > AWS > CodeWhisperer > Settings
# Context menu:
Right-click > AWS CodeWhisperer > Accept Suggestion
Right-click > AWS CodeWhisperer > Reject Suggestion
구성 설정
// VS Code settings.json
{
"aws.codeWhisperer.shareCodeWhispererContentWithAWS": false,
"aws.codeWhisperer.includeSuggestionsWithCodeReferences": true,
"aws.codeWhisperer.automaticTrigger": true,
"aws.codeWhisperer.maxSuggestions": 5
}
보안 스캔
취약점 탐지
# Automatic security scanning
# Detects common vulnerabilities:
# - SQL injection
# - Cross-site scripting (XSS)
# - Hardcoded credentials
# - Insecure cryptographic practices
# - Path traversal vulnerabilities
수동 보안 스캔
# VS Code:
# 1. Open Command Palette (Ctrl+Shift+P)
# 2. Type "CodeWhisperer Security Scan"
# 3. Select files to scan
# 4. Review results in Problems panel
# JetBrains:
# 1. Tools > AWS > CodeWhisperer > Security Scan
# 2. Select scope (file/project)
# 3. Review results in inspection panel
보안 스캔 결과
# High severity issues:
# - Critical security vulnerabilities
# - Immediate attention required
# - Detailed remediation steps provided
# Medium/Low severity:
# - Potential security concerns
# - Best practice recommendations
# - Code quality improvements
명령줄 사용
CLI 설치
# Install via npm
npm install -g @amzn/codewhisperer-cli
# Install via pip
pip install codewhisperer-cli
# Verify installation
codewhisperer --version
CLI 인증
Would you like me to continue with the remaining sections?```bash
Authenticate with AWS Builder ID
codewhisperer auth login
Use AWS credentials
codewhisperer auth login —profile your-aws-profile
Check authentication status
codewhisperer auth status
```bash
# Generate code from prompt
codewhisperer generate --prompt "Python function to sort dictionary by values"
# Generate with context file
codewhisperer generate --prompt "Add error handling" --context main.py
# Interactive mode
codewhisperer interactive
```## 모범 사례
```python
# Good: Specific and descriptive comments
# Function to validate email format using regex and return boolean
def validate_email(email):
# CodeWhisperer generates accurate implementation
# Bad: Vague comments
# Email function
def email_func():
# Less accurate suggestions
```### 효과적인 프롬프팅
```bash
# Always review generated code:
# 1. Check for logical correctness
# 2. Verify security implications
# 3. Ensure code style consistency
# 4. Test functionality thoroughly
# 5. Validate error handling
```### 코드 리뷰
```bash
# Review security scan results regularly
# Don't ignore vulnerability warnings
# Validate all input parameters
# Use secure coding practices
# Keep dependencies updated
```### 보안 고려사항
Would you like me to continue with the rest of the headings in this manner? Or do you have the specific text content you want translated?```bash
# Monthly limits:
# - Code suggestions: Unlimited
# - Security scans: 50 per month
# - Supported languages: All
# - IDE integrations: All
Professional Tier
# Features (when available):
# - Higher usage limits
# - Priority support
# - Advanced security features
# - Team management
# - Usage analytics
Troubleshooting
Common Issues
# CodeWhisperer not working:
# 1. Check internet connection
# 2. Verify authentication status
# 3. Restart IDE
# 4. Update AWS Toolkit extension
# No suggestions appearing:
# 1. Check if CodeWhisperer is enabled
# 2. Verify file type is supported
# 3. Check automatic trigger settings
# 4. Try manual trigger (Alt+C)
Performance Issues
# Slow suggestions:
# 1. Close unnecessary files
# 2. Reduce project size
# 3. Check network connectivity
# 4. Update to latest extension version
# High CPU usage:
# 1. Adjust suggestion frequency
# 2. Disable automatic triggers
# 3. Use manual triggers only
# 4. Configure suggestion limits
Debug Information
# VS Code debug info:
# 1. View > Output
# 2. Select "AWS Toolkit" from dropdown
# 3. Check for error messages
# JetBrains debug info:
# 1. Help > Show Log in Explorer
# 2. Look for AWS-related log files
# 3. Check for error patterns
Code Examples
Python Data Processing
# Function to process CSV file and calculate statistics
import pandas as pd
import numpy as np
def process_sales_data(file_path):
df = pd.read_csv(file_path)
# Calculate key metrics
total_sales = df['amount'].sum()
avg_sale = df['amount'].mean()
top_products = df.groupby('product')['amount'].sum().sort_values(ascending=False).head(5)
return {
'total_sales': total_sales,
'average_sale': avg_sale,
'top_products': top_products.to_dict()
}
JavaScript API Integration
// Function to fetch user data with error handling and retry logic
async function fetchUserData(userId, maxRetries = 3) {
for (let attempt = 1; attempt <= maxRetries; attempt++) {
try {
const response = await fetch(`/api/users/${userId}`);
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const userData = await response.json();
return userData;
} catch (error) {
console.error(`Attempt ${attempt} failed:`, error.message);
if (attempt === maxRetries) {
throw new Error(`Failed to fetch user data after ${maxRetries} attempts`);
}
// Wait before retry
await new Promise(resolve => setTimeout(resolve, 1000 * attempt));
}
}
}
Java Spring Boot Controller
// REST controller for product management with validation
@RestController
@RequestMapping("/api/products")
@Validated
public class ProductController {
@Autowired
private ProductService productService;
@PostMapping
public ResponseEntity<Product> createProduct(@Valid @RequestBody ProductDTO productDTO) {
try {
Product product = productService.createProduct(productDTO);
return ResponseEntity.status(HttpStatus.CREATED).body(product);
} catch (ValidationException e) {
return ResponseEntity.badRequest().build();
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
}
}
}
Migration to Amazon Q
Transition Guide
# CodeWhisperer is now Amazon Q Developer
# Migration steps:
# 1. Update to latest AWS Toolkit
# 2. Existing settings are preserved
# 3. Authentication remains the same
# 4. Enhanced features available in Amazon Q
New Features in Amazon Q
# Additional capabilities:
# - Chat interface for code questions
# - Application modernization
# - Code explanations
# - Unit test generation
# - Enhanced security scanning
Resources
Documentation
Community
- AWS Developer Forums
- GitHub Issues
- [Stack Overflow](https://stackoverflow.com/questions/tagged/amazon-codewhisperer##
트레이닝
- [AWS CodeWhisperer 워크샵](https://workshops.aws/- [시작 가이드](https://aws.amazon.com/codewhisperer/getting-started/- [모범 사례 문서](https://docs.aws.amazon.com/codewhisperer/latest/userguide/best-practices.html
Note: I noticed that some of the texts seem incomplete or cut off, so I translated the available text while preserving the markdown formatting and structure.