대용량 트래픽을 처리하는 개발자라면 고려해 볼 DB Sharding 에 대해 정리하고자 한다. 1. 개념- 데이터를 논리적으로 나누는 작업으로, 각 분할된 데이터는 독립적으로 관리됨 2. 장점- 성능 향상 > 읽기 및 쓰기 작업이 여러 샤드로 분산되어 병렬 처리 가능- 확장성 > 필요에 따라 샤드와 서버를 추가하여 수평적 확장 가능- 고가용성 > 특정 샤드에 장애가 발생해도 나머지 샤드가 동작 유지 가능 3. 단점- 운영 복잡성- 쿼리 복잡성 > 분산된 샤드에 걸친 데이터를 조회하기 위해 추가 로직(ex. 애플리케이션에서 집계 쿼리) 필요- 데이터 재분배 비용 > 샤드 키가 잘못 설계되었거나 데이터 불균형 시 샤드 간 데이터 재분배가 필요한데 이는 많은 자원과 시간 소모 4. 기타- 적절한 키 ..