Computer >> 컴퓨터 >  >> 시스템 >> Linux

CVS(동시 버전 관리 시스템)란? 개념부터 작동 원리까지

참고로 CVS는 컴퓨터 비전 증후군(Computer Vision Syndrome)의 약어이기도 합니다.

CVS(동시 버전 관리 시스템)란?

동시 버전 시스템(CVS: Concurrent Versions System)은 개발자가 소스 코드의 여러 개발 버전을 저장하고 필요할 때 다시 불러올 수 있게 해주는 프로그램입니다. 또한 개발자 팀이 공용 파일 저장소(repository) 안에서 파일들의 다양한 버전을 함께 관리할 수 있도록 지원합니다. 이러한 종류의 프로그램은 일반적으로 버전 관리 시스템(version control system)이라고 불립니다.

CVS는 유닉스(UNIX) 운영체제 환경에서 만들어졌으며, 자유 소프트웨어 재단(FSF)에서 배포하는 무료 버전과 상용 버전 모두 존재합니다. 리눅스를 비롯한 유닉스 계열 시스템에서 개발하는 프로그래머들 사이에서 널리 사용되는 대표적인 도구입니다.

CVS의 작동 방식

CVS는 소스 코드 파일의 여러 사본을 일일이 보관하는 방식으로 작동하지 않습니다. 대신 단 하나의 복사본과 함께 지금까지의 모든 변경 이력(change log)만을 유지합니다. 개발자가 특정 버전을 지정하면, CVS는 기록된 변경 내역을 바탕으로 해당 시점의 버전을 재구성(reconstruct)해 줍니다. 이러한 방식 덕분에 저장 공간을 효율적으로 사용하면서도 전체 버전 이력을 관리할 수 있습니다.

CVS는 일반적으로 각 개발자의 작업을 별도의 작업 디렉토리에서 개별적으로 관리하는 데 사용됩니다. 그러다 필요한 시점에 팀원 전체의 작업 결과를 공용 저장소에서 하나로 병합(merge)할 수 있으며, 각 팀원의 변경 사항은 "commit" 명령을 통해 저장소에 반영됩니다.

RCS와의 관계, 그리고 유의할 점

CVS는 실제 리비전(수정판) 관리 작업을 위해 RCS(Revision Control System)라는 별도의 프로그램을 활용합니다. 즉, 각 소스 코드 파일마다 어떤 변경이 있었는지에 대한 기록은 RCS가 담당합니다.

가장 널리 읽히는 CVS FAQ 문서의 저자들은 한 가지 점을 분명히 강조합니다. CVS는 빌드 시스템(build system)이 아니며, 코드 구성 관리(configuration management) 시스템도 아니고, 체계적인 개발 관행을 대신해 주는 만능 해결책도 아니라는 것입니다. CVS는 어디까지나 프로그램을 구성하는 요소들이 개발되는 과정에서 그 버전을 체계적으로 관리해 주는 도구일 뿐입니다.