안녕하세요. 달빛연구자 입니다.
이번 글 에서는 Google 에서 제공하는 SVN을 사용하는 방법을 이야기 해 보려고 합니다.
1. SVN (Subversion) 이란 무엇인가?
SVN은 형상관리시스템(SCM)의 한 종류입니다.
Open Source 프로젝트로 개발되었으며, 주로 소스코드의 버전관리기능을 제공합니다.
버전관리에 대하여 정말 간단하게 설명을 드리자면 이러한 개념입니다.
만약 제가 Hello, World 라는 c 프로그램을 짜서 저장을 하였습니다.
이것을 version1이라고 저장 할 수 있겠죠?..
후에 어떠한 사정으로 인하여, 이 프로그램을 Hello, You! 라는 문구를 출력하도록 프로그램을 바꾼 뒤 다시 다른 이름으로 저장을 하였습니다.
이것을 Version2라고 할 수 있을 것 입니다.
그런데, 이 프로그램에서 무언가 문제가 있어서 코드를 수정하고 다시 저장하였습니다.
이것을 Version3이라고 할 수 있을 것 같습니다.
이와 같이 소스코드의 수정 이력을 저장하고 관리해 주는 역할을 SVN이 해 주게 됩니다.
SVN은 혼자서 작업을 할 때도 유용하게 쓰이지만, 여러 사람이 함께 프로그램을 짤 때에 특히 강력한 힘을 발휘합니다. 따라서 공동작업을 하는 대부분의 프로그래머들은 SVN과 같은 형상관리툴을 거의 필수적으로 사용한다고 볼 수 있습니다. (물론 버전별로 압축해서 ftp에 밀어 넣는다거나 하는 회사도 있다고 합니다만...)
2. SVN Hosting 이란?
SVN의 소스코드는 인터넷에 공개되어 있기 때문에 누구나, 쉽게 프로그램을 다운받아 서버를 구축하거나 레파지스터리를 생성할 수 있습니다.
따라서 개발 서버를 운영하는 기업이나, 로컬에서만 작업하는 개인 프로그래머는 스스로 SVN 서버를 구축하여 사용하면 됩니다.
그러나 공동작업을 통해 프로젝트를 해야 하는 학생이나, 자신의 소스코드를 불특정 다수에게 공개하여 Open Source 프로젝트로 진행하고자 하는 사람들이 모두 자신의 개인 서버를 만들어 SVN 서비스를 제공할 수는 없는 노릇입니다.
그래서 이때 유용한 것이 SVN 호스팅 서비스 입니다. 서버를 유지하고 있는 업체에서, 개인에게 SVN 계정을 주어 사용할 수 있도록 하는 서비스입니다.
OpenSource쪽에서는 Source Forge와 GitHub이 유명합니다만, 국내의 Naver에서도 svn서비스를 운영하고 있으며, 우리가 잘 아는 google에서도 운영을 하고 있습니다.
이번 글에서는 google에서 제공하는 서비스를 사용하는 방법을 살펴보고자 합니다.
3. 프로젝트 생성
google에 로그인 한 상태에서 아래의 주소에 접속합니다.
이후 좌측 하단의 빨간 네모가 쳐 있는 링크로 접속 합니다.
새로운 프로젝트를 생성하는 창 입니다. 빈 칸을 채우고 아래의 Create Project 버튼을 누르면, 프로젝트가 생성됩니다.
프로젝트가 생성된 후 Source 탭으로 이동하면 아래와 같은 화면이 나오는데요.
첫번째 사각형의 명령어는 소스코드를 커밋하고 수정하는 사람들에게 필요한 커맨드 입니다.
두번째 사각형의 명령어는 소스코드를 받아가기만 할 사람들에게 필요한 커맨드 입니다.
즉 첫번째 커맨드를 통해 코드를 수정하고 작성한 뒤 두번째 커맨드를 사람들에게 배포하면 해당 코드를 받아갈 수 있는 것 입니다.
그러나 SVN을 사용하기 위해서는 SVN프로그램을 설치해야 합니다.
가장 아래쪽 사각형의 링크를 클릭합니다.
운영체제에 따른 여러 종류의 SVN 프로그램이 공개되어 있는데요.
Linux 에서의 SVN사용법은 이미 자료가 많은 관계로 윈도우를 예제로 진행하여 보겠습니다.
아래 빨간 사각형의 SlikSVN 의 링크를 클릭합니다.
역시 아래 빨간 사각형에서 자신의 컴퓨터에 맞는 버전을 선택하여 설치합니다.
설치를 마치고 나면 윈도우의 cmd에서 리눅스의 SVN과 유사한 커맨드로 SVN 기능을 사용할 수 있습니다.
커맨드 창을 열어 svn 이라는 커맨드를 입력했을 때 아래와 같은 오류가 나온다면, 정상적으로 설치된 것 입니다.
이제 아까 보아두었던 개발자용 커맨드를 사용하여, Check out을 받을 수 있습니다.
다만, 아직은 올라와 있는 파일이 없기 때문에 해당 경로에 폴더만 생성이 됩니다.
SVN을 사용해 파일을 올려볼 것 이므로 생성된 폴더에 적당한 파일을 복사해 줍니다.
추가된 파일을 svn add 해 주시고...
아래와 같이 커밋을 해 줍니다. ci는 commit의 약어이며, -m 이후의 텍스트는 revision log입니다.
원래라면 리비전 1부터 시작하는 것이 맞겠지만, 제가 스크린샷을 찍느라 몇번 올리고 내리고 했더니 리비전이 4까지 올라 갔네요 ^^;
처음 커밋을 할 때에는 Password를 요구하고, 계정과 패스워드를 다시 요구합니다.
계정은 본인의 구글 이메일 주소를 입력하면 되고, 패스워드는 웹브라우져에서 개발자용 커맨드의 아래쪽에 googlecode.com password 라고 쓰여 있는 링크를 클릭해서 들어간 페이지에서 나오는 패스워드를 그대로 붙여 넣어주면 됩니다.
웹브라우저에서도 해당 파일이 올라간 것을 확인할 수 있습니다.
SVN에 파일을 올린 기록은 아래와 같이 리비젼으로 관리가 되며, 나중에 필요할 때 필요한 리비젼을 Check Out 받을 수 있습니다.
이제 아까 보아두었던 개발자용 커맨드를 사용하여, Check out을 받을 수 있습니다.
이번에는 아까 올린 파일이 다시 생성되는 것을 확인할 수 있습니다.
지금까지 간략하게나마 Google에서 제공하는 SVN 서비스의 사용법을 알아보았습니다.
다소 딱딱하고 어려울 수 있는 내용을 다루어 보았는데요.
프로그래밍 게시판에서 소스코드를 공유할 수 있는 방법이 있으면 편리하겠다라는 생각이 들어서 이 내용을 다루어 보게 되었습니다.
사실 오유에서 SVN 서버를 제공해주면 그게 최고이긴한데말이죠... -_-ㅋ (현실적으로 어려울 거란 생각이 들더군요..)