**데이터 파티셔닝(data partitioning, sharding)**은 데이터를 여러 서버/데이터베이스에 분할하여 각각이 subset을 보유하게 합니다 — 단일 서버를 넘어 데이터와 부하의 수평 확장을 가능하게 합니다. 어떻게 분할할지(partition key와 전략) 선택하는 것이 결정적입니다.
파티셔닝/sharding이란
파티셔닝 / SHARDING → 데이터를 조각(partition/shard)으로 나눠 여러
서버에 분산, 각각 SUBSET 보유:
→ 어떤 단일 서버도 모든 데이터를 보유(하거나 압도되)지 않음
→ 저장소와 부하를 수평으로 확장 (각 shard가 자기 몫을 처리)
→ 한 머신 용량을 넘는 데이터/throughput 처리 가능
파티셔닝 전략
HASH 기반 → partition key를 해시 → shard에 할당:
✓ 고른 분산 (핫스팟 회피) ✗ 범위 쿼리 어려움; 리샤딩이 까다로움
RANGE 기반 → 값 범위로 분할 (예: A-M, N-Z; 날짜 범위):
✓ 효율적 범위 쿼리 ✗ 핫스팟 위험 (데이터/접근이 치우치면 고르지 않은 부하)
DIRECTORY/조회 → 조회 테이블이 key를 shard에 매핑 (유연하나 조회가 오버헤드)
GEOGRAPHIC → 리전별 분할 (데이터 지역성)
