Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

codingfarm

버전 관리 시스템(VCS; Version Control System) 본문

버전관리/git

버전 관리 시스템(VCS; Version Control System)

scarecrow1992 2020. 10. 18. 22:44

버전관리란?

  • VCS는 파일변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템이다.
  • VCS를 사용하면 각 파일을 이전상태로 되돌릴 수 있고, 프로젝트를 통째로 이전상태로 되돌릴 수 있다.
  • 시간에 따라 수정내용을 비교해 볼 수 있다.
  • 수정자의 정보가 남아, 누가 문제를 일으켰는지 볼 수 있다.
  • 누가 만든 이슈인지 볼 수 있다.
  • 소프트웨어 소스코드를 넘어서서 모든 컴퓨터 파일의 버전을 관리할 수 있다.
  • 그래픽 디자이너나 웹 디자이너도 VCS를 사용할 수 있다.

VCS를 쓰면 위와같은 장점들을 큰 노력없이 이용할 수 있다.

 

로컬 버전 관리

  • 버전관리를 위한 제일 원시적인 방법은 디렉토리로 파일들을 통째로 복사하는것이다.
  • 이는 간편하면서도 매우 확실하다. 하지만 작업하던 디렉토리를 지워버리거나, 파일을 잘못고칠수도, 잘못 복사할수도 있다.
  • 그리고 수정날짜, 수정자, 수정위치등을 모두 수작업으로 하나하나 기록하기란 여간 쉬운일이 아닐것이다.
  • 이런 문제점들을 해결하기 위해 DB를 사용하여 파일의 변경정보를 관리하는 로컬 VCS가 존재한다.

  • 대표적인 VCS 프로그램으로 RCS(Revision Control System)이 있다.
    • RCS는 기본적으로 Patch Set을 관리한다.
    • Patch Set은 특별한 형식의 파일로 저장한다.
    • 일련의 Patch Set을 적용해서 모든 파일을 특정 시점으로 되돌릴 수 있다.

 

 

중앙집중식 버전 관리(CVCS)

  • 다른개발자들과 함께 작업해야하는 경우 쓰인다.
  • CVS, Subversion, Perforce같은 시스템은 파일을 관리하는 서버가 별도로 있다.
  • 클라이언트가 중앙 서버에서 파일을 받아 사용(Checkout)한다.
  • 모든 클라이언트의 로컬 DB를 관리하는것 보다 VCS하나를 관리하기가 훨씬 쉽다.

 

CVCS의 결점

  • 서버가 다운되면 그동안 다른사람들과의 협업이 불가능해지고, 백업도 할 수 없다.
  • 중앙서버의 하드디스크에 문제가 생기면 프로젝트의 모든 히스토리를 잃는다.

 

분산 버전 관리 시스템(DVCS)

  • Git, Mecurial, Bazaar, Darcs 등이 있다.
  • DVCS에서는 단순히 파일의 마지막 스냅샷을 Checkout하지 않는다.
  • 그냥 저장소를 전부 복제한다.
  • 서버에 문제가 생기면 이 복제물로 다시 작업을 시작할 수 있다.
  • 클라이언트 중 아무거나 골라도 서버를 복원할 수 있다.
  • 모든 Checkout은 모든 데이터를 가진 진정한 백업이다.
    • 대부분의 DVCS 환경에서는 리모트 저장소가 존재한다. 리모트 저장소가 많을 수도 있다.
    • 그래서 사람들은 동시에 다양한 그룹들과 다양한 방법으로 협업할 수 있다.
  • 계층 모델 같은 중앙집중식 시스템으로는 할 수 없는 워크플로를 다양하게 사용할 수 있다.

 

 

 

 

 

'버전관리 > git' 카테고리의 다른 글

Git으로 파일 관리하기  (0) 2020.10.31
Git 저장소 만들기  (0) 2020.10.20
Git 설치 및 설정  (0) 2020.10.20
Git 기초  (0) 2020.10.18
Comments