DynamoDB 설계 방법: Single Table Design
NoSQL 종류 중 하나인 DyanamoDB
는 일반적인 SQL 테이블과 다르게, query
를 할 때 조건을 설정할 수 있는 대상이 Partition Key
(이하 PK
)와 Sort Key
(이하 SK
) 그리고 추가적으로는 Global Secondary Index
(이하 GSI
)와 Local Secondary Index
(이하 LSI
)로 구분되는 Secondary Index로 한정된다. 다른 속성 필드에 대해서는 쿼리 조건을 설정할 수 없다. 만약 다른 속성에 대해 결과를 보려면 scan
을 사용해야 한다. scan
은 테이블의 모든 데이터를 조회하기 때문에 성능면에서 좋지 않은 모습을 보여준다. 이러한 특성이 있어서, DynamoDB 테이블은 일반적으로 SQL 테이블을 만들듯 만들면 안 된다. 이 글은 AWS에서 공식적으로 추천하고 있는 Single Table
구조로 설계하는 방법에 대해서 다루고 있다.