About Sharding and MSA
· 13 min read
🧭 서문
많은 팀과 조직이 데이터베이스의 성능 병목이나 대용량 처리 이슈에 직면했을 때, 가장 먼저 떠올리는 해결책 중 하나가 바로 **샤딩(Sharding)**입니다.
샤딩은 분명히 강력한 수평 확장 전략이지만, 그만큼 도입과 운영에 따르는 복잡도와 위험성도 큽니다.
특히, 샤딩은 단순한 기술적 기능이 아니라 전체 시스템 아키텍처에 영향을 주는 구조적 결정이기 때문에, 도입을 서두르기보다는 샤딩 없이 해결할 수 있는 방안들을 먼저 고려하고, 샤딩이 필요한 시점과 범위를 명확히 판단한 후에 적용하는 것이 바람직합니다.
이 글에서는 샤딩 도입 전 고려할 수 있는 단계, 샤딩의 적용 원칙, MSA 및 vertical slicing과의 관계, 그리고 궁극적으로 나노 서비스 아키텍처와 BFF 구조로의 확장까지 폭넓게 다뤄봅니다.