---
id: SYS-SHARD-001
category: "10_Wiki/💡 Topics/AI"
confidence_score: 1.0
tags: [database, systems, scalability, sharding, partitioning, distributed-systems, big-data]
last_reinforced: 2026-04-26
---

# Sharding and Partitioning (샤딩 및 파티셔닝)

## 📌 한 줄 통찰 (The Karpathy Summary)
> "거대한 지식의 덩어리를 전략적인 기준(Key)에 따라 조각내어 분산하고, 병렬 처리를 통해 단일 서버의 한계를 넘어 무한한 확장의 길을 열어라" — 대규모 데이터를 효율적으로 관리하기 위해 데이터베이스를 수평적 혹은 수직적으로 분할하여 저장하고 처리하는 최적화 기법.

## 📖 구조화된 지식 (Synthesized Content)
- **추출된 패턴:** "Data Fragmentation and Distributed Load Balancing" — 하나의 거대한 테이블을 여러 서버(Sharding)나 동일 서버 내 여러 논리적 단위(Partitioning)로 쪼개어, 전체 데이터를 조회하지 않고 필요한 조각에만 접근하여 응답 속도를 비약적으로 높이는 패턴.
- **핵심 구분:**
    - **Vertical Partitioning:** 테이블의 컬럼을 기준으로 쪼개기. 자주 쓰이는 데이터와 아닌 데이터를 분리.
    - **Horizontal Partitioning (Sharding):** 행(Row)을 기준으로 쪼개어 서로 다른 서버에 분산 저장.
    - **Sharding Key:** 데이터를 나누는 기준값. 데이터가 특정 서버에 쏠리지 않도록 고르게 분산시키는 것이 핵심.
- **의의:** 서비스가 폭발적으로 성장해도 인프라를 증설하여 대응할 수 있는 '수평적 확장성(Horizontal Scalability)'의 기술적 근간.

## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
- **과거 데이터와의 충돌:** 샤딩은 데이터 정합성 유지와 조인(Join) 연산이 극도로 어렵다는 단점이 있었으나, 최근에는 '분산 SQL DB(CockroachDB, Spanner 등)'의 등장으로 애플리케이션 수준의 복잡도 없이 자동화된 샤딩과 정합성을 동시에 보장하는 방향으로 발전함.
- **정책 변화:** Antigravity 프로젝트는 에이전트의 대규모 지식 노드와 벡터 임베딩 데이터를 저장할 때, 검색 빈도와 문서 카테고리를 고려한 동적 샤딩 전략을 통해 글로벌 검색 지연 시간을 최소화함.

## 🔗 지식 연결 (Graph)
- [[Scalability-in-AI-Systems]], [[Schema-Design-for-NoSQL]], [[Relational-Databases]], [[High-Availability-Systems]]
- **Raw Source:** 10_Wiki/Topics/AI/Sharding-and-Partitioning.md
