DagsHub 설정 및 Github 차이점, dvc 활용법
ML 프로젝트에서 데이터와 모델을 체계적으로 관리하지 못해 실험이 뒤죽박죽이 된 경험이 있으신가요? 코드는 GitHub로 관리하는데 수백 GB의 데이터셋과 모델 파일은 어디에 두어야 할지 막막하다면, 지금 바로 DagsHub와 DVC의 조합이 해답입니다. 이 글에서는 2026년 최신 기준으로 DagsHub의 설정 방법, GitHub와의 핵심 차이점, 그리고 DVC 실전 활용법까지 한 번에 정리해 드리겠습니다.

DagsHub란 무엇인가?
DagsHub는 머신러닝 커뮤니티를 위한 협업 플랫폼으로, 코드·데이터·모델·실험을 한 곳에서 통합 관리할 수 있도록 설계된 MLOps 전문 플랫폼입니다. “ML을 위한 GitHub”라고 불릴 만큼 인터페이스가 GitHub와 유사하지만, 데이터 과학 워크플로우에 특화된 기능을 훨씬 풍부하게 제공합니다. Git 저장소를 기반으로 하면서도 DVC, MLflow, Label Studio 등 MLOps 핵심 도구들이 기본으로 내장되어 있어, DevOps 지식 없이도 재현 가능한 ML 환경을 빠르게 구축할 수 있습니다.
- 모든 저장소에 100GB의 무료 S3 호환 스토리지 자동 제공
- MLflow 실험 추적 서버가 기본 내장
- Label Studio 기반 데이터 어노테이션 기능 제공
- DVC 파이프라인 시각화 및 diff 기능 지원
- Jupyter 노트북, 코드, 데이터셋 비교(diff) 지원
- GitHub, GitLab, Bitbucket 등 외부 Git 저장소와 연동 가능
DagsHub vs GitHub 핵심 차이점
두 플랫폼 모두 Git 기반의 협업 도구이지만, 지향하는 사용자와 지원하는 워크플로우가 근본적으로 다릅니다. GitHub는 소프트웨어 코드 관리에 최적화되어 있고, DagsHub는 데이터·모델·실험까지 포함하는 ML 전체 라이프사이클 관리를 목표로 합니다. 실제 ML 팀에서는 두 플랫폼을 동시에 연동하여 GitHub에서는 코드를, DagsHub에서는 데이터와 실험을 관리하는 방식이 2026년 현재 가장 권장되는 구성입니다.
| 항목 | GitHub | DagsHub |
|---|---|---|
| 주요 대상 | 소프트웨어 개발자 | 데이터 과학자·ML 엔지니어 |
| 대용량 파일 지원 | Git LFS (용량 제한 있음) | DVC + 100GB 무료 스토리지 |
| 실험 추적 | 미지원 | MLflow 기본 내장 |
| 데이터 어노테이션 | 미지원 | Label Studio 내장 |
| 파이프라인 시각화 | 미지원 | DVC 파이프라인 자동 시각화 |
| 노트북 diff | 제한적 | 인터랙티브 diff 지원 |
- GitHub는 소스코드 중심, DagsHub는 ML 아티팩트(데이터·모델·실험) 중심
- GitHub LFS는 저장소당 용량 제약이 심한 반면 DagsHub는 무료 100GB 스토리지 기본 제공
- DagsHub는 MLflow 인스턴스를 저장소마다 자동 생성하여 별도 서버 설정 불필요
- GitHub Actions와 DagsHub를 연동하면
git push한 번으로 코드·데이터·모델을 동시에 동기화 가능
DagsHub 초기 설정 방법
DagsHub 설정은 기존 GitHub 프로젝트를 그대로 연결하거나, 새 저장소를 생성하는 두 가지 방식으로 시작할 수 있습니다. 계정 생성 후 5가지 명령어만으로 DVC 원격 스토리지 설정까지 완료할 수 있어, 복잡한 클라우드 설정 없이 즉시 데이터 버전 관리를 시작할 수 있습니다. 신용카드나 클라우드 계정 없이도 바로 시작 가능한 것이 큰 장점입니다.
bash
# 1. DagsHub 계정 생성 및 저장소 연결
# https://dagshub.com 에서 회원가입 후 저장소 생성
# 2. DVC 설치
pip install dvc dagshub
# 3. 기존 Git 저장소 초기화
git clone https://github.com/your-name/your-repo
cd your-repo
dvc init
# 4. DagsHub DVC 원격 스토리지 설정 (저장소 페이지 Remote 버튼에서 복사)
dvc remote add origin s3://dvc
dvc remote modify origin endpointurl https://dagshub.com/<username>/<repo>.s3
dvc remote modify origin --local access_key_id <your-token>
dvc remote modify origin --local secret_access_key <your-token>
# 5. 설정 커밋 및 푸시
git add .dvc/config
git commit -m "Configure DagsHub DVC remote"
git push
- DagsHub 공식 문서 에서 최신 설정 가이드 확인 가능
- DagsHub 저장소 페이지의 녹색 Remote 버튼 클릭 → DVC 탭에서 설정 코드 자동 생성
--local옵션으로 인증 정보는.dvc/config.local에 저장되어 Git에 노출되지 않음- Python 클라이언트
pip install dagshub설치 후dagshub.init()으로 더 간편하게 초기화 가능
DVC 핵심 개념과 구조
DVC(Data Version Control)는 Git 위에서 동작하는 오픈소스 데이터 버전 관리 도구로, 대용량 데이터·모델 파일을 Git과 분리하여 외부 스토리지에 저장하면서도 Git과 동일한 버전 관리 경험을 제공합니다. 실제 데이터는 원격 스토리지(S3, GCS, DagsHub Storage 등)에 저장되고, Git에는 해시값이 담긴 가벼운 .dvc 메타파일만 저장됩니다. 이 구조 덕분에 팀원 모두가 동일한 데이터 버전을 재현 가능하게 공유할 수 있습니다.
[코드 + .dvc 메타파일] ──→ Git / GitHub / DagsHub (Git 저장소)
[실제 데이터 / 모델] ──→ DagsHub Storage / S3 / GCS (원격 스토리지)
dvc add <파일>: 데이터 파일을 DVC 추적 대상으로 등록하고.dvc파일 생성dvc push: 실제 데이터를 원격 스토리지로 업로드dvc pull: 원격 스토리지에서 데이터를 로컬로 다운로드git checkout <버전>+dvc checkout: 특정 시점의 코드와 데이터를 함께 복원dvc repro:dvc.yaml에 정의된 파이프라인 전체를 재실행
DVC 실전 활용법
DVC는 단순한 데이터 저장을 넘어 ML 파이프라인 전체를 버전 관리하고 재현하는 데 강력한 기능을 제공합니다. dvc.yaml에 각 단계(데이터 전처리→학습→평가)를 정의하면, 의존성이 변경된 단계만 선택적으로 재실행하여 시간을 절약할 수 있습니다. 실험별 메트릭을 dvc metrics 명령으로 비교하면 어떤 하이퍼파라미터가 최적인지 한눈에 파악할 수 있습니다.
bash
# 데이터 버전 관리 기본 워크플로우
dvc add data/dataset.csv # 데이터 추적 등록
git add data/dataset.csv.dvc data/.gitignore
git commit -m "Add dataset v1.0"
git tag -a "v1.0" -m "Dataset version 1.0"
git push && dvc push # 코드 + 데이터 동시 업로드
# 파이프라인 정의 예시 (dvc.yaml)
# stages:
# preprocess:
# cmd: python preprocess.py
# deps: [data/raw]
# outs: [data/processed]
# train:
# cmd: python train.py
# deps: [data/processed]
# outs: [models/model.pkl]
# metrics: [metrics.json]
dvc repro # 파이프라인 전체 재실행
dvc metrics show # 실험 메트릭 확인
dvc metrics diff HEAD~1 # 이전 버전과 메트릭 비교
- 데이터 버전 변경 시:
dvc add→git commit→git tag→git push→dvc push순서 준수 dvc.lock파일을 Git에 커밋하면 파이프라인 실행 결과의 정확한 재현이 보장됨- GitHub Actions의
.yml파일에iterative/setup-dvc@v1액션 추가 시 CI/CD 자동화 가능 - S3, Google Cloud, Azure Blob, SSH, NFS 등 다양한 원격 스토리지 백엔드 지원
MLflow 실험 추적 연동
DagsHub는 저장소마다 MLflow 트래킹 서버를 자동으로 제공하므로, 별도 서버를 구축하지 않고도 실험 메트릭과 파라미터를 체계적으로 기록하고 시각화할 수 있습니다. 여러 실험의 정확도, 손실값, 하이퍼파라미터를 인터랙티브 대시보드에서 비교할 수 있어 최적 모델을 빠르게 찾을 수 있습니다. DVC 파이프라인과 MLflow를 함께 사용하면 데이터·코드·실험 결과를 완전히 연결된 형태로 추적할 수 있습니다.
python
import mlflow
import dagshub
# DagsHub MLflow 연동 (2줄로 완료)
dagshub.init(repo_owner='<username>', repo_name='<repo>', mlflow=True)
with mlflow.start_run():
mlflow.log_param("learning_rate", 0.01)
mlflow.log_param("epochs", 100)
mlflow.log_metric("accuracy", 0.95)
mlflow.log_metric("loss", 0.12)
mlflow.sklearn.log_model(model, "model")
dagshub.init()한 줄로 MLflow URI 자동 설정 완료- DagsHub 대시보드에서 실험별 메트릭을 그래프로 시각화 및 비교 가능
- 팀원 모두가 동일한 MLflow 서버를 공유하여 실험 결과 협업 가능
- MLflow 모델 레지스트리와 연동하여 프로덕션 모델 버전 관리 가능
실무 꿀팁 모음
DagsHub와 DVC를 실제 프로젝트에 적용하면서 알아두면 크게 도움이 되는 실전 팁들을 정리했습니다. 초기 설정 이후 일상적인 워크플로우를 자동화하거나, 팀 협업 시 발생하는 흔한 실수를 예방하는 데 특히 유용합니다. 아래 팁들을 참고하면 불필요한 시행착오를 크게 줄일 수 있습니다.
- FastDS 활용: DagsHub에서 만든
pip install fastds도구를 사용하면fds push한 번으로 Git + DVC 커밋·푸시를 동시에 처리 가능 .dvc/config.local관리: 인증 토큰은 반드시--local옵션으로 로컬에만 저장하고.gitignore에 추가- Git 태그 활용: 데이터 버전마다
git tag -a "data-v1.0"을 붙이면 나중에 특정 시점의 데이터를 정확히 복원 가능 - 캐시 디렉토리 분리:
dvc cache dir명령으로 캐시 위치를 데이터 디렉토리와 분리하여 관리 - GitHub Actions 연동:
iterative/setup-dvc@v1액션으로 CI/CD 파이프라인에 자동 DVC 설정 추가 (참고) - DagsHub Python 스트리밍:
dagshub.streaming을 사용하면 전체 데이터를 다운로드하지 않고 스트리밍으로 읽기 가능
자주 묻는 질문 (Q&A)
Q1. DagsHub는 완전 무료인가요? 용량 제한은 어떻게 되나요? A1. DagsHub는 공개 저장소에 대해 완전 무료이며, 저장소당 100GB의 DVC 원격 스토리지를 무료로 제공합니다. 비공개 저장소 및 추가 용량이 필요한 경우 유료 플랜을 선택할 수 있으며, AWS S3나 Google Cloud Storage 등 외부 버킷을 연결하여 용량 제한 없이 사용하는 것도 가능합니다.
Q2. 기존 GitHub 프로젝트를 DagsHub로 마이그레이션하려면 어떻게 하나요? A2. DagsHub는 GitHub, GitLab, Bitbucket의 기존 저장소를 직접 연결하거나 미러링하는 기능을 제공합니다. DagsHub 대시보드에서 “Connect a repo” 옵션을 선택하고 GitHub OAuth로 인증하면, 기존 Git 히스토리를 그대로 유지한 채 DagsHub 기능을 추가로 사용할 수 있습니다. 코드는 기존 GitHub에서 계속 관리하면서 DagsHub를 데이터·실험 추적 레이어로 활용하는 방식이 가장 일반적입니다.
Q3. DVC와 Git LFS의 가장 큰 차이점은 무엇인가요? A3. Git LFS는 GitHub 저장소에 종속된 플러그인 방식으로 무료 용량 제한(1GB)이 엄격하고, 별도 LFS 서버 운영 시 복잡한 설정이 필요합니다. DVC는 저장소와 독립적으로 S3, GCS, SSH, DagsHub Storage 등 다양한 백엔드를 자유롭게 선택할 수 있고, 파이프라인 버전 관리·실험 추적 등 ML 특화 기능이 추가로 제공됩니다. 대용량 ML 데이터셋을 다루는 프로젝트라면 DVC + DagsHub 조합이 훨씬 실용적입니다.
Q4. DVC 파이프라인을 팀원들과 어떻게 공유하나요? A4. dvc.yaml과 dvc.lock 파일을 Git에 커밋하면 팀원들이 git pull 후 dvc pull만 실행해도 동일한 데이터와 파이프라인 상태를 재현할 수 있습니다. DagsHub 저장소를 원격 스토리지로 사용하면 팀원들이 동일한 DVC 엔드포인트를 공유하므로, 개인 클라우드 계정 설정 없이 토큰 하나로 모든 팀원이 데이터에 접근할 수 있습니다.
Q5. MLflow와 DVC를 함께 사용할 때 어떤 역할 분담이 적절한가요? A5. DVC는 데이터셋·모델 파일의 버전 관리와 파이프라인 재현에 집중하고, MLflow는 하이퍼파라미터·메트릭·아티팩트 등 실험 결과 추적에 특화하여 사용하는 것이 권장됩니다. DagsHub는 이 두 도구를 하나의 플랫폼에서 통합하여 제공하므로, dagshub.init() 한 줄로 MLflow 서버를 연결하고 DVC로 데이터를 관리하면 완전한 재현 가능한 ML 워크플로우를 구성할 수 있습니다.
