SVN/Naver SVN

Naver SVN setup

Soul-Learner 2014. 7. 28. 23:35

네이버에서 제공하는 SVN 프로젝트 설정 및 사용법


네이버에서 제공하는 SVN 저장소에 프로젝트를 저장하고 Eclipse 에 SVN 클라이언트 플러그인을 설치하면 다수의 팀원들과 코드를 공유할 수 있고 코드의 버전관리를 쉽게 할 수 있다.

여기서는 네이버에 SVN 저장소를 생성하는 절차부터 Eclipse 에 Subclipse 플러그인을 설치하고 네이버의 SVN 저장소에 접속 및 프로젝트 Import, check out, update, commit 등의 기능을 사용하는 방법까지 알아보고자 한다.


내용 순서

1. 네이버에 로그인

2. 프로젝트(SVN 저장소) 생성

3. SVN 저장소 비밀번호 설정

4. Eclipse 에 SVN 클라이언트 플러그인(Subclipse) 설치

5. Eclipse 에 네이버 SVN 저장소 등록

6. 네이버 SVN 저장소에 최초로프로젝트 올리기 ( Import )

7. 네이버 SVN 저장소에서 최초로 프로젝트 가져오기 ( Check Out )

8. Eclipse 프로젝트의 소스코드 변경

9. 변경된 소스코드를 SVN 저장소에 반영하기 전에 Update 실행

10. Update 도중에 버전 충돌이 발생한 경우, Revert 명령으로 해결하기

11. Update 한 소스코드를 SVN 저장소에 최종적으로 반영하기 ( Commit )


1. 네이버에 로그인

아래의 사이트에 접속하고 우측 하단에 있는 '새 프로젝트 만들기' 링크를 누른다

http://developer.naver.com/


2. 프로젝트 등록 폼에 다음 내용을 입력하고 하단의 확인버튼을 누른다

 - 프로젝트 이름

 - 프로젝트 아이디

 - 프로젝트 공개 설명

 - 코드관리 시스템 ( 여기서 3개의 선택항목 중에서 SVN 을 선택)

 - 지적재산권 경고 항목 체크


3. SVN 저장소 비밀번호 설정 ( http://dev.naver.com/account/ )

프로젝트가 성공적으로 등록되었다는 메시지가 나오면 개발자센터 홈(http://developer.naver.com/)에서 마이 페이지로 이동하여 왼쪽 메뉴 항목에서 회원정보 를 선택하면 '코드 저장소 비밀번호 설정' 이라는 버튼이 있는데, 이 버튼을 눌러서 저장소 비밀번호를 설정할 수 있다.

비밀번호를 설정한 후 15분이 지나면 반영된다는 메시지를 볼 수 있다.


4. 프로젝트 관리

개발자센터 홈(http://developer.naver.com/) 에서 마이페이지(http://dev.naver.com/my)로 이동하여 '내가 참여한 프로젝트' 항목에 등록된 프로젝트 이름을 클릭하여 프로젝트 관리 페이지(http://dev.naver.com/projects/my-project-name)로 이동한다

왼쪽 메뉴 컬럼에서 가장 아래쪽에 있는 '프로젝트 관리' 항목을 클릭하여 관리 페이지(http://dev.naver.com/projects/softblue/admin)를 연다

여기서 코드 공개, 다운로드, 익명접근 허용 여부 등을 설정할 수 있다.

여기서도 마찬가지로 SVN 저장소 관련항목의 설정을 변경한 경우에는 15분이 지나야 반영된다는 메시지를 볼 수 있다.

참고로 이 페이지에서는 멤버관리, 등급관리, 공개정보관리, 분류관리, 게시판관리 등이 가능하다


5. Eclipse에 Subclipse 플러그인 설치

Subclipse 는 SVN의 클라이언트 역할을 수행하는 Eclipse 의 플러그인이다.

Eclipse를 실행하고 Help > Eclipse Marketplace... 을 선택하고 Subclipse로 검색하여 설치하면 된다


6. Eclipse에 SVN 저장소 등록하기

Eclipse 에 Subclipse 가 설치되면 SVN 클라이언트가 접속할 SVN 서버의 저장소를 등록할 수 있다.

Eclipse > Window > Open Perspective > Other.. > SVN Repository Exploring 항목을 선택하고 OK를 누른다

Add SVN Repository 아이콘을 눌러 저장소 등록을 시작한다



위의 URL 입력란에는 네이버의 SVN 저장소 주소를 입력하면 된다, 자신의 SVN 저장소 주소는 개발자센터 홈 > 마이 오픈 프로젝트 > 왼쪽의 메뉴 아이템 중에서 '코드' 항목을 선택하면 오른 쪽에 SVN 저장소의 주소가 나타나 있는데 이 주소를 복사해서 사용하면 된다

보통 네이버 SVN 저장소 주소는 [ https://dev.naver.com/svn/my-project-name ] 와 같이 구성된다.


이어서 이름과 비밀번호를 묻는 창에서 네이버 SVN 저장소에 설정했던 비밀번호와 네이버 아이디를 입력하면 된다.

위와 같은 방법으로 이클립스에 네이버 SVN 저장소를 등록하기를 완료한다


7. Eclipse 프로젝트를 네이버 SVN 저장소에 최초로 올리기

Eclipse에서 간단한 프로젝트를 생성하고 프로젝트 위에서 마우스 우측을 눌러 Team > Share Project 를 선택한다

아래의 화면처럼 Eclipse 에 Subclipse 플러그인을 설치했기 때문에 Repository type 에서 SVN 항목을 볼 수 있다





앞서 네이버 SVN 저장소 주소를 이클립스에 등록했기 때문에 아래의 그림처럼 SVN 저장소 목록에 나타나는 것을 볼 수 있다







아래의 절차를 수행하면 프로젝트가 Eclipse에서 네이버 SVN 저장소로 최초로 저장된다. 이 과정을 SVN 용어로는 Import 라고 한다



SVN 서버로 임포트 되는 과정



Eclips에서 프로젝트가 SVN 저장소로 저장되면 Eclpse의 프로젝트 이름에는 다음과 같은 * 기호가 추가된다



위에서 SVN 저장소에 저장된 소스파일들은 네이버 개발자센터 홈 > My 오픈 프로젝트 > 내가 참여한 프로젝트 > 코드 항목을 클릭하면 등록된 프로젝트의 코드를 확인할 수 있다. 소스파일명을 클릭하여 다운로드 메뉴를 이용하면 웹페이지에서도 소스코드를 다운로드할 수 있다


네이버 SVN 저장소에 저장된 프로젝트를 다른 개발자 컴류터에서 접속하여 프로젝트를 최초로 다운로드하는 절차를 SVN 용어로는 Check Out 이라고 한다

다른 개발자 컴퓨터에서 네이버 SVN 저장소에 접속하여 Check Out 하는 절차는 다음과 같다.


이클립스에 Subclipse 플러그인을 설치하고 네이버 SVN 저장소를 등록하는 절차는 동일하므로 여기서는 Check Out 부분만 소개한다

이클립스 Project Explorer 창에서 마우스 우측을 누르고 New > Other... > SVN > Check Out Projects from SVN 항목을 선택한다












위의 설정 이후에는 일반 프로젝트를 생성하는 방법과 동일하게 설정하면 된다.

이렇게 해서 다른 개발자의 컴퓨터에서 Check Out 하여 코드를 변경하고 다시 SVN 저장소로 저장하고자 한다.

이 과정을 SVN에서는 Commit 이라고 한다. 

Commit 을 수행하기 전에 먼저 Update를 수행해야 버전 충돌 오류가 발생하지 않는다

Update 는 SVN 저장소에 있는 코드를 현재 시스템의 코드에 반영하는 것을 의미한다. Update 이후에 다시 Commit 을 수행해야만 프로젝트 공유가 원활하게 유지된다.


8. Subclipse 가 설치된 Eclipse 에서 Update 하는 절차

만약 개발자의 프로젝트가 Revision 1 이고 SVN저장소에 있는 Revision 그보다 높은 2 일 경우에 Update 없이 Commit 를 수행하면 SVN 서버측에서 버전 충돌로 오류가 발생하고 서버측에 반영되지 않는다. 그러므로 SVN 서버측의 버전과 개발자 측의 Revision이 일치되는 경우에만 Commit 명령이 성공적으로 수행된다. 개발자 측의 Revision과 SVN 저장소 측의 Revision 번호와 그 내용을 일치시키는 명령이 Update 이다


SVN 저장소의 Revision 번호와 특정 개발자의 시스템에 있는 Revision 번호가 다음과 같은 상황이라고 가정한다


SVN 저장소의 Revision 번호 : 2

개발자 이클립스에 있는 프로젝트의 Revision 번호 : 1


위의 상황에서 개발자가 Update 를 수행하면 그 결과는 다음과 같이 2가지 중에 한가지로 나타난다.

1. 개발자의 프로젝트 Revision 번호가 1 증가하여 SVN 저장소의 Revision 번호와 일치하게 되고 소스코드도 동일하게 변경된다.
2. 개발자의 프로젝트 Revision 번호가 1 증가하du SVN 저장소의 Revision 번호와 일치하지만 소스코드는 서버측의 코드와 개발자의 코드가 섞여서 나타나면서 오류가 발생한다(개발자의 코드와 서버측의 코드를 구분해주는 표시가 삽입되어 나타나므로 서로 다른 부분을 쉽게 알 수 있다)


SVN 저장소 측에 저장된 프로젝트의 버전으로 개발자 측의 프로젝트가 업데이트 될 때는 개발자의 시스템에 있는 프로젝트의 Revision 번호를 참조하여 SVN 서버측에 있는 해당 Revision 의 프로젝트를 비교하여 동일한 경우에는 아무런 문제가 없이 SVN 저장소 측의 코드로 개발자의 프로젝트가 업데이트 된다.


그러나 개발자의 프로젝트 내용이 SVN 서버측에 저장된 해당 Revision 과 일치하지 않으면 업데이트 되지 않고 일치하지 않는 부분의 코드에 표시가 되어 나타나고 관련된 Revision 번호의 코드가 프로젝트에 동시에 나타난다. 이런 보조 파일들을 참조하여 개발자는 자신의 코드가 다른 Revision 과 어떻게 다른지 구별할 수 있게 된다


Update 실행시 발생한 오류를 분석하여 개발자가 추가한 코드가 구분되면 해당 코드 부분을 클립보드에 복사해 두고 프로젝트 익스플로러에서 해당 파일 이름에서 마우스 우측을 눌러서 Team > Revert 항목을 선택하면 서버측의 코드만 남고 모두 사라지게 되므로 클립보드에 복사해둔 개발자의 코드를 붙여넣고 다시 Update 를 실행한 다음 최종적으로 Commit 을 실행하면 개발자의 코드가 SVN 저장소에 무사히 반영된다.


버전 충돌이 발생한 경우의 예




개발자가 작성한 내용을 버리지 않고 사용하려면 클립보드 등에 복사해 두고 SVN 저장소 측의 내용으로 변경하여 서버측의 Revision 과 일치시키고 그 다음에 복사해둔 개발자의 코드를 붙여넣기 하여 Update > Commit 을 실행하면 된다.




위와 같은 절차를 통해 Rever 명령을 수행하면 프로젝트에 부수적으로 생성된 몇개의 파일들도 사라지고 서버측의 코드로 내용이 변경된다. 이제는 서버측의 코드와 개발자의 코드가 동일하게 되었고 Revision 번호도 동일하므로 개발자의 코드를 붙여넣고 다시 Update > Commit 를 수행하면 서버측에 개발자의 코드를 반영할 수 있다.



SVN 의 버전 충돌 분석

1. 서버측 Revision 번호와 개발자측 Revision 번호가 동일한 상태에서 Commit 명령은 문제 없이 성공하고 양쪽 모두 Revision 번호가 1씩 증가한다

2. 개발자 측의 Revisoin 번호가 서버측에 비해 낮은 경우에 Commit 명령을 수행하면 서버측에 버전 충돌 오류가 발생하면서 반영에 실패한다

Update 후에 다시 Commit 를 수행해야 한다는 메시지를 볼 수 있다.



3. 위의 오류를 확인한 후에 Update를 실행하면 양쪽 Revision 번호는 일치하게 되지만 소스코드의 내용이 다른 경우에는 업데이트 가 완료되지 않고 개발자에게 서로 다른 부분을 부각하여 보여준다.

4. 개발자는 SVN 저장소 측의 내용과 동일하게 자신의 코드를 변경하기 위해 Revert 명령을 수행하고 자신의 코드를 추가하면 된다.

5. 자신의 코드가 완성되면 Update > Commit 명령을 수행하면 된다.