🎯 목표
- 대용량 파일로 인한 GitHub 제한 해결
- Lens CLI를 통한 대체 Git LFS 관리
✅ 왜 대용량 파일 관리가 필요한가?
| 문제점 |
설명 |
| Git 저장소 용량 한계 |
GitHub는 기본적으로 파일당 100MB, 전체 1GB 저장소 제한이 있음 |
| 커밋 내역 무거움 |
바이너리/미디어 파일을 자주 커밋하면 기록이 빠르게 커짐 |
| 클론/푸시 속도 저하 |
저장소 크기가 커지면 협업 속도 저하 |
🔗 이를 해결하기 위해 Git LFS 또는 대체 도구 Lens를 사용
🔄 Git LFS의 한계
- GitHub에서 공식 지원하지만 무료 저장소는 용량/트래픽 제한이 있음
- 1GB 저장, 월 1GB 트래픽 → 초과 시 유료 플랜 필요
- 커스텀 파이프라인(CI/CD) 연동 어려움
💡 Lens란?
Lens는 대용량 파일을 Git 히스토리에 포함시키지 않고도 GitHub에서 관리 가능한 클라우드 기반 대용량 버전 관리 시스템입니다.
핵심 특징
| 항목 |
설명 |
| 히스토리 분리 |
Git에는 메타데이터만 기록, 실제 파일은 별도 저장 |
| GitHub Actions 통합 |
자동으로 대용량 파일을 관리 |
| 비용 효율적 |
자체 요금제 사용 |
| 확장성 우수 |
AI 모델, 이미지, 동영상 등 대규모 파일 관리에 적합 |
🛠 Lens 설치 및 설정
1️⃣ Lens CLI 설치
npm install -g @uselens/cli
또는
yarn global add @uselens/cli
2️⃣ 프로젝트 초기화
lens init
3️⃣ 추적할 파일 등록
lens track "*.mp4"
lens track "*.safetensors"
4️⃣ 커밋 및 푸시
git add .
git commit -m "Add large model files"
git push origin main
🔗 GitHub 연동 구조
[로컬 Git] → [GitHub 저장소] + [Lens 서버 연동] → [대용량 파일 Lens 클라우드 저장]
.lenskeep 파일에 대용량 추적 경로 정의
- GitHub Actions로 Lens 전송 자동화
📁 Lens vs Git LFS
| 항목 |
Git LFS |
Lens |
| 저장 방식 |
Git 히스토리에 LFS 포인터 기록 |
해시 기반 별도 클라우드 저장 |
| GitHub 연동 |
공식 지원 |
GitHub App 필요 |
| 무료 플랜 |
제한적 |
사용량 기반 확장 |
| 파일 크기 제한 |
100MB 제한 |
상대적으로 자유 |
| 활용 분야 |
이미지, 사운드 |
AI 모델, 3D 파일, .safetensors 등 |
🧠 실무 적용 팁
- 팀원들도
lens install 필요
- GitHub 저장소 설정에서 Lens 앱 등록 필수
lens push, lens pull 자동화 가능 (GitHub Actions)