데이터 전처리: 도구 및 방법 – Git LFS
ㅁ 도구 및 방법
ㅇ 정의:
Git LFS(Git Large File Storage)는 Git 저장소에서 대용량 파일(이미지, 동영상, 바이너리 등)을 효율적으로 버전 관리하기 위해 파일 자체 대신 포인터를 저장하고, 실제 파일은 별도의 LFS 서버에 저장하는 확장 기능.
ㅇ 특징:
– Git 저장소의 용량 증가를 방지하고, 대용량 파일의 변경 이력 관리 가능
– 파일은 포인터 형태로 Git에 저장되며, 실제 파일은 원격 LFS 서버에 저장
– clone, pull 시 필요한 시점에만 실제 파일 다운로드
– GitHub, GitLab 등 주요 Git 호스팅 서비스에서 지원
ㅇ 적합한 경우:
– 머신러닝 모델 가중치, 이미지 데이터셋, 동영상 등 대용량 파일을 포함한 프로젝트
– 저장소 크기를 최소화하고 네트워크 전송 효율을 높여야 하는 경우
ㅇ 시험 함정:
– Git LFS가 Git의 기본 기능에 포함되어 있다고 오답 유도 → 별도 설치 및 설정 필요
– LFS를 사용해도 Git 저장소에 파일 전체가 저장된다고 착각하는 경우
– 모든 Git 호스팅 서비스가 LFS를 무제한 지원한다고 오해
ㅇ 시험 대비 “패턴 보기” 예시:
O: “Git LFS는 대용량 파일을 포인터로 관리하여 저장소 부하를 줄인다.”
X: “Git LFS를 사용하면 대용량 파일이 Git 저장소 내부에 그대로 저장된다.”
ㅁ 추가 학습 내용
Git LFS 사용 시 주의할 점은 LFS 서버의 저장 용량 제한과 다운로드 트래픽 제한이 있을 수 있으며, GitHub의 경우 월별 제한이 적용된다는 것이다. LFS를 사용하려면 먼저 ‘git lfs install’ 명령으로 초기화한 뒤, ‘git lfs track’ 명령으로 추적할 파일 패턴을 지정해야 한다. LFS로 관리되는 파일은 일반 Git diff로 내용 비교가 불가능하므로 변경 내용을 확인하려면 별도의 도구가 필요할 수 있다. 시험에서는 Git LFS, Git Submodule, Git Annex의 차이점을 비교하는 문제가 자주 출제되므로, 각 도구의 목적과 사용 사례를 명확히 구분할 수 있도록 준비해야 한다.