제목은 참 거창하다. 내가 일일이 이렇게 간단한 정보에도 포스트를 작성하는 이유는 나 스스로 알고 있는 내 자신의 치명적 결함 때문이다. 사실 내가 글제주가 있고 한다면, 좀 더 쉽게 나와 같은 어려움을 격는 사람에게 도움을 주겠지만 그렇지 못한게 아쉽기만 하다.
현재 내가 하고있는 SM업무의 특성상 계속되는 편안함 속에서 신입인 내 실력을 형편없어지게 되고, 그저 지금 하는 것만 하게 되는 나태한 모습을 볼까 두렵고, 누구보다 더욱 심하게 그 자세에서 헤어나오기 힘들고, 주저앉게 되는 나 자신을 위해 이것들을 정리해 본다.
SVN에 대해서 뭐라 설명하기는 좀 그렇다. 이미 많은 정보가 있고, 글재주 없는 내가 설명을 한다는것은 매우 위험하기 때문이다.(그저 100중 1을 알고있는데 누군가에게 설명한다는 것은 매우 위험하다고 본다.) 해서 기본적인 정보는 생략하고 WINDOWS기반의 SVN구축 방법을 설명하겠다.
1. SVN 다운받기
2. SVN을 쉽게 사용할 수 있는 툴
CVS를 사용해본 사용자라면 알겠지만, 먼저 사용하기 위해선 '리파지토리 만들기' '리파지토리의 사용자 추가하기' 등의 과정을 거치게 된다. 이것을 어차피 명령어를 이용하면 된다지만 그것은 매우 불편한 일이다. 무엇보다 windows환경이라면 windows환경답게 GUI를 이용하는게 좋지 않을까 ..?
화면에 보이는것이 이 툴의 전부다. 먼저 가장 쉽게 생각해보자. SVN이란 형상관리를 사용한다. 여러 사용자가 하나의 프로젝트에 동시에 접근해 작업을 하게 된다. 만약 진행중 프로젝트가 둘이라면..? SVN을 2개 설치해야할까..? 답은 '말도안된다.'이다. 즉 '저장소 위치'라는 디렉토리 하위에 각각의 '프로젝트별 저장소가 존재'하는 것 이다. 간단하게 수십편의 영화를 하드에 보관하는대 c:\movie 폴더에 전부 떄려박는 바보는 흔치 않을것 이란 얘기다. (당신이 그렇다면 미안하다. 사과한다.)
어플은 참 단순하면서 강력하고 유용하다. 먼저 저장소를 정하고 프로젝트 저장소 경로를 정한 후 '저장소 추가'버튼을 누른다. SVN에 사용할 1개의 프로젝트 경로가 그것으로 완성 된것 이다.
이제 계정이다. 사용자가 접근하게 되면 그냥 아무나 막 사용할 수 있도록 해야할까 ..? 아니다. 따라서 각각 사용자마다 개별적인 계정을 발급 한다. 역시 간단하게 계정과 암호 부분을 기입한 후 '계정 추가/변경'버튼을 선택하면 끝이다.
그렇다면 의문이 있다 .. SVN에 모든 프로젝트는 계정이 공유되는가? 그렇지 않다. SVN은 각각의 저장소(프로젝트저장소)별로 계정을 관리한다. 수십개의 프로젝트를 동시에 진행하는 슈퍼 마초개발자가 있다면 그 계정을 일일이 프로젝트별로 발급해야 하는게 맞다.
여기서 하는 일을 간략히 설명하자면 다음과 같다.
1. 상단의 [저장소 위치]에 SVN저장소를 만든다.
2. 내가 만들고자 하는 프로젝트의 저장소를 중간에 보이는 [저장소 이름]에 기입하고 [저장소 추가]버튼을 누른다.
3. 사용자에 대한 계정을 만들고 [계정 추가/변경]을 선택 한다.
너무 쉽다. 나도 이해했으니 이 글을 보는 모든이가 이해할 것 이다. 만약 이해가 안된다면..? 쩝.. 내 설명이 부족한것이니 댓글 남겨주시길..
3. 외부에서의 접근을 하용하는 툴
이정도 설정이 끝났다면 이제 외부에서 SVN에 접근하기 위한 어플이 필요 하다.
두개의 툴 모두 한국인이 만들었다는 것에 자랑스러움을.. !! Subversion repository root 부분엔 상단의 툴에서 작성한 SVN저장소를 적어주면 된다. 경로를 모르면 옆에 버튼을 눌러 직접 선택을.. 포트는 임의로 정의할 수 있다. 물론 클라이언트는 저 포트를 알아야 한다. 잘 쓰지 않는 포트를 골라 이용하도록 하자. 필자는 생각없이 저렇게 만들었다..
셋팅이 끝나면 Start버튼을 누르자 그럼 이것으로 서버기동은 끝나게 된다.
3. 클라이언트 접근
이제 서버 설정은 끝났다. 이제 사용자가 접근할 수 있는 프로그램을 설치해 보자. 사실 SVN만 설치하고,사용할 수도 있다. 하지만 유용한 어플을 사용하지 않는 다는 것은 생산성면에서 좋지 못하다고 본다. 만약 이런 툴을 사용할 수 없다면..? 그럼 그때 명령어를 찾아봐도 늦지 않다고 본다.
많이 사용하는 클라이언트 툴은 TortoiseSVN를 추천한다. 많이 사용하는 만큼 강력하다.
역시 다음다음으로 설치를 하고, 임의의 폴더를 생성한 후 마우스 오른쪽을 눌러 보자.
SVN Checkout항목과 TortoiseSVN이란 목록이 추가 되었다. 이제 이것으로 SVN에 업로드 하거나 프로젝트를 내려받고 작업할 수 있다. 여기서 의문점이 생긴다. 나같은 자바 개발자는 이클립스에 있는 서브클립스나 서브버시브(?)를 이용하면 되는데 왜 저걸써야 하나 ..?
만약 디자이너와의 협업을 한다면..? 아마도 그럴경우에 유용하지 않나 싶다. 그리고 당연한 얘기지만 코드(혹은 디자인 파일)을 수정하고 커밋을 할때 해당 디렉토리(내려받거나 한 프로젝트, svn으로 같이 사용하는..)에 변경된 파일만 커밋이 일어난다. 필자는 처음에 '혹시 .. 전체다 올리고 그러는건가?!'라는 말도안되는 생각을 했었다. 그래서 실제로 변경해 보니 변경건만 커밋이 일어나게 된다. 너무나 당연하다 --;
이제 여기서 만든 SVN에 파일을 업로드해보자. 내가 올리고자 하는 프로젝트 경로에 마우스 오른쪽을 누르고 SVN Checkout를 선택 한다.
다음과 같은 메뉴가 나온다 필자는 Vitualbox에 WIN2003을 올리고 SVN을 그곳에 설치해 사용한다. 따라서 해당 컴퓨터의 ip를 이용하는데 앞에 프로토콜은 svn://로 시작한다. http://와 ftp://와 같은이치다. 그리고 포트는 임의로 지정한 8989포트를 사용한다. 뒤에 오는 부분은 프로젝트 저장소이다. 필자는 저렇게 만들었다.
아래 checkout directory는 내가 올리고자 하는 프로젝트 경로이다. 이제 OK를 누른다.
이제 계정을 물어본다. 물론 아까 입력한 계정을 이용하자 하단에 보이는 save authentiocation은 무엇인지 설명하지 않겠다. save만 봐도 누구든 알것이니 ..이제 해당 저장소를 체크아웃 햇으니 직접 파일을 올려보자.
뭔가 메뉴가 바뀌지 않았는가 ..? SVN Commit가 생겼다. 파일엔 ? 아이콘이 추가되었다. 커밋을 누르자.
커밋할 파일을 선택 한다 코맨트도 달수 있다. 이제 OK를 누른다.
성공적으로 업데이트가 되었다. 만약 이클립스를 사용하지 않는데 이용하려면 이렇게 코드를 변경한 후 디렉토리에서 커밋을 하게 되면 내가 수정한 코드만 선택되게 되고 코드를 선택해 커밋할 수 있다.
이제 혼자하는 프로젝트라도 리파지토리를 이용한 형상관리를 이용해보자. 보다 나은 프로젝트가 될 것 이다 !!
호~ 유용한 팁이군요. 감사합니다!!