꽃무늬 키보드

버전관리 시스템(Version Control System)이란? 본문

Version Controll

버전관리 시스템(Version Control System)이란?

Katherine Choi 2014. 6. 3. 16:44

버전관리 시스템(Version Control System - VCS)


파일 변화를 시간에 따라 기록했다가 이후에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템이다. 동일한 정보에 대한 여러 버전을 관리하게 되며, 버전을 통해 시간적으로 변경 사항과 변경 사항을 작성한 작업자를 추적할 수 있다. 




  • 로컬 버전 관리 시스템 (Local VCS) : 간단한 데이터베이스를 사용하여 파일의 변경 정보를 관리한다.

     - RCS : 기본적으로 Patch Set(파일에서 변경되는 부분)을 관리한다.





  • 중앙집중식 버전 관리 시스템 (Centralized VCS - CVCS) : 프로젝트를 진행할 때 다른 개발자와 함께 작업해야하는 경우 사용되는 시스템이다. 파일을 관리하는 서버가 별도로 있고 클라이언트가 중앙 서버에서 파일을 받아(Checkout) 사용할 수 있다.

- CVCS : 관리자가 프로젝트에 참여한 사람 중 누가 무엇을 하는지 관리하기 쉽다. 하지만 중앙 서버에 문제가 발생하여 다운될 경우, 그동안에는 협업 및 백업이 불가능하다. 또한 하드디스크에 문제가 생긴다면 프로젝트의 모든 히스토리를 잃을 수도 있다.

      - Subversion, Perforce





  • 분산 버전 관리 시스템 (Distributed VCS - DVCS) : 클라이언트가 파일의 마지막 스냅샷을 가져오는 것이 아니라 저장소 자체를 복제하게 된다. 서버에 문제가 생길 경우 이 복제물로 작업이 가능하며 서버를 복원할 수도 있다. 또한 리모트 저장소가 존재하며 리모트 저장소가 많을 수도 있다. 즉, 동시에 다양한 그룹과 다양한 방법으로 협업이 가능하다. 

     - Git, Mercurial, Bazaar, Darcs




[참고자료]

http://git-scm.com/



Comments