본문 바로가기

DEV LOGS

[GIT] 버전관리시스템

버전 관리 시스템이란?

파일이나 파일 묶음의 버전을 정기적으로 기록해두었다가 나중에 파일의 특정 버전을 요청받았을 때 되돌릴 수 있는 능력을 가진 시스템


버전 관리 시스템이 필요한 이유

- 문서에서 발생하는 변화의 흐름을 제어할 수 있다.

- 언제나 현재 콘텐츠의 변동 사항들을 태그와 스테이지로서 표시해뒀다가 되돌릴 수 있다.



버전 관리 시스템의 종류

(1) 로컬 버전 관리 시스템 (Local version control system)

- 버전 추적기 안에 특별한 형태의 패치 세트들을 하드디스크에 저장하는 것이다.

- 리비전 관리 시스템(RCS, Revision control system)에 추가할 때 버전 추적기를 만든 후에 RCS 구성과 버전 번호, 날짜, 시간 등과 링크 등의 세부 사항을 정해진 형식으로 기록해두고 체크아웃 하는 방식으로 사용자의 작업 공간에 콘텐츠를 재구성 하는 것이다.


(2) 중앙 집중형 버전 관리 시스템 (Centralized version control system)

- 로컬 버전 관리 시스템으로는 사람들이 동일한 프로젝트에서 협업하기 힘든 점을 보안하여 나온 버전 관리 시스템이다.

- 각자의 로컬 장치(클라이언트)에서 접근 가능한 공통된 공간(서버)에 파일을 유지하는 방법이다.


(3) 분산 버전 관리 시스템 (Distributed version control system)

- 중앙 집중형 버전 관리 시스템은 많은 사용자가 소수의 파일을 동시에 사용을 시도하면서 서버에 문제가 발생할 수 있고, 이를 해소할 안정장치가 없다면 전체이력을 완전히 읽어버릴지도 모를 위험에 놓일 수 있는 문제를 보안하여 등장한 것이 분산 버전 관리 시스템이다.

- 즉, 분산 버저 관리 시스템은 로컬 버전 관리 시스템과 중앙 집중형 버전 관리 시스템의 장점들을 조합해 만든 하이브리드 시스템이다.

- 서버와 지속적으로 연결돼 있는 상태를 유지하지 않더라도 로컬에 변경 사항을 기록한다. ( 로컬 버전 관리 시스템의 장점 )

- 서버에 저장돼 있는 파일들에 의존적이지 않다. ( 로컬 버전 관리 시스템의 장점 )

- 작업을 재사용할 수 있다. ( 중앙 집중형 버전 관리 시스템의 장점 )

- 협업 시 각기 다른 기기에 저장된 이력에 의존적이지 않다.  ( 중앙 집중형 버전 관리 시스템의 장점 )


깃(GIT, 분산 버전 관리 시스템)의 장점

- 원자성 : 호출과 응답 사이에 발생하는 단일 인스턴트로 작업하는 속성 ( 무손실 보장 )

- 성능 : 다른 시스템( CVS, Subversion, Perforce, Bazaar 등 )에 비해 빠르다. 

- 보안성 : 모든 데이터를 정장하기에 앞서 SHA-1 해시를 이용해 체크섬을 만들어 데이터를 관리한다.





참고문헌


라비샨카 소마순다람,  『Git을 이용한 버전 관리』, 김지헌 옮김, 에이콘 (2014-04-15 초판발행)


'DEV LOGS' 카테고리의 다른 글

[Windows Socket]TCP/IP 프로토콜 구조  (0) 2018.07.19
[GIT]윈도우 10 Git 설치  (0) 2018.07.18
[MSSQL] 트리거  (0) 2018.07.17
[MSSQL]트리거 사용시 임시 테이블  (0) 2018.07.17
[MSSQL] DROP TABLE VS TRUNCATE TABLE VS DELETE 문  (0) 2018.07.17