[git] 형상 관리란? (버전 관리란?) - local VCS, CVCS, DVCS

Baek Sia·2021년 12월 19일
0

git

목록 보기
4/4

git에 대한 개념을 제대로 잡기 위해 작성하는 글입니다.

이번 포스팅은 git을 처음 접하는 사람에게 필요한 내용으로 형상 관리 도구(버전 관리 도구)에 대한 이해도를 높이기 위한 게시글입니다.
참고 사이트: git-scm.com/book/ko/b2


1. 형상 관리란?

  • 다른 말로 버전 관리라고도 합니다.
  • 형상 관리 시스템 : 파일의 변화를 시간에 따라 기록해두었다가 특정 시점 버전을 나중에 다시 꺼내올 수 있는 시스템

형상 관리 시스템의 장점

  • 파일 및 프로젝트를 이전 상태로 되돌릴 수 있다.
  • 시간에 따라 수정 내용을 비교해 볼 수 있다.
  • 누가, 언제 만들어낸 이슈인지 추적할 수 있다.
  • 파일을 잃어버리거나 잘못 수정했을 때 쉽게 복구할 수 있다.

형상 관리 시스템은 크게 로컬 버전 관리 시스템, 중앙집중식 버전 관리 시스템, 분산 버전 관리 시스템으로 구분할 수 있습니다.

1-1. 로컬 버전 관리 시스템(local VCS)

  • 아주 간단한 데이터베이스를 사용해서 파일의 변경 정보를 관리한다.
  • RCS(Revision Control System)라고 부르는 것이 있는데 오늘날까지도 아직 많은 회사가 사용하고 있다.
  • RCS는 기본적으로 Patch Set(파일에서 변경되는 부분)을 관리하며, 이 Patch Set은 특별한 형식의 파일로 저장한다. 그리고 일련의 Patch Set을 적용해서 모든 파일을 특정 시점으로 되돌릴 수 있다.

1-2. 중앙집중식 버전 관리 시스템(CVCS)

  • CVS, SVN(Subversion), Perforce 등이 있다.
  • 파일을 관리하는 서버가 별도로 있고 클라이언트가 중앙 서버에서 파일을 받아서 사용(Checkout)한다.
  • 관리자는 누가 무엇을 할지 꼼꼼하게 관리할 수 있다.
  • 만약 서버가 한 시간 동안 다운되면 그동안 아무도 다른 사람과 협업할 수 없고 사람들이 하는 일을 백업할 방법도 없다.
  • 중앙 데이터베이스가 있는 하드디스크에 문제가 생기면 프로젝트의 모든 히스토리를 잃는다.

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

  • Git, Mecurial, Bazaar, Darcs 등이 있다.
  • 클라이언트가 단순히 파일의 마지막 스냅샷을 Checkout 하지 않는다. 그냥 저장소를 히스토리와 더불어 전부 복제한다.
  • 서버에 문제가 생기면 이 복제물로 다시 작업을 시작할 수 있다. 클라이언트 중에서 아무거나 골라도 서버를 복원할 수 있다. Clone은 모든 데이터를 가진 진정한 백업이다.
  • 대부분의 DVCS 환경에서는 리모트 저장소가 존재한다. 리모트 저장소가 많을 수도 있다. 그래서 사람들은 동시에 다양한 그룹과 다양한 방법으로 협업할 수 있다. 계층 모델 같은 중앙집중식 시스템으로는 할 수 없는 워크플로를 다양하게 사용할 수 있다.
profile
FE developer

0개의 댓글