1. SVN 에서 GIT 으로 이주하도록
설득하기 거의 다 왔다니깐
요..;;;
야 이거
잘하는 짓이냐
2. GIT이 좋은건 써본사람만 안다.
이것 참 좋은데 딱히 설명하기가 힘들다.
자 그러면 GIT이 왜 좋은지에 대한 주장을
뒷받침해 보자
주의 : 이 슬라리드는 튜토리얼이 아니니 시간낭비가 될 수도 있음
3. GIT은 매우 빠르다. 이 장점 만으로도 개발 속도가 빨라지는 것을 체감할 수 있다. 기본적으로 소스코드 형상 기억을 위한 정
보 DB가 차지하는 용량이 적기 때문이다. 특히 백만 라인 단위로 넘어가는 덩치 큰 코드에서 그 차이는 극명해 진다. branch
가 많아질 수록 변경된 내용만 저장하므로 공간(스토리지) 절약이 뛰어나다. SVN은 모든 branch를 전부 checkout 해야 하며
branch 갯수 만큼 공간을 차지한다. Subversion과 Subversion 비슷한 놈들과 Git의 가장 큰 차이점은 데이터를 다루는 방법
에 있다. 큰 틀에서 봤을 때 VCS 시스템 대부분은 관리하는 정보가 파일들의 목록이다. CVS, Subversion, Perforce, Bazaar
등의 시스템은 각 파일의 변화를 시간순으로 관리하면서 파일들의 집합을 관리한다. Git은 데이터를 파일 시스템 스냅샷으로
취급하고 크기가 아주 작다. Git은 커밋하거나 프로젝트의 상태를 저장할 때마다 파일이 존재하는 그 순간을 중요하게 여긴
다. 파일이 달라지지 않았으면 Git은 성능을 위해서 파일을 새로 저장하지 않는다. 단지 이전 상태의 파일에 대한 링크만 저장
한다. Git은 데이터를 스냅샷의 스트림처럼 취급한다.
다 필요 없고 기업에서 가장 큰 모티브가 되는 건 돈이다
개발 속도를 향상 시킬 수 있다는 사실을 강조하며 의사 결정권자의 관심을 사로
잡아라
실제로 빌드 서버에 브랜치는 늘어나는데 SSD 하나 구매하는데 정당성 확보하
기 쉽지 않은 게 회사이다 (어디 회삿돈 쓰는게 쉬운가)
비용 절감
4. 정신 건강
로컬 저장소에서 혼자 놀 수 있다.
나만의 공간에서 commit 하고 roll back 하고 log 정리하고 마음대로 이력 관리를
할 수 있다
SVN에서 이력 관리를 위해 항상 서버에 코드를 동기화 시켜야 하는 것과는 엄청난
차이다.
왜 commit을 하고 또 push를 해야 하냐고 묻는 동료가 있다면, 이상한 커밋 쌓는
다고 팀장한테 쪼인트 까였던 기억력을 되살려주자
5. 생산성
branch와 merge에 시간 낭비를 하다 지친 동
료들에게
tag 등을 이용해 손쉽게 브랜치와 커밋을 넘나
들고 submodule(외부 라이브러리) 마저 버전
별로 한번에 넘나 드는 것을 보여주자
하지만 핵심은 생산성이 올라간 만큼 야근을 줄
일 수 있다는 헛된 희망을 심어주는 것을 잊지
말자
신혼이거나 아이가 있는 개발자들을 설득하기
에 좋다
판교의 야경은 언제
나 아름답다
6. 무한한 가능성
이미 전 세계적인 수많은 선도적 기업들과 오픈 소스 프로젝트들이 이미 GIT으
로 갈아 탔다
북미로 부터 시작된 돌풍은 남미, 유럽, 심지어 아프리카와 인도를 거쳐 이제야
동아시아에 GIT이 전파되기 시작했다
무한한 가능성이 느껴지지 않는가?
세계화에 발맞춰 글로벌 인재를 향한 필수 조건임을 강조하고 태평양 건너 산호
세 어딘가에 당신의 일자리가 있을지도 모른다고 핑크빛 환상을 심어주자
7. 롤 모델
리눅스 커널을 관리할 때 사용하던 상용 툴인
BitKeeper 와의 관계가 틀어져서 리누스 토발
즈의 주도로 GIT이 만들어졌다는 사실을 아는
사람이 의외로 없다.
그의 네임 벨류 만으로도 그를 선망하는 순진한
초급 개발자들의 마음을 사로잡을 수 있다.
수많은 구루(GURU)들이 GIT을 사용하는 데에
는 다 이유가 있다고 홀리자
8. GIT이 편하다는 것은 너무나 당연한 사실이다.
기업 입장에서는 비용, 개발 효율성, 생산성만 놓고 보아도 GIT으로 옮기는 것이 여
러 모로 도움이 된다.
전 세계의 수많은 오픈 소스 프로젝트들이 GIT으로 옮겨 가고 있는 추세이고, 협업
과 커뮤니케이션을 중시하는 개발 문화를 위해서도 GIT에 익숙해 지는 것이 개인에
게도 향후 경력 관리에 도움이 된다.
여전히 기술들이 발전하고 있기 때문에 과거 SVN을 위한 툴들과는 비교도 되지 않
을 정도로 편리한 개발 환경들을 사용할 수 있다
마치며
9. 회사에서 SVN을 GIT으로 이전하는 작업을 맡았고, 팀원들에게도 GIT을 사용
하도록 설득하고 있지만 가장 큰 장벽은 이전할 때 드는 비용도, 기술적 난이도
가 높아서도 아니고
‘새로운 것을 배우는 것에 대한 두려움’ 그리고
‘눈앞의 업무’ 였다 ㅠㅠ
모든 변화에는 어려움이 따르는 것은 당연하다.
모든 저장소를 GIT으로 반드시 옮겨야 할 필요도 없다.(오래된 프로젝트 등)
하지만 항상 변화를 즐겁게 받아들이는 마음가짐과 결단력이
즐거운 개발자로서의 삶을 위해 중요하지 않을까?