도구 및 방법: Git LFS
ㅁ 도구 및 방법
ㅇ 정의:
데이터 버전관리를 위해 사용되는 다양한 도구 및 방법론을 포함하며, 데이터의 변경 이력을 추적하고 협업 환경에서의 데이터 일관성을 유지하는 데 중점을 둔다.
ㅇ 특징:
– 데이터의 변경 사항을 기록하고 복원할 수 있음.
– 협업 환경에서 데이터 충돌을 최소화.
– 대규모 데이터 파일에 대한 효율적인 관리 가능.
ㅇ 적합한 경우:
– 데이터 사이언스 프로젝트에서 데이터셋의 변경 이력을 관리할 필요가 있을 때.
– 팀 단위로 데이터를 공유하고 협업해야 할 때.
ㅇ 시험 함정:
– 도구의 특정 기능과 관련된 세부적인 사용법을 묻는 문제.
– 데이터 버전관리와 코드 버전관리의 차이를 혼동하도록 유도하는 문제.
ㅇ 시험 대비 “패턴 보기” 예시:
– O: “데이터 버전관리 도구는 변경 이력을 기록하고 복원할 수 있다.”
– X: “데이터 버전관리 도구는 데이터의 분석 결과를 자동으로 생성한다.”
================================
1. Git LFS
ㅇ 정의:
Git Large File Storage(Git LFS)는 Git에서 대용량 파일을 효율적으로 관리하기 위한 확장 도구로, 대규모 데이터 파일을 별도의 스토리지에 저장하고 Git 저장소에는 파일의 메타데이터만 저장한다.
ㅇ 특징:
– 대용량 바이너리 파일의 효율적인 버전관리 가능.
– Git 저장소의 크기를 줄이고 성능을 향상시킴.
– 파일의 실제 내용은 원격 스토리지에 저장되며, 필요 시 다운로드.
ㅇ 적합한 경우:
– 데이터 분석 프로젝트에서 대규모 데이터셋을 관리해야 할 때.
– 이미지, 동영상, 머신러닝 모델 파일 등의 대용량 파일을 다룰 때.
ㅇ 시험 함정:
– Git과 Git LFS의 차이를 묻는 문제.
– Git LFS의 지원 파일 형식과 관련된 세부적인 질문.
ㅇ 시험 대비 “패턴 보기” 예시:
– O: “Git LFS는 대용량 파일을 효율적으로 관리하기 위해 사용된다.”
– X: “Git LFS는 Git 저장소에 모든 파일 내용을 저장한다.”
ㅁ 추가 학습 내용
Git LFS와 관련하여 시험에 자주 출제될 수 있는 추가 개념을 학습하기 위해 다음과 같이 정리합니다:
1. Git LFS 사용 시 발생할 수 있는 잠재적 문제:
– 대규모 파일 다운로드 시 네트워크 속도 저하가 발생할 수 있음.
– 저장소 크기가 커질 경우 클론 및 푸시/풀 작업 시간이 증가할 가능성.
– Git LFS를 지원하지 않는 환경에서는 파일 처리에 문제가 생길 수 있음.
2. Git LFS 설정 시 필요한 명령어와 구성 파일(.gitattributes)의 역할:
– `git lfs install`: Git LFS를 현재 저장소 또는 시스템에 설치 및 활성화.
– `git lfs track “*.확장자”`: 특정 파일 유형을 Git LFS로 관리하도록 설정.
– `.gitattributes` 파일: Git LFS로 관리할 파일 유형을 정의하고 추적 규칙을 저장하는 파일. 예: `*.png filter=lfs diff=lfs merge=lfs -text`.
3. Git LFS와 기존 Git 워크플로우의 통합 방식:
– Git LFS는 대용량 파일을 별도로 관리하여 Git 저장소의 크기를 줄이고 효율성을 높임.
– 기존의 Git 명령어(예: `git add`, `git commit`, `git push`)와 함께 사용되며, LFS 파일은 링크 형태로 저장소에 저장됨.
– Git LFS를 통해 대규모 파일은 원격 스토리지에 저장되고, 로컬 저장소에는 메타데이터로 관리됨.
4. Git LFS가 지원하는 원격 스토리지 서비스:
– GitHub, GitLab, Bitbucket 등 주요 Git 호스팅 서비스에서 Git LFS를 지원.
– 지원 여부는 서비스마다 다를 수 있으므로 사용 전 확인 필요.
– 일부 서비스는 LFS 스토리지 용량에 제한이 있을 수 있음. 이를 관리하기 위한 추가 요금 정책이 존재할 수 있음.