추천
모든 규모에서 Git을 확장하는 방법: Cursor의 새로운 Git 저장 시스템 Continuity
·2026.08.27 09:15
핵심 내용
Cursor는 대규모 Git 호스팅의 병목인 packfile 의존성을 해결하기 위해 새로운 저장 시스템 Continuity를 도입했다.
자세히 보기
대규모 Git 리포지토리 호스팅은 확장성과 안정성 측면에서 상당한 과제를 안고 있습니다. Git은 본래 분산형 워크플로우를 위해 설계되었으나, 현대의 중앙 집중식 호스팅 환경에서는 오히려 제약 요인으로 작용합니다.
packfile의 한계
Git 리포지토리의 데이터는 압축된 packfile에 저장됩니다. 이 바이너리 파일은 로컬에서는 편리하지만, 서버에서 대규모로 관리하기에는 적합하지 않습니다. packfile은 파일 시스템에 존재해야 하므로, 여러 머신에 분산하여 병렬 처리하거나 장애를 방지하는 것이 어렵습니다.
Continuity의 접근법
Cursor는 Git 클라이언트와의 호환성을 유지하면서 서버 내부 구조를 변경하는 방식으로 이 문제를 해결합니다. 네트워크를 통해 packfile을 주고받는 제약은 유지하되, 서버 내부에서는 packfile을 사용하지 않고 콘텐츠 주소 지정 방식의 데이터 저장소를 활용합니다.
Git 객체는 SHA-1 해시를 키로 사용하는 분산 키-값 저장소와 잘 맞습니다. 하지만 Git의 실제 구조는 방향 비순환 그래프(DAG)이므로, 단순한 키-값 조회만으로는 리포지토리 작업을 수행할 수 없습니다. DAG를 단계별로 순회해야 하므로, 네트워크 왕복 횟수를 최소화하는 최적화가 필요합니다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.