👨🏻💻 programming/◽ 툴(tool)
(Version Control System/VCS) 버전관리 시스템
핑크코냥
2022. 12. 29. 12:39
728x90
버전관리(Version Control System/VCS)?
- 시간에 따라 수정한 내용을 확인할 수 있다.
- 어떤 시점에서 문제가 발생한 건지 확인할 수 있다.
- 파일을 잃어버리거나 수정이 잘못 되었을 때 쉽게 복구할 수 있다.
- 소스코드, 문서 등 모든 파일 형식의 데이터를 대상으로 삼는다.
- 프로젝트 자체를 특정 시점으로 되돌릴 수 있다.
- 버전 관리 시스템의 내용은 주홍글씨가 될 수 있으므로 신중하게 커밋해야 한다.
- 버전 관리 시스템은 제품명이 아니다.
로컬 버전 관리 시스템(Local Version Control System/ Local VCS)

- 한 사람이 관리한다.
- 기본적인 버전 관리이다.
- 예: RCS(Revision Control System)
중앙집중식 버전 관리 시스템(Central Version Control System/ CVCS)


- 서버와 클라이언트가 존재한다.
- 서버 데이터를 받아 사용한다.
- 예: CVS(Concurrent Version System), Subversion, Perforce(p4v)
- 중앙 집중형으로 모든 개발자가 최신 버전을 가질 수 있게 하나의 저장소에 모든 것을 저장한다.
- 모든 커밋은 중앙 서버에 적용된다.
장점
- 누가 무엇을 하는지 쉽게 판단이 가능하다.
- 관리가 쉽다(서버 VCS하나만 관리하므로)
단점
- 서버 다운 시
- 로컬 데이터 스냅샷이 명확하지 않는다.(복구 어려움)
분산 버전 관리 시스템 (Distributed VCS)

- 협업을 위한 버전 관리 시스템이다.
- 서버와 클라이언트가 존재한다.
- 서버의 모든 데이터를 클라이언트에 복제한다.
- 서버 다운 시 클라이언트 기반 복구 가능
- 저장소를 히스토리와 더불어 전부 복제한다.
- clone은 모든 데이터를 가진 진정한 백업이다.
- 예: Git
분산 버전 관리 시스템 (DVCS) VS 중앙집중식 버전 관리 시스템(CVCS)
+ DVCS은 하나의 팀에서 사용하면 좋고, CVCS는 다른 분야의 팀들과 함께할 때 사용하면 좋다.
✅ Reference. "공부 목적으로 작성한 글이며, 문제 될시 바로 삭제하겠습니다."
◽ 사이트 ◽
버전 관리 시스템과 GIT의 특징 (velog.io)
728x90