728x90
버전 관리 시스템 (Version Control System - VCS)
파일 변환를 시간에 따라 기록했다가 이후에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템
동일한 정보에 대한 여러 버전을 관리하여 버전을 통해 시간적으로 변경 사항과 변경 사항을 작성한 작업자를 추적 가능
1. 로컬 버전 관리 시스템 (Local VCS)
간단한 데이터 베이스를 사용하여 파일의 변경 정보 관리
RCS : VCS 도구 중 하나이며, 기본적으로 Path Set (파일에서 변경되는 부분)을 관리
장점
- 버전마다 파일을 가져올 수 있어서 시간 단축 가능
- 파일의 전체 복사가 아닌 변경된 부분만 복사하기 때문에 용량 적게 잡아먹음
단점
- 로컬에서 관리하기 때문에 협업이 안됨
- 바이러스나 오류로 인해서 데이터베이스가 날라갈 경우 복구 매우 힘듦
2. 중앙집중식 버전 관리 (CVCS)
프로젝트를 진행할 때 다른 개발자와 함께 작업해야하는 경우 사용되는 시스템
파일을 관리하는 서버가 별도로 있고 클라이언트가 중앙 서버에서 파일을 받아 사용
장점
- 관리자가 프로젝트에 참여한 사람 중 누가 무엇을 하는지 관리하기 쉬움
- 협업 가능
단점
- 중앙 서버에 문제가 발생하여 다운될 경우, 그동안 협업 및 백업이 불가능
- 중앙 서버의 데이터가 소실될 경우 프로젝트의 히스토리를 잃게 됨
- 바이러스나 오류로 인해서 데이터베이스가 날라갈 경우 복구 매우 힘듦
3. 분산 버전 관리 시스템 (Distributed VCS-DVCS)
클라이언트가 파일의 마지막 스냅샷을 가져오는 것이 아니라 저장소 자체를 복제
CVCS와 다르게 저장소를 로컬에 복제 → 로컬에 소스코드와 히스토리 모두 복제
장점
- 중앙 서버에 문제가 생길 경우 클라이언트 PC의 소스를 통해 원상 복구 가능
- 동시에 다양한 그룹과 다양한 방법으로 협업 가능
- 오프라인에서도 작업이 가능하며 자신의 작업 히스토리 또한 보존 가능
728x90
'git' 카테고리의 다른 글
git commit amend 최종 로그 변경 (0) | 2021.12.09 |
---|---|
git reflog (0) | 2021.12.09 |
git reset 명령어 (0) | 2021.12.09 |
git(깃) 원리 및 add, commit 순서 (0) | 2021.12.09 |