프로젝트 개요
별도 LFS 저장소 없이 대용량 에셋을 Git으로 관리하기 위해 만든 도구입니다. Codex를 활용해 Git 필터와 청크 저장·복원 코드, 프로젝트 설정 앱을 개발했습니다.
- 작업 기간 (Git 커밋 기록 기준): 2026.10.11 ~ 2026.10.16
- 개발 형태: AI 활용 개인 개발
- 기술: C#, .NET 9, Git clean/smudge 필터, WPF
- 실행 환경: Windows, macOS, Linux
- 형상 관리: Git, GitHub
주요 구현
- 50 MiB를 초과하는 파일을 최대 49 MiB 청크로 나누어 저장합니다.
- 커밋 시 원본을 포인터와 청크로 저장하고, 체크아웃 시 원본 파일을 복원합니다.
- 청크와 복원한 파일의 크기·SHA-256 해시를 검사합니다.
- 프로젝트 폴더를 선택해 GitChunk를 적용하고,
.chunkignore로 제외 파일을 지정합니다. - 기존 Git LFS 파일을 현재 작업 트리 기준으로 GitChunk 저장 방식으로 전환합니다.
- 설치 파일과 패키지 관리자용 배포 설정, 업데이트·제거 기능을 작성했습니다.
개발 포인트
GitIntegration이 Git의 clean/smudge 필터와 커밋·푸시 훅을 등록하고 파일 저장·복원 요청을 처리합니다.- 포인터에 원본 크기, 해시와 청크 목록을 기록하고, 복원 시 각 청크와 최종 파일을 대조합니다.
ChunkIgnore가 제외 규칙을 읽고,LfsMigration이 기존 LFS 파일의 전환을 담당합니다.- Windows 설정 화면은 WPF로 작성하고, macOS와 Linux의 실행 화면은 각각 Swift와 Python으로 구성했습니다.
사용자는 원본 파일을 편집하며, Git 작업 시 필터가 청크 저장과 원본 복원을 실행합니다. 청크를 나누어도 저장소 총용량이 줄어들지는 않으며, 패리티를 이용한 손상 청크 복구는 구현하지 않았습니다.