📌 생활정보 💳 국민연금 🏥 보험 정보

Git LFS 설치 확인 및 대용량 파일 관리 완벽 가이드 2025년 최신 정보 보기

소프트웨어 개발에서 Git은 필수적인 도구이지만, 대용량 파일(예: 고화질 이미지, 오디오 파일, 비디오, 대규모 데이터셋)을 관리할 때는 성능 문제가 발생할 수 있습니다. Git은 기본적으로 모든 파일의 전체 이력을 저장하므로, 저장소 크기가 기하급수적으로 증가하게 됩니다. 이러한 문제를 해결하기 위해 등장한 것이 바로 Git Large File Storage (Git LFS)입니다.

Git LFS는 대용량 파일을 Git 저장소 외부에 저장하고, 저장소에는 해당 파일을 가리키는 작은 포인터 파일만 커밋하는 방식으로 작동합니다. 이 포스팅에서는 Git LFS의 설치 및 가장 중요한 설치 확인 방법부터 시작하여, 효과적인 대용량 파일 관리 전략까지 2025년 최신 정보를 반영하여 자세히 안내해 드립니다.

특히, 기존에 2024년 정보로 접했던 내용들을 현재 시점(2025년 12월)에 맞게 업데이트하고, 개발 환경에 Git LFS를 안정적으로 통합하는 방법을 중점적으로 다루겠습니다.

Git LFS 설치 및 버전 확인하기

Git LFS를 사용하기 위한 첫 번째 단계는 설치입니다. 대부분의 운영 체제에서 Git LFS는 공식 웹사이트를 통해 다운로드하거나 패키지 관리자를 사용하여 쉽게 설치할 수 있습니다.

설치 방법 상세 더보기

  • macOS (Homebrew 사용): 터미널에 brew install git-lfs를 입력합니다.
  • Windows (Chocolatey 사용): 관리자 권한으로 실행한 명령 프롬프트나 PowerShell에서 choco install git-lfs를 입력합니다.
  • Linux (Debian/Ubuntu): sudo apt-get install git-lfs를 사용하거나, 공식 GitHub 저장소에서 최신 버전을 다운로드할 수 있습니다.

설치 후에는 Git 환경에 LFS 필터를 적용해야 합니다. 이 작업은 보통 다음 명령어를 통해 수행됩니다. git lfs install 명령어는 Git의 전역 설정 파일(.gitconfig)에 LFS 필터를 추가하여, Git이 LFS 추적 파일들을 자동으로 처리하도록 설정합니다. 이 명령은 한 번만 실행하면 됩니다.

Git LFS 설치 확인 명령어 및 성공 여부 확인하기

가장 핵심적인 단계는 Git LFS가 시스템에 제대로 설치되고 활성화되었는지 확인하는 것입니다. 다음의 두 가지 명령어를 통해 확인 작업을 수행할 수 있습니다.

설치 버전 확인하기

가장 간단한 확인 방법은 Git LFS의 버전을 확인하는 것입니다.

git lfs version

이 명령어를 실행했을 때, git-lfs/3.4.1 (GitHub; darwin arm64; go 1.21.0)와 유사한 형태의 버전 정보가 출력된다면 설치는 성공적으로 완료된 것입니다. 버전 정보가 출력되지 않고 “command not found”와 같은 오류가 발생한다면, 설치가 제대로 안 되었거나 시스템 PATH 설정에 문제가 있을 가능성이 높습니다.

Git 필터 설정 확인하기

Git LFS의 진정한 ‘설치 확인’은 Git 자체가 LFS를 처리할 준비가 되었는지 확인하는 것입니다. 이는 git lfs install 명령을 통해 Git 설정에 추가된 lfs 필터 드라이버를 확인하는 작업입니다.

git config --get-all filter.lfs.process

이 명령을 실행했을 때, 다음과 같은 출력이 나타나야 Git LFS가 Git과 통합되어 작동할 준비가 되었음을 알 수 있습니다.

git-lfs filter-process

만약 아무것도 출력되지 않거나 다른 오류 메시지가 나타난다면, git lfs install을 다시 실행하여 Git 환경을 설정해야 합니다.

Git LFS 추적 및 대용량 파일 관리 상세 더보기

Git LFS의 설치 및 확인이 완료되었다면, 이제 프로젝트 내에서 대용량 파일을 추적하도록 설정해야 합니다. 이 과정은 .gitattributes 파일을 통해 이루어집니다.

특정 파일 확장자 추적하기

특정 확장자(예: .psd, .mp4)를 Git LFS로 관리하고 싶다면 다음 명령어를 사용합니다.

git lfs track ".psd"

이 명령어는 프로젝트의 루트 디렉토리에 .gitattributes 파일을 생성하거나 업데이트하며, 파일 내에 다음과 같은 내용을 추가합니다.

.psd filter=lfs diff=lfs merge=lfs -text

가장 중요한 것은 이 .gitattributes 파일을 반드시 Git에 커밋해야 한다는 것입니다. 이 파일은 Git LFS를 사용하는 모든 팀원들에게 파일 추적 규칙을 공유하는 역할을 합니다.

현재 추적 중인 파일 목록 확인하기

프로젝트에서 현재 Git LFS가 어떤 파일 패턴을 추적하고 있는지 확인하려면 다음 명령어를 사용합니다.

git lfs track

이 명령은 .gitattributes 파일에 설정된 모든 LFS 추적 패턴 목록을 보여줍니다.

대용량 파일 포인터 작동 방식 보기

Git LFS가 파일을 관리하는 방식의 핵심은 **포인터 파일(Pointer File)**입니다. Git LFS를 통해 추적되는 파일을 커밋하면, 실제 대용량 파일은 별도의 LFS 스토리지 서버에 업로드되고, Git 저장소에는 약 1KB 크기의 텍스트 파일인 포인터 파일만 남게 됩니다.

포인터 파일의 구조

포인터 파일은 텍스트 편집기로 열어보면 다음과 같은 세 줄로 구성되어 있습니다.

version https://git-lfs.github.com/spec/v1 oid sha256:4d60c410667d46535d88662908865c9287c80088d447d4a4d45542b6ff8d5b12 size 123456789

이 포인터 파일에는 다음 정보가 포함됩니다.

  • version: LFS 스펙 버전
  • oid: 실제 파일의 SHA-256 해시값 (Object ID)
  • size: 실제 파일의 크기(바이트)

Git이 체크아웃(Checkout) 작업을 수행할 때, 이 포인터 파일을 읽고 지정된 OID를 사용하여 LFS 서버에서 실제 파일을 다운로드하여 작업 디렉토리에 배치합니다. 이처럼 Git LFS는 저장소의 클론(Clone) 속도와 크기를 획기적으로 줄여주며 전체적인 개발 워크플로우의 효율성을 높여줍니다.

Git LFS 사용 시 주의사항 및 2025년 업데이트된 정보 확인하기

Git LFS는 강력한 도구이지만, 몇 가지 주의사항과 2025년 현재 시점에 중요해진 최신 동향을 알고 있어야 합니다.

LFS 서버 호스팅 및 비용 문제

Git LFS는 대용량 파일을 별도 서버에 저장하므로, 이 서버 공간을 누가 제공하느냐가 중요합니다. GitHub, GitLab, Bitbucket과 같은 주요 호스팅 서비스는 기본 저장 용량과 대역폭을 무료로 제공하지만, 이를 초과할 경우 추가 비용이 발생합니다. 2025년 현재, 클라우드 기반 개발 환경(예: GitPod, Codespaces)의 확산으로 인해 LFS 데이터의 빠른 접근성이 더욱 중요해졌으며, 비용 효율적인 관리가 필수적입니다.

LFS Migration (히스토리 정리)

이미 대용량 파일이 포함된 기존 Git 저장소를 Git LFS로 전환하는 작업(Migration)은 git lfs migrate 명령을 통해 수행됩니다. 2024년에도 이 기능이 있었지만, 2025년 버전의 Git LFS에서는 더욱 안정화되고 사용자 친화적인 옵션들이 추가되어, 복잡했던 히스토리 정리 작업이 훨씬 쉬워졌습니다.

git lfs migrate import --include=".mp4,.zip"

이 명령은 지정된 파일을 Git 히스토리에서 LFS 포인터로 변환하여 저장소 크기를 줄여줍니다. 히스토리 정리 작업은 되돌리기 어려우므로 반드시 작업 전 백업을 진행하거나 작은 테스트 브랜치에서 시도하는 것이 좋습니다.

LFS Pull 성능 개선 확인하기

대규모 LFS 프로젝트에서 전체 파일을 다운로드하는 데 시간이 오래 걸리는 경우, git lfs fetch 명령의 최신 기능이나 부분 클론(Partial Clone) 기능을 활용하여 필요한 파일만 선택적으로 다운로드하는 방식이 2025년 워크플로우의 핵심으로 자리 잡았습니다. 이 기능은 대규모 프로젝트를 다루는 데이터 과학 및 게임 개발 분야에서 특히 중요합니다.

자주 묻는 질문 (FAQ)

Q1: Git LFS를 사용하면 Git 저장소 크기가 실제로 줄어드나요?

A: 네, Git LFS는 실제 대용량 파일 대신 약 1KB 크기의 포인터 파일만 Git 저장소에 커밋하기 때문에, 저장소의 물리적 크기(.git 디렉토리)와 클론(Clone) 시간이 획기적으로 줄어듭니다. 그러나 실제 대용량 파일은 별도의 LFS 서버에 저장되므로, 전체 프로젝트에서 관리해야 하는 총 데이터 크기는 변하지 않습니다.

Q2: 이미 커밋된 대용량 파일을 Git LFS로 바꾸려면 어떻게 해야 하나요?

A: 이미 Git 히스토리에 커밋된 대용량 파일을 LFS로 전환하려면 git lfs migrate import 명령을 사용해야 합니다. 이 명령은 저장소의 모든 커밋 히스토리를 다시 작성하므로, 반드시 백업 후 실행하고, 팀원들에게 변경 사항을 강제로 푸시(Force Push)해야 한다는 점을 인지해야 합니다.

Q3: Git LFS의 포인터 파일은 반드시 Git에 커밋해야 하는 건가요?

A: 네, Git LFS를 사용하기 위해 생성되거나 수정되는 .gitattributes 파일은 반드시 Git에 커밋되어야 합니다. 이 파일에는 어떤 파일 확장자나 패턴을 LFS로 처리할지 명시되어 있으며, 이 정보가 없으면 Git은 대용량 파일을 일반 파일로 취급하여 저장소에 직접 저장하게 됩니다.

댓글 남기기