패스잇
시스템 설계 · 심화

TB 단위 이상의 데이터와 초당 수만 건의 쓰기 요청이 발생하는 관계형 데이터베이스 환경에서, 수직/수평 샤딩(Sharding) 전략을 설계하고 구현할 때 고려해야 할 핵심 요소들을 설명해 주세요. 특히, 샤드 키 선정 기준, 데이터 재분배(Rebalancing) 전략, 그리고 조인(Join) 및 트랜잭션 처리의 복잡성 해결 방안에 대해 심층적으로 다뤄주세요.

힌트 · 샤드 키의 균등 분배, 핫스팟 방지, 그리고 샤드 추가/제거 시 데이터 이동 전략 및 분산 트랜잭션 처리를 위한 2PC나 Saga 패턴을 고려해야 합니다.

샤드 키데이터 재분배분산 트랜잭션쿼리 라우팅데이터 정합성

모범답안

TB급 데이터와 초당 수만 건의 쓰기 요청을 처리하는 관계형 데이터베이스 샤딩 전략 설계는 확장성 확보에 매우 중요합니다.

샤드 키 선정 시 가장 중요한 건 데이터 균등 분배입니다. 핫스팟을 방지하기 위해 데이터 분포를 고려해야 합니다. 예를 들어, 사용자 ID를 샤드 키로 사용한다면 특정 사용자에 데이터가 몰리지 않도록 해야 합니다.

데이터 재분배는 샤드 추가/제거 시 발생하는데, 이 때 데이터 이동량을 최소화하는 것이 중요합니다. Consistent Hashing 같은 기법을 활용하면 데이터 이동 범위를 줄일 수 있습니다.

조인 연산은 분산 환경에서 복잡도가 높아집니다. 가능한 샤드 내 조인을 유도하고, 불가피한 경우 데이터 복제나 분산 쿼리 엔진을 활용해야 합니다. 트랜잭션 처리 역시 2PC나 Saga 패턴 같은 분산 트랜잭션 관리 기법을 고려해야 데이터 정합성을 유지할 수 있습니다.

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

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

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

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