Go(AWS SDK v2)에서의 DynamoDB DeleteItem
DeleteItem은 전체 기본 키로 단일 항목을 제거합니다. AWS SDK for Go v2에서는 dynamodb.DeleteItemInput과 함께 client.DeleteItem을 호출하며, types.ReturnValueAllOld를 사용하면 응답이 실제로 무언가 삭제되었는지 알려줍니다.
Code
package main
import (
"context"
"fmt"
"log"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/service/dynamodb"
"github.com/aws/aws-sdk-go-v2/service/dynamodb/types"
)
func main() {
ctx := context.TODO()
cfg, err := config.LoadDefaultConfig(ctx, config.WithRegion("us-east-1"))
if err != nil {
log.Fatalf("load config: %v", err)
}
client := dynamodb.NewFromConfig(cfg)
out, err := client.DeleteItem(ctx, &dynamodb.DeleteItemInput{
TableName: aws.String("Music"),
Key: map[string]types.AttributeValue{
"Artist": &types.AttributeValueMemberS{Value: "Arturo Sandoval"},
"SongTitle": &types.AttributeValueMemberS{Value: "Cubano Chant"},
},
ReturnValues: types.ReturnValueAllOld,
})
if err != nil {
log.Fatalf("delete item: %v", err)
}
if len(out.Attributes) == 0 {
fmt.Println("No item with that key existed")
} else {
fmt.Println("Deleted:", out.Attributes)
}
}Explanation
Key— 모든 기본 키 속성을 포함해야 합니다. 단순 키는 파티션 키만, 복합 키는 파티션 키 및 정렬 키를 포함해야 합니다.- Delete는 멱등적 — 존재하지 않는 키를 삭제해도 여전히 성공입니다(오류 없음).
ReturnValues: types.ReturnValueAllOld를 사용하면 삭제된 항목이out.Attributes로 반환됩니다. 빈 맵은 아무것도 없었다는 뜻입니다. DeleteItem의ReturnValues는NONE(기본값)과ALL_OLD만 지원 —ALL_NEW/UPDATED_*옵션은UpdateItem에 속합니다.- 조건부 삭제 —
ConditionExpression(예: 항목이 없을 때 실패시키는attribute_exists(Artist), 또는 값 가드)을 추가하세요. 실패한 조건은errors.As로 매칭되는*types.ConditionalCheckFailedException을 반환합니다. DeleteItem은 호출당 한 항목을 제거합니다. "전부 삭제" API는 없습니다 — 테이블을 비우려면Scan으로 키를 순회해 삭제를 배치하거나, 테이블을 삭제하고 다시 생성하세요.
Do it visually
조건으로 삭제를 가드하고 계신가요? DynamoDB Expression Builder는 ConditionExpression과 이름/값 맵을 대신 조립합니다.
GUI에서 항목을 삭제하려면 — 행 선택, 확인, 완료, 생성된 코드는 클릭 한 번 거리에 — DynoTable을 다운로드하세요.
Related examples
- DynamoDB DeleteItem in Java — AWS SDK for Java 2.x를 사용한 동일한 삭제.
- DynamoDB PutItem in Go — 동일한 키의 쓰기 쪽.
- DynamoDB condition expressions —
attribute_exists와 값 확인으로 삭제를 가드하기. - DynamoDB ConditionalCheckFailedException — 실패한 조건부 삭제가 발생시키는 것, 그리고 그것이 예상되는 경우.
References
- DeleteItem — Amazon DynamoDB API Reference
- Use DeleteItem with an AWS SDK or CLI — Amazon DynamoDB Developer Guide
- dynamodb package — AWS SDK for Go v2 (pkg.go.dev)
- dynamodb/types package — AWS SDK for Go v2 (pkg.go.dev)
- Condition expressions — Amazon DynamoDB Developer Guide
Last verified 2026-07-13 against the official AWS documentation linked above.