버전 관리 시스템이란?
버전 관리 시스템(Version Control System, VCS)은 개발자가 소프트웨어 프로젝트의 소스 코드에 대한 변경 사항을 관리하고 추적하는 데 도움이 되는 소프트웨어 도구다. 이를 통해 개발자는 프로젝트의 서로 다른 부분에서 동시에 작업하고 서로 다른 개발자가 변경한 내용을 추적 및 병합할 수 있다.
버전 관리 시스템의 이점과 용도
버전 관리 시스템은 코드 베이스에 대한 모든 변경 사항을 기록하고 필요한 경우 개발자가 이전 버전으로 되돌릴 수 있도록 한다. 혹은, 마치 정교한 실행 취소 도구라고 생각해도 좋다. 예를 들어 함수를 변경했는데 나중에 이전 함수가 더 좋았다고 생각되면 코드를 원래 버전으로 되돌릴 수 있다. 또한 한 개발자가 변경한 내용을 코드 베이스와 쉽게 병합할 수 있으므로 다른 개발자와 보다 쉽게 공동 작업할 수 있다. 또는, 새로운 버그를 발견하면 이전 버전으로 돌아가 언제 처음으로 해당 버그가 등장했는지, 또한 어떤 코드 변경 때문에 했는지를 확인할 수도 있다.
중앙 집중식 버전 제어 시스템(Centralized Version Control System, CVCS)
CVCS는 프로젝트의 버전 기록을 저장하는 중앙 서버가 있으며 개발자는 이 중앙 저장소에 변경 사항을 커밋한다. CVCS의 예로는 Subversion(SVN) 및 Perforce가 있다. CVCS의 장점 중 하나는 모든 개발자가 작업하는 단일 중앙 저장소가 있기 때문에 설정 및 사용이 상대적으로 간단하다는 것이다. 그러나 CVCS는 모든 커밋과 변경 사항이 중앙 서버를 통해 전달되어야 하므로 여러 팀이 작업하는 경우 효율성이 떨어질 수 있다는 것이다. 이로 인해 코드 크기가 크거나 개발자 수가 많은 프로젝트의 경우 효율성이 떨어진다.
분산형 버전 제어 시스템(Distributed Version Control Sysytem, DVCS)
DVCS에는 중앙 서버가 없으며 각 개발자는 로컬 컴퓨터에 있는 프로젝트의 전체 버전 기록에 대한 전체 복사본을 가지고 있다. DVCS의 예로는 Git 및 Mercurial이 있다. DVCS의 장점 중 하나는 개발자가 각자 작업하고 중앙 서버와 통신할 필요 없이 로컬에서 변경 사항을 커밋할 수 있다는 것으로 여러 팀이 작업할 때 적합하다는 것이다. 그러나 개발자가 로컬 리포지토리와 원격 리포지토리 간에 변경 사항을 푸시 및 풀해야 하므로 DVCS는 CVCS에 비해 설정 및 사용이 더 복잡할 수 있다. 현재는 Git이 가장 인기가 많다.
'CS > GitHub' 카테고리의 다른 글
[GitHub] commit이란 무엇인가? (snapshot, roll-back, repository) (0) | 2023.01.03 |
---|---|
[GitHub] 깃허브란? 깃허브의 장점과 단점 (0) | 2023.01.02 |
[GitHub] GitHub Desktop에서 repository clone 하는 법 (0) | 2021.05.26 |
[GitHub] Pycharm에서 깃허브 연동하는 법 (0) | 2021.05.20 |
[GitHub] 깃허브 토큰(Token) 생성하는 법 (0) | 2021.05.19 |