shyuk 2016. 9. 2. 10:44

VCS(CSV, SVN, GIT) 버전관리



버전 관리란?


버전 관리란 무엇이며, 왜 이것을 알아야 할까? 버전 관리 시스템은 파일의 변화를 시간에 따라 기록하여 과거 특정 시점의 버전을 다시 불러올 수 있는 시스템이다. 


이 책에는 소프트웨어의 소스 코드를 버전 관리하는 예만 나오지만 실제로는 모든 컴퓨터 파일이 버전 관리의 대상이 될 수 있다.


이미지나 레이아웃을 수정할 때마다 각각의 형태를 모두 보존하고 싶은 그래픽 디자이너나 웹 디자이너라면 버전 관리 시스템(Version Control System; VCS)을 사용하는 것이 현명할 수 있다. 


VCS를 사용하면 개별 파일 혹은 프로젝트 전체를 이전 상태로 되돌리거나 시간에 따른 변경 사항을 검토할 수 있으며, 문제가 되는 부분을 누가 마지막으로 수정했는지, 누가 언제 이슈를 만들어냈는지 등을 알 수 있다. 


또한 파일을 잃어버리거나 무언가 잘못되어도 대개 쉽게 복구할 수 있다. 

그리고 이 모든 장점을 누리는 데는 큰 노력이 들지 않는다.





CVS(Concurrent Version System)는 1986년 Dick Grune에 의해서 개발된 가장 대중적인 버전관리 시스템이다. 오랜 시간 개발자들에게 버전관리 시스템의 대명사로 불리다 보니, 버전관리를 위한 다양한 기법들이 연구되었다. 

그 결과로 윈도우 버전과 웹 버전, 편리한 GUI 클라이언트 등도 개발되었다. 현재까지도 많은 프로젝트나 기업에서 CVS를 버전관리 시스템으로 사용하고 있다.


그러나 CVS 프로토콜은 한 번 등록된 디렉토리나 파일의 이동이나 이름 변경을 허용하지 않았으며, 역사적으로 RCS를 따라 나왔기 때문에 개별 파일 단위로만 버전관리가 되었다.


그 뿐 아니라 아스키코드로 된 파일명만 지원할 뿐 유니코드에 대한 지원이 제한적이어서 우리나라처럼 유니코드로 지원되는 언어를 쓰는 국가에서는 파일 이름을 모두 영어로 변경해야 했다.