일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- binary search
- Hash
- 그래프
- Trie
- union find
- SQL
- MYSQL
- 이진탐색
- DP
- Stored Procedure
- two pointer
- Dijkstra
- Two Points
- Brute Force
- String
- 다익스트라
- 스토어드 프로시저
Archives
- Today
- Total
codingfarm
버전 관리 시스템(VCS; Version Control System) 본문
버전관리란?
- 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