0Guhn
0Guhn

[Git Learn] Day 1. 왜 Git인가?

#git#버전관리#git-learn

시리즈: Pro Git 2nd Edition 기반 학습 정리 참고: Pro Git Book (Official) 범위: 1.1 About Version Control


버전 관리, 왜 진화했나?

버전 관리 시스템은 세 번의 큰 변화를 겪었다.

세대 방식 대표
1세대 로컬 RCS
2세대 중앙 집중식 CVS, SVN
3세대 분산 Git

각 세대가 왜 등장했는지, 우체국에 비유해서 풀어본다.


1. 로컬 버전 관리 - "나 혼자 산다"

초기에는 단순히 내 컴퓨터에서 버전을 관리하는 게 목표였다.

시골의 작은 1인 우체국을 떠올려보자. 국장님 혼자 장부에 적고, 혼자 배달하고, 혼자 마감한다. 남한테 보여줄 필요가 없으니 서랍 속 비밀 수첩에 적어둔다.

문제: 서랍에 불이 나면? 장부도 날아가고 복구할 방법이 없다.

로컬 버전 관리 - 1인 우체국


2. 중앙 집중식 - "협업의 시작"

프로젝트가 커지면서 이 됐다. 혼자 일할 때는 문제없었는데, 직원이 3명으로 늘어나니 내 컴퓨터에 있는 파일을 쟤한테 줘야 하는 번거로움이 생겼다.

"야, 우리 장부 하나로 합치자!"

이렇게 서울 본점(중앙 서버)이 탄생했다. 이제 모든 지점 직원은 출근하자마자 서울 본점에 전화를 걸어 장부 내용을 확인해야 업무가 가능하다.

관리자 입장에서는 좋다. 누가 뭘 하는지 한눈에 보이니까.

근데 치명적인 문제가 있다.

  • 본점 전화가 먹통이면? → 전국 모든 지점 업무가 올스톱
  • 본점 하드디스크가 깨지면? → 10년 치 프로젝트 역사가 한 방에 증발

이게 바로 단일 실패 지점(Single Point of Failure) 문제다.

중앙 집중식의 치명적 문제 - 본점이 터지면 끝


3. 분산 버전 관리 - "Git의 등장"

협업은 유지하되, 본점이 터져도 안전할 수 없을까?

Git의 답은 간단했다. 단순히 파일만 받지 말고, 저장소의 모든 기록을 다 가져가라.

이제 부산 지점, 광주 지점 모두 본점과 똑같은 장부 원본을 내 금고에 넣어두고 일한다.

분산 버전 관리 - 모든 지점이 전체 히스토리 보유

결정적 차이:

  1. 복구 능력: 서울 본점이 폭파돼도, 부산 지점 장부를 가져와서 다시 본점을 세우면 된다
  2. 오프라인 작업: 본점과 인터넷이 끊겨도 내 금고에 장부가 있으니 비행기 안에서도 일하고 커밋할 수 있다
  3. 속도: 네트워크 타고 물어볼 필요 없이 내 하드디스크에서 읽으니 빠르다

정리

혼자 작업 (로컬)
    ↓ 협업 필요
중앙 집중식 (SVN)
    ↓ 안전성 + 속도 필요
분산 (Git)

Git을 쓴다는 건, 내 컴퓨터가 단순한 단말기가 아니라 하나의 완벽한 서버가 된다는 뜻이다.

명령어 실제로 하는 일
git clone 저장소 전체 히스토리 복사
git commit 서버 없이 로컬에서 기록
git push 로컬 기록을 원격에 동기화

Log

  • 2026-02-03: create
  • 2026-02-03: add images