버전관리의 필요성을 깨닫다

얼마전에 웹로봇을 변환한 뉴스수집기를 만든적이 있었는데 작업후 작업 PC를 포멧한답시고 소스코드를 날려버린적이 있었다.

그 뉴스수집기를 업데이트를 해야되는데 참 많은 고생을 한 기억이 있다.
그래서 미루고 미뤄오던 소스코드 버전관리를 시작하였다.

솔직한 고백을 하자면 소스코드 버전관리는 여러사람이 공통코드를 가지고 작업할때 충돌을 방지하기 위해 사용하는거라는 생각으로 나처럼 특정 모듈을 혼자 개발하고 테스트 하고 업데이트 하는 경우에는 별루 필요하지 않을거라는 자기 위안을 하고 지네온게 사실이다. 그러다 프로그램이 여러 브렌치(branch)를 가지게 되고 하다보니 이 프로그램의 여러 버전에 관해서 컨트롤을 할 필요성을 느끼게 되었고 결정적으로 소스코드를 날려먹음으로서 관리를 하기 시작하였다.
결국 잘못을 저질러 놓고 관리를 하게되었으니 나도 참 바보같다.

전에 CVS를 잠깐 사용한 경험이 있어서, 이번에는 Subversion을 사용하기로 했다. 뭐 CVS보다 좋다고는 말씀을 많이 하시는데 아직 경험부족으로 이게 왜 좋은지는 모르겠고 차차 쓰다보면 그 고마움을 알게 될것이다라는 생각으로 SVN서버 설치하고, TortoiseSVN을 클라이언트에 설치했다.
물론 이 설치나 사용과정에 대해서 모두 인터넷을 찾아보고 해본건 아니였다. 요즘 강컴에서 상위에 랭크되어 있는 “서브버전을 이용한 실용적인 버전 관리“라는 책을 이용해서 수행했다.

살짝 찍어봤다.

내가 만들었던 형태소 분석기, 웹로봇, UrlServer, 검색 Admin Tool, 사전파일 및 사전생성스크립트, 개인정보스케너 등등 소스코드를 모조리 저장소(repository)에 넣어두었다. 물론 소스코드보안에도 신경을 써야겠다.

큭~! 오전 내내 관리환경 만드느라 재미있었다.

0 0 votes
Article Rating
Subscribe
Notify of
guest

3 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
싸이오블레이드

정말 중요하지요 ^^; 저도 예전에 한번 그런 경험이 있어 반드시 백업을 해둔답니다. 그리고 CVS 나 서브버전 소스세이프 이런 도구가 있다고 하더라도 반드시 해당 시점의 백업이 제일 중요합니다. 즉 매일 check-in 을 일정하게 계속 하고 백업을 주기적으로 한다는 전제가 있어야 한다는 말입니다.
하지만 개인이 매일 그럴 필요는 없겠죠 그래서 저는 해당 로컬의 파일들을 폴더째로 주기적으로 한번씩 압축을 해두는 방법을 사용합니다.
소스관리도구가 만능은 아닌듯… 하지만 반드시 사용할 가치는 있다고 봅니다.

고감자

저두 싸이오블레이드님처럼 압축으로 저장을 했었습니다.
진짜 소스코드 버전관리라는건 Branch를 만듦으로서 빛을 발휘하지 않을까 합니다. 특히나 커스터마이징이 많은 어플일수록 더욱 필요한 부분이죠.
소스코드 압축해서 웹디스크에 올리는일도 힘들고 예전코드와 현재 코드비교및 merge작업시 서브버전이 빛을 분명히 발휘할것이라 믿어의심치 않습니다.

권남

소스 버전 컨트롤 시스템에는, 각 릴리즈별로 표시해서 해당 릴리즈로 복귀하는 기능이 있습니다.
즉, 운영과 개발을 병행하는 프로젝트에서 10일전에 운영서버에 올리고, 그것에 대해 버전을 매겨두고, 어제 운영서버에 수정사항을 반영했는데, 문제가 발생했다. 그럴때 바로 10일전 것으로 무조건 돌아가고 싶을 때… 소스 버전관리시스템을 이용하면 가능합니다.

굳이 운영 소스를 날짜별로 백업할 필요는 없습니다.

그냥, 소스버전관리시스템 자체를 항상 백업만 해둚으로써 모든것이 해결됩니다.