패스잇
시스템 설계 · 기초

데이터베이스의 데이터가 너무 많아질 때 발생하는 성능 문제를 해결하기 위한 방법 중 하나인 '샤딩(Sharding)' 또는 '파티셔닝(Partitioning)'의 개념을 설명해주세요.

힌트 · 샤딩은 데이터베이스를 여러 개의 작은 조각으로 나누어 분산 저장함으로써 읽기/쓰기 성능을 향상시키고 단일 서버의 한계를 극복합니다.

데이터 분산성능 향상수평 분할파티션 키쿼리 라우팅

모범답안

샤딩 또는 파티셔닝은 데이터베이스 성능 문제를 해결하기 위한 방법으로, 데이터가 너무 많아져서 단일 데이터베이스 서버의 용량이나 처리 능력을 초과할 때 사용합니다.

쉽게 말해, 데이터를 여러 개의 작은 조각으로 나누어 여러 데이터베이스 서버에 분산 저장하는 방식입니다. 이렇게 하면 각 서버가 처리해야 할 데이터 양이 줄어들어 읽기/쓰기 성능이 향상됩니다.

예를 들어, 사용자 ID를 기준으로 데이터를 나누어 각 서버에 저장할 수 있습니다. 특정 사용자의 데이터를 조회할 때는 해당 사용자의 ID에 맞는 서버로 쿼리를 보내면 됩니다. 이를 통해 전체 데이터베이스를 검색하지 않고 필요한 데이터만 빠르게 가져올 수 있습니다.

샤딩은 데이터베이스의 수평적 확장(Horizontal Scaling)을 가능하게 하여, 단일 서버의 한계를 극복하고 시스템의 전체적인 성능과 안정성을 높이는 데 기여합니다.

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

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

함께 보는 대용량 트래픽 설계 면접 질문

← 대용량 트래픽 설계 면접 질문 전체 보기