Thursday, January 17, 2013

Git, 분산버전관리 시스템

몇일째 Git 을 보고 있다.

CVS 가 오래되었다고 생각 됐을쯤 SVN 을 기웃거렸고, 사람들은 CVS와 SVN으로 두고 이제는 버전관리를 해야지 라는 생각이 점차 많아졌다.


몇년전 누가 "형상관리" 가 뭐냐고 물는데, 옆에 있던 고수 왈... "아... 지금 하시는 모든 것이 형상 관리의 범주에 들어간다고 보시면 됩니다".  

이름만큼이나 형상이란 말이 거시기하지만, 버전의 흐름이 1~3개월의 주기로 바뀌는 경우가 아니라면 툴 적용을 제고해야 한다. 쉽게 말해 툴을 도입이 분산환경이고, 도입으로 얻는 이익도 분명하며 상응하는  관리자가 있어야 한다.

년 전에 웹사이트 보완하는 경우가 있었는데 프로그래머 2명, DBA, 디자이너가 한명 맡았다. 이 경우 선임 프로그래머와 선임 DBA가 있었고, 디자이너 또한 경력이 있어서 별도의 지시가 필요없고 협의와 의사전달만 필요한 상황이었다.  헌데, CVS 를 써보겠다고 선임 프로그래머가 말한다.

사실 전체 프로젝트를 보면 CVS 가 필요없는 상황이었고 그렇다면 SVN이나 Git 도 마찬가지다. 하지만 이력을 보고 Milestone  을 설정한다면 필요한 내용이다.  프로젝트 끝날 지점에  지나가는 말로   CVS인지 SVN인지 중간에 소스 날려먹고 한주 버렸다고 한다. 정말 소스를 버린 눈치는 아니고 다른 프로젝트 기웃거리느라 말아먹은 시간을 변명하는 말이였다.
...
몇개월 아니 6개월이든 1년이든 형상관리가 개발자들 관리하는 용도로 사용된다면 안하느니만 못하다. 개발자들이 수십명이상 모여 있으면 하루에 몇줄 일주일에 얼마분량의 코드가 양산되도록 하려면 개발의 전과정이 완전히 분화되어 있어야 한다. "조엘온소프트웨어"의 엑셀 개발과 같이 기획과 테스터가 다 배치되어 있고 버전관리하는 이가 배치되어 있어야 한다. 누구 말처럼 최소한 버그를 양산한 사람이 다음번 버그를 만들어 내는 사람에 대해 책임을 전가하는 방편이라도 마련되어 있어야 한다.

"Git, 분산버전관리 시스템"에는 책임있는 개발자가 로컬에서 버전관리하고, "공유"를 위해 서버에 올려 놓는다. 이말은 농땡이 치고 소스코드 날짜만 수정해서 넣는 맹랑한 사람들 잡아내는건 시간 문제도 아니다. 책에는 그런 말이 없지만 분명한 통계와 관리가 가능하다. 사실 개발자를 우대해 주는 것은 좋지만 그에게 다른 일을 시킬때는 분명히 고려해야할 사항들이 있다. 해서 안시키는 것이 좋다.

그리고 개발자에게 버전관리를 맏기돼 분명 시작은 개발자가 아니라 관리자가 해야 한다.

No comments:

Pranten

 Pranten