프로젝트 관리도구/GIT(형상관리)

형상 관리 도구의 이해

9D4U 2019. 1. 21. 13:50
728x90
반응형


[형상 관리 도구] : 소스 코드나 문서의 버전 관리, 이력 관리, 추적 등 변경 사항을 체계적으로 관리할 수 있는 기능을 제공하는 도구.

     가장 널리 이용되는 도구로는 CVS(Concurrent Versions System), SVN(Subersion), GIT이 대표적이다.


○CVS - 가장 오래된 형상 관리 도구 중 하나로, 중앙 집중형 서버 저장소를 두고 클라이언트가 접속해서 버전 관리를 실행함.

- OS: 윈도우/리눅스

- 실행환경 : CLI(Command Line Interface)

- GUI : TortoiseCVS 등

○SVN

- CVS와 같은 중앙 집중형 클라이언트-서버 방식이지만 CVS의 단점을 보완하여 현재 가장 널리 사용되고 있는 형상 관리 도구임.

- 장점 : gzip을 통합 압축으로 저장 공간 절약, atomic commit으로 커밋 실패 시 롤백 지원, 다양한 써드 파티 GUI 도구 존재

- 단점 : trunk, branch, tag가 모두 물리적인 저장 위치를 점유하므로 비효율적, Git에 비해 branch, tag 작업이 무거움

- OS: 윈도우/리눅스/맥

- 실행환경 : CLI(Command Line Interface)

- GUI : TortoiseSVN, WinSVN 등 

○GIT

- 중앙 집중형 방식이 아닌 분산형 방식(DVCS)으로 각 로컬 PC에 스스로 완전한 저장소가 구성되며, 필요에 따라 중앙 집중형 방식으로도 운영할 수 있음.

- 공개 SW 커뮤니티를 중심으로 많이 확대됨.

- 장점 : 코드 꼬임에 따른 위험 감소(branch 분기 가능), 로컬 저장소가 있으므로 원격 저장소에 장애가 나더라고 쉽게 복구 가능, 

여러 번의 커밋을 로컬 저장소에 실행하고, 모아진 커밋을 원격 저장소에 반영할 수 있으므로 네트워킹 빈도는 줄고 속도는 향상,

Pack 방식의 압축으로 SVN에 비해 저장 공간 절약, 다양한 써드파티 GUI 도구 존재

- 단점 : SVN의 동작 및 기본 개념, 다른 명령어가 있어 혼란 야기, 빈 디렉터리가 저장되지 않음.

- OS: 윈도우/리눅스/맥

- 실행환경 : CLI(Command Line Interface)

- GUI : 번들로 제공 - SourceTree, GitEye, git-cola 등



cf) 범위를 좀 더 키워보자면... 

중앙 집중형 관리(서버/클라이언트) : SVN, CVS, Perforce, ClearCase, TFS

분산 버전 관리(DVCS) : Git, Mercurial, Bitkeeper, Darcs, Bazaar

Folder 공유 타입 : RCS, SCCS

이 있다고 한다.

728x90