


DynamoDB Query 정리
“Query는 조건 검색이 아니라 키 기반 조회다”
목차
- Query란 무엇인가
- Query의 절대 규칙
- Partition Key와 Sort Key 역할
- Key Condition Expression
- Filter Expression (주의점)
- AWS CLI Query 예제 해설
- Query vs Scan 차이
- 실무에서 자주 틀리는 포인트
1. Query란 무엇인가
Amazon DynamoDB Query는
Partition Key를 기준으로 데이터를 빠르게 조회하는 DynamoDB의 기본 조회 방식이다.
- 전체 테이블 검색 ❌
- 특정 파티션 내부만 조회 ⭕
- 성능 보장
- 비용 예측 가능
👉 DynamoDB에서 “조회”라고 하면 기본적으로 Query를 의미한다.
2. Query의 절대 규칙⭐
❗ Query는 반드시 이것을 요구한다
- Partition Key = 단일 값
- (선택) Sort Key 조건
Partition Key → 반드시 equality(=)
Sort Key → 조건 가능
❌ Partition Key에 범위 조건 불가
❌ Partition Key 없이 Query 불가
3. Partition Key와 Sort Key 역할
예제 테이블: Music
Attribute역할
| Artist | Partition Key |
| SongTitle | Sort Key |
| Album | 일반 속성 |
| Year | 일반 속성 |
Partition Key
- 데이터가 저장되는 물리적 기준
- Query 범위를 결정
- 반드시 단일 값
예:
Artist = "Artist2"
Sort Key
- 같은 Partition Key 내부 정렬 기준
- 조건 검색 가능
예:
SongTitle = "SongB"
SongTitle begins_with "Song"
4. Key Condition Expression
Query에서 가장 중요한 부분이다.
기본 구조
PartitionKey = :value
AND SortKey 조건
사용 가능한 Sort Key 조건
- =
- <, <=, >, >=
- BETWEEN
- begins_with()
❌ Partition Key에는 BETWEEN, begins_with 사용 불가
5. Filter Expression
Filter Expression이란?
- Query 결과 이후 추가 필터링
- 서버에서 데이터 읽은 후 제거
읽기 → 필터링 → 반환
중요한 포인트
- ❌ 성능 최적화 아님
- ❌ RCUs 절감 안 됨
- ⭕ 결과 개수만 줄임
👉 Filter는 “후처리”일 뿐이다
6. AWS CLI Query 예제 해설
요구 조건
- Artist = Artist2
- SongTitle = SongB
- Year > 2018
CLI 명령어
aws dynamodb query \
--table-name Music \
--key-condition-expression "Artist = :a and SongTitle = :t" \
--filter-expression "Year > :yyyy" \
--expression-attribute-values '{
":a": {"S":"Artist2"},
":t": {"S":"SongB"},
":yyyy": {"N":"2018"}
}'
해석 순서
- Artist = Artist2 → 파티션 결정
- SongTitle = SongB → 정렬 키로 아이템 선택
- Year > 2018 → 결과에서 필터링
7. Query vs Scan 차이
| 구분 | Query | Scan |
| 기준 | Partition Key | 전체 테이블 |
| 성능 | 매우 빠름 | 느림 |
| 비용 | 예측 가능 | 비쌈 |
| 실무 사용 | ⭕ | ❌ |
👉 Scan은 운영 환경에서 쓰지 않는 것이 원칙
8. 실무에서 자주 틀리는 포인트
❌ 실수 1
“Filter로 Partition Key 대신 쓰면 되지 않나요?” 👉 안 됨.
Query는 Partition Key 필수
❌ 실수 2
“Filter 쓰면 비용 줄어들죠?” 👉 ❌
읽은 만큼 비용 발생
❌ 실수 3
“조건 검색이니까 RDB WHERE랑 비슷하죠?” 👉 ❌
DynamoDB는 조회 패턴 설계가 먼저
🔥핵심 요약🔥
- Query는 키 기반 조회
- Partition Key는 반드시 equality
- Sort Key만 조건 가능
- Filter는 성능 최적화 수단이 아님
- Query 패턴이 곧 테이블 설계다
👉 DynamoDB에서는
“어떻게 조회할 것인가”를 먼저 정해야 한다


'프로그래밍 > ⚙️DevOps' 카테고리의 다른 글
| AWS) Amazon Elastic File System(EFS) (1) | 2026.01.19 |
|---|---|
| AWS) AWS Cloud Adoption Framework (CAF) (0) | 2026.01.19 |
| AWS) DynamoDB Overview (0) | 2026.01.19 |
| AWS) VPC Security (0) | 2026.01.09 |
| AWS) VPC 개념 (0) | 2026.01.09 |