Git Git 의 장점과 단점

황제낙엽 2016.05.12 16:30 조회 수 : 191

sitelink1 http://blog.naver.com/special9486/220197084141 
sitelink2  
sitelink3  

SVN에서 GIT으로의 전환을 부담스러워 하시는 분들이 있으신 듯 하여 GIT의 장점을 알아보도록 하겠습니다.

내용은 "성공으로 이끄는 팀개발 실천 기술"이라는 책에사 발췌하였습니다.

 

2014년 현재 버전 관리 시스템의 가장 진화된 모델이라 할 수 있는 분산 버전 관리 시스템(GIT)이 가진 장점으로 다음 다섯 가지를 들 수 있습니다.

 

  • Repository의 완전한 복사본을 로컬 장비에 둘 수 있다.
    - 이것이 중앙 집약형 버전 관리 스스템과 크게 다른 점입니다. 이후에 다룰 장점의 대부분이 이 특징을 기반으로 하고 있습니다.
     
  • 처리 속도가 빠르다.
    - 모든 파일이 로컬 장비에 있으므로 통신에 따른 부하가 없고, 커밋, 브랜치, 머지등 모든 처리가 빠른 것이 큰 장점입니다. 
    물론 프로젝트에서 중앙 Repository가 없는건 아니지만 소스 수정하는 과정에서 단위별로 로컬에서 커밋하고 기능단위로 중앙 Repository에 Push한다면
    실제 네트워크 연동 구간이 줄어들게 되니 중앙 Repository가 있다고 하더라도 속도에 이점은 있습니다. 
     
  • 일시적인 작업에 대한 이력 관리가 쉽다.
    - 중앙 집약형 버전 관리 스스템과 달리 전체에 영향을 주지 않고 로컬 장비에서 커밋하는 것이 가능합니다. 따라서 일시적인 작업을 저장하기 수월해서 
    개발 효율도 오릅니다. 또한, 테스트 개발 시에도 전체 영향을 고려하지 않고 손쉽게 사용할 수 있는것이 큰 장점입니다.
     
  • 브랜치, 머지가 쉽다.
    - 브랜치를 쉽고 빠르게 작성할 수 있어서 개발 속도 향상과 다양한 기술을 쉽게 적용할 수 있다는 점이 큰 장점입니다.
     
  • 장소에 구애받지 않고 협업이 가능하다.
    - 이 장점은 사실 사무실에서 대부분 작업하는 구조에서는 체감하기 어려운 장점이긴 합니다만, Repository가 로컬 장비에 있다보니 네트워크 환경을 구축하기
    어려운 곳에서도 소스 형상관리가 가능하기 때문에 이동이 많으신 분들에게나 큰 장점이라고 볼 수 있습니다. 

 

 

장점이 있으면 단점도 있겠죠. 실무에서는 실제 중앙 Repository를 두고 작업을 진행하게 되기 때문에 중앙 Repository가 없을때의 혼란이나 최신 버전에 대한 정의와 같은 단점들은 제외 하기로 하겠습니다. 

제가 느끼는 가장 큰 단점은 "개념에 익숙해지기까지 시간이 걸린다" 입니다.

분산 버전 관리 시스템을 사용하기 위해서는 이전까지 익숙했던 중앙 집약형 버전 관리 시스템으로부터 큰 패러다임 변환을 가져야 합니다.

CVS나 Subversion, VSS, Perforce 등 어느 것과도 구조가 닮지 않아서, 이전까지의 버전 관리 시스템에 익숙한 사람일수록 분산 버전 관리 시스템 도입에 대한 장벽이 높을 수 있습니다.

번호 제목 글쓴이 날짜 조회 수
35 [Review] gitflow, 쉬운 git branch 관리 By 개발왕 김코딩 on 2월 11, 2014 in 개발 이야기 file 황제낙엽 2016.05.18 57
34 [TortoiseGit] 윈도우에서 깃(Git)을 좀더 편리하게 사용하기 file 황제낙엽 2016.05.17 103
33 윈도우에서 깃(git) 서버 설치하기 file 황제낙엽 2016.05.17 404
32 [TortoiseGit] 깃(Git) 브랜치 머지(Merge)하기 file 황제낙엽 2016.05.17 157
31 [TortoiseGit] 깃(Git)으로 브랜치/태그 만들기 file 황제낙엽 2016.05.17 142
30 Pro Git Book 다운로드 file 황제낙엽 2016.05.17 123
29 Git, 정말 필요한가 file 황제낙엽 2016.05.12 68
28 GIT/ 프로젝트, 폴더, 파일 관리 프로그램 장점 및 추천 (TortoiseGit) file 황제낙엽 2016.05.12 131
27 Git 의 기능 및 장점 황제낙엽 2016.05.12 56
26 Git 의 개념과 기초 사용법 file 황제낙엽 2016.05.12 72
25 Git 과 svn 비교 - svn 대비 git의 차별점 file 황제낙엽 2016.05.12 107
24 Git에 대한 단상 황제낙엽 2016.05.12 24
» Git 의 장점과 단점 황제낙엽 2016.05.12 191
22 Git 의 기능 및 장점 황제낙엽 2016.05.12 23
21 TortoiseSVN 잠그기 (Get lock) file 황제낙엽 2016.02.04 65
20 VisualSVN Server 와 TortoiseSVN 관련 링크 모음 file 황제낙엽 2016.02.03 115
19 Win7 64bit에서 subclipse 1.6.x 사용 시 javahl 버전 에러 황제낙엽 2013.03.02 44
18 Versioning 에 대한 참고 사항 황제낙엽 2012.08.28 62
17 SVN 사용시 revision 번호로 버전관리하는 방법 황제낙엽 2012.08.28 586
16 How do I get JavaHL? 황제낙엽 2010.09.28 51