📋 개요
AgenticCP에서 AWS DynamoDB 리소스를 생성/조회/수정/삭제할 수 있도록 연동합니다.
상위 기획 이슈: #170
NoSQL 기반의 고성능/고확장성 데이터 저장소 옵션을 제공하는 것이 목적입니다.
🎯 목표
- DynamoDB 테이블의 생성/수정/삭제 기능 제공
- 테이블 메타데이터 및 상태 조회 기능 제공
- 글로벌 보조 인덱스(GSI) 등 주요 속성 관리
- 태그 기반 조회 및 관리 지원 (가능한 범위 내)
- CloudSession 기반 자격 증명/Region으로 요청 수행
🧩 기능 요구사항
-
테이블 관리
- CreateTable / UpdateTable / DeleteTable
- 프로비저닝/온디맨드 용량, 파티션 키/소트 키 설정
- Global Secondary Index / Local Secondary Index 관리(1단계에서는 필수 범위만)
-
조회 기능
- DescribeTable, ListTables
- 테이블 상태/용량/인덱스 정보 조회
- 태그 조회 (ListTagsForResource 등 지원 범위 확인)
-
운영/부가기능 (P1 이상 시)
- 백업/복원 (On-Demand Backup, Restore)
- 테이블 메트릭 조회는 CloudWatch 연동 시 별도 이슈로 분리 가능
🏗️ 아키텍처 / 패턴
상위 이슈 #170에서 정의한 공통 패턴을 그대로 사용합니다.
-
domain/cloud/adapter/outbound/aws/dynamodb/
AwsDynamoDbManagementAdapter – 테이블 생명주기 관리
AwsDynamoDbDiscoveryAdapter – 테이블 및 메타 조회
AwsDynamoDbMapper – 도메인 <-> AWS SDK 모델 매핑
AwsDynamoDbErrorTranslator (선택) – AWS 예외 -> 비즈니스 예외 변환
-
domain/cloud/port/outbound/dynamodb/
DynamoDbManagementPort
DynamoDbDiscoveryPort
-
domain/cloud/service/dynamodb/
DynamoDbPortRouter
DynamoDbUseCaseService
-
domain/cloud/controller/
DynamoDbController – REST API 엔드포인트 제공
-
공통 설정
config/AwsDynamoDbConfig
DynamoDbClient dynamoDbClient() – ThreadLocal/기본 크레덴셜 기반
DynamoDbClient createDynamoDbClient(CloudSessionCredential session, String region)
-
Capability 등록
AwsCapabilityConfig.initializeDynamoDbCapabilities()
ProviderType.AWS, Service: "DynamoDB", Resource: "Table"
🔧 기술 스택
- AWS SDK for Java v2
software.amazon.awssdk.services.dynamodb.DynamoDbClient
- 주요 API:
CreateTable, DescribeTable, UpdateTable, DeleteTable, ListTables
✅ 체크리스트
📋 개요
AgenticCP에서 AWS DynamoDB 리소스를 생성/조회/수정/삭제할 수 있도록 연동합니다.
상위 기획 이슈: #170
NoSQL 기반의 고성능/고확장성 데이터 저장소 옵션을 제공하는 것이 목적입니다.
🎯 목표
🧩 기능 요구사항
테이블 관리
조회 기능
운영/부가기능 (P1 이상 시)
🏗️ 아키텍처 / 패턴
상위 이슈 #170에서 정의한 공통 패턴을 그대로 사용합니다.
domain/cloud/adapter/outbound/aws/dynamodb/AwsDynamoDbManagementAdapter– 테이블 생명주기 관리AwsDynamoDbDiscoveryAdapter– 테이블 및 메타 조회AwsDynamoDbMapper– 도메인 <-> AWS SDK 모델 매핑AwsDynamoDbErrorTranslator(선택) – AWS 예외 -> 비즈니스 예외 변환domain/cloud/port/outbound/dynamodb/DynamoDbManagementPortDynamoDbDiscoveryPortdomain/cloud/service/dynamodb/DynamoDbPortRouterDynamoDbUseCaseServicedomain/cloud/controller/DynamoDbController– REST API 엔드포인트 제공공통 설정
config/AwsDynamoDbConfigDynamoDbClient dynamoDbClient()– ThreadLocal/기본 크레덴셜 기반DynamoDbClient createDynamoDbClient(CloudSessionCredential session, String region)Capability 등록
AwsCapabilityConfig.initializeDynamoDbCapabilities()ProviderType.AWS, Service:"DynamoDB", Resource:"Table"🔧 기술 스택
software.amazon.awssdk.services.dynamodb.DynamoDbClientCreateTable,DescribeTable,UpdateTable,DeleteTable,ListTables✅ 체크리스트
DynamoDbManagementPort/DynamoDbDiscoveryPort정의AwsDynamoDbManagementAdapter/AwsDynamoDbDiscoveryAdapter구현AwsDynamoDbConfig설정 및 세션 기반 Client 팩토리 구현AwsCapabilityConfig)DynamoDbUseCaseService/DynamoDbController기본 CRUD 플로우 구현