2026년 일 단위 Mac으로 대형 Git·Git LFS:
얕은 클론·partial과 1~3일 대역폭 일정
1~3일 대여에서도 mono-repo와 Git LFS가 먼저 벽이 됩니다. 위상·분할 pull·여유 공간이 지배합니다. 이 글은 버려질 네이티브 macOS 작업공간을 위해 통증·매트릭스·7단계·3지표를 정리하고 다운로드 안정, 파이프라인/대여 참고, SSH/VNC FAQ, CI 노드로 연결합니다.
01. 세 가지 통증: 풀 클론, LFS 스파이크, sparse 드리프트
1) 풀 클론이 첫날을 삼킵니다: 모노레포는 역사 바이너리와 에셋을 품고 RTT 120~220 ms에서 단순 git clone이 8~14시간대로 늘어날 수 있습니다. 깊이와 LFS 적산을 문서화하지 않으면 병렬 재시도가 429와 팩 조각을 키웁니다.
2) LFS 기본 동시성: 한 번에 git lfs pull하면 쓰기 버스트 후 수 MB/s로 붕괴하고 Spotlight·Xcode 인덱싱과 IO를 다툽니다. DerivedData를 분리하지 않으면 트리는 있어도 Archive가 smudge로 실패하는 가짜 완료에 빠집니다.
3) sparse와 CI 불일치: 픽스처 누락은 브랜치와 무관한 링크/테스트 불안정을 만듭니다. 규칙은 버전 관리하고 CI 클론 플래그와 맞춥니다. TLS 검사가 있으면 다운로드 안정성 가이드를 먼저 읽고 blob 결손을 서명 문제로 오인하지 마세요.
호스트 장애와 로컬 설정을 분리하려면 클론 로그에 상태 페이지 타임스탬프를 붙입니다. 서브모듈 얕은 조합은 부모보다 넓은 fetch를 암시할 수 있습니다. GUI 셸과 SSH에서 자격 증명 도우미가 달라지므로 프로필을 단일화하고 토큰 TTL을 클론+LFS+여유에 맞춥니다.
작은 LFS 객체가 많으면 inode를 먼저 고갈시킬 수 있어 df -h만으로는 부족합니다. 할당의 약 85%를 넘기면 pull을 멈추고 정리합니다. 짧은 대여는 단계마다 티켓에 구조화 메모를 남겨 비용 설명을 쉽게 합니다.
02. 매트릭스: 얕은 클론 vs blobless/partial vs sparse-checkout
1~3일 상자에서 최신만 빌드면 얕은 클론, 깊은 역사를 요청 시 blob이면 blobless/partial, 단일 앱 subtree면 sparse입니다. 상류를 두 번 막지 않도록 파이프라인·리전 관련 글과 함께 검토하세요(팀 내 표준 링크로 사용).
| 축 | 얕은 clone | blobless / partial | sparse-checkout |
|---|---|---|---|
| 역사 도달 | 깊이 밖 약함 | 중간, blob 지연 | 중간, 경로 절단 |
| 첫날 부하 | 낮음~중간 | 중간+추가 fetch | 얕음과 병행 시 낮음 |
| LFS 결합 | 얕음→LFS 정석 | 지연 fetch 주의 | LFS 면 축소 |
| 위험 | tag/서브모듈 | 구형 클라이언트 | 경로 누락 |
오래된 git-lfs는 smudge와 지연 blob 경쟁이 있을 수 있어 대형 워크스페이스 전에 업데이트합니다. 다중 리모트가 있으면 세션의 정본 URL을 고정합니다.
03. 일곱 단계
- 적산:
git rev-list --count,git lfs ls-files -s. - 위상:
--filter=blob:none+--depth, 필요 시 sparse. - 기준선: 처리량, 첫 체크아웃,
git count-objects -vH. - LFS: 경로별 pull,
GIT_LFS_CONCURRENT_TRANSFERS3~4부터. - DerivedData: 별도 폴더, Archive 여유.
- 분류: TLS, 429, smudge 각각 대응.
- 삭제: 저장소·캐시·자격 증명, PAT 폐기.
git clone --filter=blob:none --single-branch --branch main https://example.com/org/mono.git
export GIT_LFS_CONCURRENT_TRANSFERS=3
git lfs pull --include="ios/**"
04. 1~3일 대역폭 달력
| 길이 | 0일차 | 1일차 | 2일차/반납 |
|---|---|---|---|
| 1일 | blobless/얕음+최소 LFS, 밤 Archive 리허설 | — | — |
| 2일 | clone+주요 LFS, 빌드·단위 | 나머지 LFS, UI/통합 | — |
| 3일 | clone·적산·CI 정렬 | 전체 LFS·성능 | Archive·배포·삭제 |
장기 git bisect는 일수를 늘리거나 partial로. 대여를 유일 CI로 쓰지 말고 CI 노드 가이드와 맞춥니다.
05. 명령·동시성·백오프
partial에서 missing blob이 많으면 먼저 git fetch. 의존성은 SPM/CocoaPods 안정화 규칙을 따릅니다.
git lfs ls-files -s | sort -k2 -h | tail -n 20
git fetch origin
06. 지표와 오해
- 지표 1: 첫날 실패의 41~58%가 클론/LFS/디스크 오분류.
- 지표 2: LFS 동시성 8→3~4에서 재시도 시간 약 19~31% 단축 사례.
- 지표 3: Archive 전 18~35 GB 여유 권장.
오해 A: 얕음이 항상 최고 속도는 아님. B: sparse 전체 Spotlight. C: 전역 Git 설정에 PAT 방치.
07. 노트북만 vs 네이티브 Mac 대여 스프린트
대소문자·심볼릭 링크·Apple Silicon 혼재는 Xcode와 어긋납니다. 짧은 창은 네이티브 macOS에서 clone·LFS·Archive가 가장 안전합니다. 원격은 원격 접속 가이드, 호스티드 비교는 Xcode Cloud 매트릭스를 보세요.