본문 바로가기
git/1. 사전지식 및 기초

#1-1 사전 지식 : 버전관리

by 혀닙 2022. 2. 15.

# 버전 관리란?

버전 관리 시스템(VCS)는 파일 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템

VCS를 사용하면

  • 각 파일을 이전 상태로 되돌릴 수 있고,
  • 프로젝트를 통째로 이전 상태로 되돌릴 수 있고,
  • 시간에 따라 수정 내용을 비교해 볼 수 있고,
  • 누가 문제를 일으켰는지도 추적할 수 있고, 누가 언제 만들어낸 이슈인지도 알 수 있다.
  • 또한 파일을 잃어버리거나 잘못 고쳤을 때도 쉽게 복구 가능하다


# 버전 관리의 3가지 방법

1. 로컬 버전 관리

EX) RCS(Revision Control System)
-로컬 디바이스 내의 데이터 베이스를 사용해서 파일의 변경 정보 관리

2. 중앙집중식 버전관리(CVCS)

EX) CVS, Subversion, Perforce
-파일을 관리하는 서버가 별도로 있고 클라이언트가 중앙 서버에서 파일을 받아서 사용(checkout)

-작업 프로세스 진행 확인이 용이
-모든 클라이언트의 로컬 데이터베이스를 관리하는 것보다 vcs 관리가 용이

-단, 중앙서버에 문제 발생 시 문제 해결까지는 협업 및 백업 불가
-또한 중앙 데이터베이스가 있는 하드디스크에 문제 발생 시 프로젝트의 모든 히스토리 잃게 됨

3. 분산버전 관리시스템(DVCS)

EX) Git, Mecurial, Bazaar, Darcs
-클라이언트가 파일의 마지막 스냅샷만을 단순 Checkout하는 것이 아닌 히스토리와 더불어 저장소 전부를 복제
-서버에 문제 생길 시 이 복제물로 작업 재개 가능
-clone은 모든 데이터를 가진 진정한 백업
-대부분의 DVCS 환경에서는 원격 저장소가 존재
-따라서 사람들은 계층 모델 같은 중앙집중식 시스템으로는 불가능한 다양한 워크플로를 사용하여 협업 가능

댓글