11.6.1 데이터 저장소
트윗 서비스는 데이터베이스와 객체 저장소를 조합하여 트윗 데이터를 저장합니다.
• 데이터베이스(아파치 카산드라, 아마존 DynamoDB 등): 트윗 ID(tweetId), 사용자 ID(userId), 트윗 내용(content), 타임스탬프(timestamp) 같은 내용을 하나의 데이터에 담아 관계형 데이터베이스에 저장할 수 있습니다. 데이터가 각 노드에 고르게 분산되도록 파티션 키는 트윗 ID로 설정하며, 시간 순서대로 트윗을 효율적으로 조회하려고 클러스터링 키로 타임스탬프를 사용합니다.
• 객체 저장소(아마존 S3 등): 트윗에 첨부된 이미지나 동영상 등 미디어 파일은 객체 저장소에 개별 파일로 저장합니다. 각 파일에는 고유한 식별자를 부여하고, 데이터베이스의 트윗 정보에는 해당 미디어 파일의 고유 식별자를 참조로 포함합니다.
트윗 서비스에 필요한 API와 데이터 저장 방식을 다루었으니, 이제 트윗 생성과 조회가 어떤 흐름으로 처리되는지 살펴보겠습니다.