Egloos | Log-in


모 동인 프로젝트에 참여한 후 느낀점

저와 친분이 있는 분들은 알고 계실테지만, 근래 수개월동안 모 동인 게임의 프로젝트에 서브 프로그래머로 참여했습니다. 서브 프로그래머라고는 해도 게임 엔진 자체에는 거의 관여하지 않고 툴 제작을 주로 했습니다.

제 스스로 프로그래머라고 칭하고는 있지만, 사실 이렇게 수개월간 진행되는 프로젝트에 참여해본 것은 이번이 처음입니다. 그전까지는 주로 개인적으로 사용할 몇가지 작은 프로그램을 만들었고, 회사에 있을 때도 신규 프로젝트를 시작하려는 찰라에 회사를 나와버렸지요. 어쨌든 이렇게 한 프로젝트에 참여해서(도중 참가였지만요...) 끝을 봤다는 것으로도 좋은 경험이 되었다고 생각합니다.

그리고, 아울러서 이번 프로젝트를 통해 나름대로 절실하게 느낀게 몇가지 있는데, 그중 하나를 꼽자면...

   "아무리 소규모의 프로젝트라도 버전관리 시스템은 필수다"

라는 것입니다.

사실, 둘 이상의 프로그래머가 공동으로 작업을 해야 한다면 버전관리 시스템을 반드시 운용해야 합니다. 설령 혼자서 작업하더라도 혼자서 감당하기에는 조금 벅찰 정도의 규모일 경우에도 버전관리 시스템을 꼭 사용해야 하겠습니다.

전에 있던 회사에서 그나마 좋은 인상을 받았던 점이라면, CVS(대표적인 버전관리 시스템 중 하나)를 적극 활용하고 있다는 거였습니다. 버전관리 없이 진행된 이번 프로젝트의 경우에 있어서 소스 통합에 있어서 애로사항이 많았습니다. 특히 B가 수정한 코드가 A의 코드에는 반영이 안되어 있는 등의 문제가 심심치 않게 발생했습니다.

이번 프로젝트에서 프로그래머는 저를 포함해서 세명이 있었는데, 물론 각자 맡은 분야는 정해져 있었지만 그렇다고 다른 프로그래머의 코드를 전혀 참조하지 않는 것도 아니기 때문에, 사실은 다른 프로그래머가 작업한 소스 코드도 확인해서 최신의 상태로 유지해야 할 필요가 있었습니다. 버전관리 시스템을 운영하고 있다면 이런 문제는 간단히 해결되었을 터이지만, 누군가가 직접 수정된 소스를 배포해 주기 전까지는 그냥 낡은 버전의 코드를 계속 유지하게 되어 버린 것이죠. 지금 생각해 보면, 뒤늦게라도 버전관리 시스템을 도입해야 했습니다.

버전관리 시스템을 쓰게 되면, 언제든지 다른 프로그래머가 작성한 최신의 코드 상태를 확인 할 수 있고, 소스가 어느 부분이 어떻게 변경되었는 가에 대한 내력도 확일 할 수 있으며, 최신의 코드에 문제가 생길 경우에는 이전 버전의 코드로 되돌릴 수도 있습니다.

이제 버전관리는 선택이 아니라 필수라고 생각합니다. 처음 CVS를 써봤을 때는 "이런게 있으니 제법 편하다" 라는 정도의 느낌이었지만, 지금은 "이거 없이 프로젝트를 진행하는 건 미친짓이다" 가 됐습니다.

이번 일을 계기로, 다음에 진행할 프로젝트에서는 CVS의 도입을 추진하고 있습니다. PC한대에 직접 CVS 서버를 설치해서 운영할 생각입니다. 그래서 CVS 서버의 Windows 버전인 cvsnt 를 받아서 설치해 봤는데, CVS 서버 설정은 처음 해보는 거라 처음에 조금 삽질을 했지만, 요령을 알고나니 별로 어렵지는 않군요.

by 시즈하 | 2007/08/26 03:17 | Free Talk | 트랙백 | 덧글(12)

트랙백 주소 : http://Sizuha.egloos.com/tb/3355753
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by 세이렌 at 2007/08/26 03:44
요령만 안다고해서 어렵지 않은건 아니던...(...)
Commented by lain at 2007/08/26 09:49
요즘은 CVS보다는 SVN이 괜찮더군요.
양 쪽 다 써봤는데.. SVN이 CVS에 비해 무겁다는 거 빼곤 거의 대부분 CVS 보다 편했습니다.
Commented by 시즈하 at 2007/08/26 10:20
subversion이 더 좋다고는 들었지만, Windows 버전의 서버는 없는 듯 해서요.
지금 리눅스 서버를 운영할 수 있는 형편이 아니라서...
Commented by 냐모 at 2007/08/26 11:54
CVS에 대한 책을 보면 첫 머리에 이런말이 있죠.
'CVS를 사용하지 않는 개발은 delete 와 undo 가 없는 워드 프로세스를 사용하는 거와 같다고'

전 혼자 개발하더라도 꼭 CVS 를 사용합니다.
소스 변경에 대한 내용을 추적하기도 편하거든요.
Commented by TohnoLyn at 2007/08/26 12:56
아직 취직을 안해서 항상 혼자만들다보니... 아직까진 써보질 못했네요

Local 에서의 버젼관리는 델파이가 알아서 해주니 ㅡ.ㅡ
Commented by lain at 2007/08/26 15:16
윈도우에서도 돌아갑니다....
Commented by 시즈하 at 2007/08/26 23:54
to. lain 님

Windows 버전의 SVN 서버를 찾았습니다(...)
클라이언트만 있는 줄 알았는데, 제가 착각했네요.
Commented by TohnoLyn at 2007/08/27 01:29
시즈하님 // SVN 서버 윈도우용 링크좀 알려주실수 있으신가요?
Commented by 시즈하 at 2007/08/27 11:04
http://subversion.tigris.org/

여기서 받을 수 있습니다.
Commented by 디지츠 at 2007/08/27 15:13
http://tortoiseSVN.tigris.org
http://ankhSVN.tigris.org
등등도 추천합니다 ^^

참고로 tortoise는 CVS용도 존재합니다.
Commented by lain at 2007/08/27 22:26
ankh + tortoise 이 조합이 막강하죠.
회사에선 Push OK + tortoise로 사용중인데 PushOK가 상용이라 -_ㅜ
Commented by 클랴 at 2007/08/30 17:00
저도 CVS 보다는 SVN을 추천합니다.
SVN을 쓰다보면 Diff / Merge 툴도 좋은게 필요한데 ... Araxis Merge가 좋지만 상용이라서, AcroEdit에 들어있는 AcroDiff를 쓰기도 합니다.

덧붙여서, 저는 (집에서) 혼자 하는 코딩도 SVN 씁니다. svn 서버와 클라이언트를 걍 메인 pc에 설치해 버렸죠. 자주 Commit 해주면 예전에 뭘 수정했는지 History가 쫘악~ 나오니까 엄청 편리합니다.

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶