LuxDevHQ에서의 나의 여정: Version Control (기본)
Source: Dev.to
소개
이전 글에서 우리는 VirtualBox를 사용하여 Windows 가상 머신을 설정했고, 데이터‑과학 프로젝트를 시작할 준비를 했습니다.
데이터 과학은 대부분의 기술 분야와 마찬가지로 궁극적으로 코드와 데이터 파일을 중심으로 이루어집니다. 이는 여러 가지 질문을 제기합니다:
- 우리는 이를 어떻게 저장합니까?
- 변경 사항을 어떻게 추적합니까?
- 다른 머신에서 어떻게 접근할 수 있습니까?
- 협업자와 어떻게 공유할 수 있습니까?
버전 관리가 이 모든 질문에 답합니다.
버전 관리 / 소스 관리
Version Control – “소프트웨어 코드의 변경 사항을 추적하고 관리하는 관행.”1
컴퓨터 파일, 특히 소스 코드 파일에 대한 변경 이력을 보관하는 메커니즘으로, 이전 버전을 확인하고 필요할 경우 이전 상태로 되돌릴 수 있습니다.
협업을 위한 초기 시도는 USB 드라이브, 이메일 첨부 파일, 공유 폴더 등에 의존했습니다. 이러한 방법은 다음과 같은 문제점이 있었습니다:
- 누가 언제 어떤 변경을 했는지 식별할 수 있는 내장된 방법이 없었습니다.
project,project1,project‑latest와 같은 명명 규칙이 난무했습니다.- 실수로 파일을 덮어쓰는 경우가 빈번했으며, 그 결과 작업이 손실되는 경우가 많았습니다.
이러한 고통점 때문에 버전 관리 시스템(VCS)—파일의 변경을 자동으로 추적하고 관리하는 소프트웨어 도구—가 등장하게 되었습니다.
장점
- 자동 이력 관리 – 코드베이스에 대한 모든 업데이트가 기록됩니다.
- 안전한 협업 – 영구적인 덮어쓰기 위험 없이 함께 작업할 수 있습니다.
- 쉬운 롤백 – 개별 파일이나 전체 프로젝트를 이전 상태로 되돌릴 수 있습니다.
- 구조화된 감사 추적 – 프로젝트 진화 과정을 명확하고 연대기적으로 확인할 수 있습니다.
인기 있는 VCS 도구
가장 널리 사용되며 이 글과 LuxDevHQ의 초점이 되는 도구는 Git(git‑scm.com)입니다.
Source: …
Git
Git은 작은 프로젝트부터 매우 큰 프로젝트까지 속도와 효율성으로 처리하도록 설계된, 번개처럼 빠르고 무료이며 오픈 소스인 분산 버전 관리 시스템입니다.2 원래는 리누스 토르발스—리눅스의 창시자—가 리눅스 커널의 버전 관리를 위해 만들었습니다. 오늘날 전 세계 개발자 93 % 이상이 Git을 사용하고 있습니다1. 모든 주요 운영 체제에서 실행되며 Docker와 같은 컨테이너 안에서도 사용할 수 있습니다.
Installation
일반 설치 방법은 공식 사이트에 나와 있습니다: .
Windows
-
Windows 설치 프로그램 페이지를 방문합니다: .
-
최신 설치 파일을 다운로드합니다(예:
Git-2.52.0-64-bit.exe):
-
설치 프로그램을 실행하고 UAC 프롬프트를 수락한 뒤 Git Setup Wizard를 따라 진행합니다.
대부분의 사용자는 기본 옵션으로 충분하며, 필요에 따라 설정을 조정할 수 있습니다. -
설치가 끝나면 Launch Git Bash를 체크된 상태로 두고, View Release Notes는 체크 해제한 뒤 Finish를 클릭합니다.

Initial Setup
전역으로 사용자 정보를 설정합니다(필요에 따라 저장소별로 재정의할 수 있습니다).
# Set your name
git config --global user.name "Your Name"
# Set your email address
git config --global user.email "you@example.com"
설정이 제대로 되었는지 확인합니다:
git config --list
Creating a Repository
-
프로젝트 폴더 만들기
mkdir -p test-project cd test-project -
README 추가
touch README.md echo "This is a test project showing how to set up a Git repository." >> README.md내용 확인:
cat README.md -
샘플 Python 스크립트 추가
touch test.py && echo "print('Hello, World')" >> test.py -
디렉터리 내용 확인
ls .README.md와test.py가 보일 것입니다. -
저장소 초기화
git init -
파일 스테이징
git add . -
커밋 메시지와 함께 커밋
git commit -m "Initial commit"
이제 로컬 저장소가 원격 서비스(GitHub, GitLab, Bitbucket 등)로 푸시할 준비가 되었습니다.
References
Footnotes
-
Git. (2026‑01‑18). Git. https://git-scm.com ↩
