👨🏻‍💻 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)

CVCS 방식

  • 서버와 클라이언트가 존재한다.
  • 서버 데이터를 받아 사용한다. 
  • 예: CVS(Concurrent Version System), Subversion, Perforce(p4v)
  • 중앙 집중형으로 모든 개발자가 최신 버전을 가질 수 있게 하나의 저장소에 모든 것을 저장한다.
  • 모든 커밋은 중앙 서버에 적용된다.

장점

  1. 누가 무엇을 하는지 쉽게 판단이 가능하다. 
  2. 관리가 쉽다(서버 VCS하나만 관리하므로) 

단점 

  1. 서버 다운 시 
  2. 로컬 데이터 스냅샷이 명확하지 않는다.(복구 어려움)

 

분산 버전 관리 시스템 (Distributed VCS)

  • 협업을 위한 버전 관리 시스템이다. 
  • 서버와 클라이언트가 존재한다. 
  • 서버의 모든 데이터를 클라이언트에 복제한다.
  • 서버 다운 시 클라이언트 기반 복구 가능
  • 저장소를 히스토리와 더불어 전부 복제한다. 
  • clone은 모든 데이터를 가진 진정한 백업이다. 
  • 예: Git

 

분산 버전 관리 시스템 (DVCS) VS 중앙집중식 버전 관리 시스템(CVCS) 

+ DVCS은 하나의 팀에서 사용하면 좋고, CVCS는 다른 분야의 팀들과 함께할 때 사용하면 좋다.

 

✅  Reference. "공부 목적으로 작성한 글이며, 문제 될시 바로 삭제하겠습니다."
◽ 사이트 ◽ 
버전 관리 시스템과 GIT의 특징 (velog.io)
728x90