반응형

버전 관리 시스템이란?

버전 관리 시스템(Version Control System, VCS)은 개발자가 소프트웨어 프로젝트의 소스 코드에 대한 변경 사항을 관리하고 추적하는 데 도움이 되는 소프트웨어 도구다. 이를 통해 개발자는 프로젝트의 서로 다른 부분에서 동시에 작업하고 서로 다른 개발자가 변경한 내용을 추적 및 병합할 수 있다.

 

버전 관리 시스템의 이점과 용도

버전 관리 시스템은 코드 베이스에 대한 모든 변경 사항을 기록하고 필요한 경우 개발자가 이전 버전으로 되돌릴 수 있도록 한다. 혹은, 마치 정교한 실행 취소 도구라고 생각해도 좋다. 예를 들어 함수를 변경했는데 나중에 이전 함수가 더 좋았다고 생각되면 코드를 원래 버전으로 되돌릴 수 있다. 또한 한 개발자가 변경한 내용을 코드 베이스와 쉽게 병합할 수 있으므로 다른 개발자와 보다 쉽게 공동 작업할 수 있다. 또는, 새로운 버그를 발견하면 이전 버전으로 돌아가 언제 처음으로 해당 버그가 등장했는지, 또한 어떤 코드 변경 때문에 했는지를 확인할 수도 있다.

 

중앙 집중식 버전 제어 시스템(Centralized Version Control System, CVCS)

https://www.geeksforgeeks.org/version-control-systems/

CVCS는 프로젝트의 버전 기록을 저장하는 중앙 서버가 있으며 개발자는 이 중앙 저장소에 변경 사항을 커밋한다. CVCS의 예로는 Subversion(SVN)Perforce가 있다. CVCS의 장점 중 하나는 모든 개발자가 작업하는 단일 중앙 저장소가 있기 때문에 설정 및 사용이 상대적으로 간단하다는 것이다. 그러나 CVCS는 모든 커밋과 변경 사항이 중앙 서버를 통해 전달되어야 하므로 여러 팀이 작업하는 경우 효율성이 떨어질 수 있다는 것이다. 이로 인해 코드 크기가 크거나 개발자 수가 많은 프로젝트의 경우 효율성이 떨어진다.

 

분산형 버전 제어 시스템(Distributed Version Control Sysytem, DVCS)

https://www.geeksforgeeks.org/version-control-systems/

DVCS에는 중앙 서버가 없으며 각 개발자는 로컬 컴퓨터에 있는 프로젝트의 전체 버전 기록에 대한 전체 복사본을 가지고 있다. DVCS의 예로는 GitMercurial이 있다. DVCS의 장점 중 하나는 개발자가 각자 작업하고 중앙 서버와 통신할 필요 없이 로컬에서 변경 사항을 커밋할 수 있다는 것으로 여러 팀이 작업할 때 적합하다는 것이다. 그러나 개발자가 로컬 리포지토리와 원격 리포지토리 간에 변경 사항을 푸시 및 풀해야 하므로 DVCS는 CVCS에 비해 설정 및 사용이 더 복잡할 수 있다. 현재는 Git이 가장 인기가 많다.

반응형

+ Recent posts