패스잇
시스템 설계 · 중급

데이터베이스 샤딩(Sharding)이란 무엇이며, 어떤 문제를 해결하나요?

힌트 · 수평 분할 vs 수직 분할, 샤딩 키 선택, Hotspot 문제, 재샤딩 비용을 설명해보세요.

수평 분할데이터 분산성능 향상확장성단일 장애점

모범답안

데이터베이스 샤딩은 대규모 데이터베이스의 성능과 확장성을 향상시키기 위한 기술입니다. 쉽게 말해, 하나의 큰 데이터베이스를 여러 개의 작은 데이터베이스(샤드)로 수평 분할하여 데이터를 분산 저장하는 방식입니다.

샤딩은 주로 데이터베이스가 너무 커져서 쿼리 성능이 저하되거나, 단일 데이터베이스 서버의 용량을 초과하는 경우에 사용됩니다. 데이터를 여러 샤드에 분산함으로써 각 샤드의 데이터 양을 줄이고, 쿼리 처리량을 늘려 전체적인 성능을 향상시킬 수 있습니다. 또한, 특정 샤드에 장애가 발생하더라도 전체 시스템에 미치는 영향을 최소화하여 가용성을 높일 수 있습니다.

샤딩 키를 잘못 선택하면 특정 샤드에 데이터가 몰리는 Hotspot 문제가 발생할 수 있고, 샤드 수를 변경하는 재샤딩 작업은 비용이 많이 들 수 있다는 단점도 있습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 시스템 설계 면접 질문

← 시스템 설계 면접 질문 전체 보기