본문 바로가기

Dev.../웹서비스

[펌] Test Driven Development & Eclipse - II

Project 적용 예

 

eclipse는 단순히 개발환경을 지원하는 도구일 뿐이다(물론 IDE로만 사용했을 경우이다-eclipse는 IDE라고 말하기보다 SDK라고 한다.). 얼마나 이 도구를 잘 활용하느냐에 따라 개발자들이 느끼는 툴에 대한 평가가 틀려지게 된다. eclipse를 이용하면서도 단순히 에디터, 컴파일만 지원하는 정도로 사용하는 프로젝트가 있다면 프로젝트에 참가하고 있는 대부분의 개발자들은 불만을 가지게 될 것이다. Ultra Editor, Edit Plus 등과 같은 에디터 전용 툴을 이용하면 다양한 편집기능을 사용할 수 있고, 컴파일도 단축키 하나로 가능한데 무엇 때문에 손에 익숙하지도 않은 툴을 사용해야 하는가에 대한 불만이 그것일 것이다.

eclipse는 사용법에 따라 프로젝트의 생산성, 코드의 통일성, 테스트 수행, 통합 및 Release 등 이전에 수작업으로 진행하거나 문서로 정의하던 많은 사항들을 해결할 수 있다. 이번 장에서 이러한 eclipse의 숨은 기능들을 프로젝트에서 어떻게 적용하는지에 대해 알아보기로 하자.

eclipse의 프로젝트 적용 방안에 대해 글을 쓰고 있는 필자도 eclipse의 전체적인 개념을 이해하지 못한 상태에서 쓰고 있다는 사실을 독자들에게 양해를 먼저 구하고자 한다. 전체적인 내용도 모르면서 무슨 글을 쓰냐고 반론할 수 있지만 필자 역시 프로젝트 진행에 시간을 쫓기다 보니 막상 필요한 부분에 대해서만 적용하고 나머지 많은 부분에서는 어떤 의미인지조차 파악하지 못하고 있는 현실이다.

하지만 국내 자바 관련 여러 사이트를 둘러보아도 단순히 Tip 성격의 글들만 올라와 있고 구체적으로 프로젝트 수행에 사용된 사례는 없는 것 같아 자세하게는 모르지만 일단 글을 쓰기로 마음을 먹었다.

이 부분에 대해서는 많은 독자들이 사용한 다음 사용후기를 올려 지금도 프로젝트 수행으로 밤을 새고 있을 동료 개발자들이 조금이나마 가족의 품에서 시간을 보낼 수 있는데 도움을 주었으면 한다.

 

Tomcat 프로젝트 생성

 

이제 웹 어플리케이션 개발을 위해 Project를 생성해 보자. eclipse는 Project 단위로 인식되기 때문에 반드시 Project를 생성하여 진행해야 한다. 일단 프로젝트가 생성되면 파일, 디렉토리의 생성은 eclipse에서 수행해야 하며 임의로 탐색기 등을 이용하여 해당 프로젝트의 폴더로 파일을 복사하거나 삭제한 경우 별도의 작업을 해주어야만 한다.

프로젝트 생성은 File → New → Project를 선택하면 된다.

 

화면에서 Tomcat Project를 선택한다(Tomcat Plugin을 설치해야만 Tomcat Project 항목이 나타나게 된다.)

위의 화면에서 좌측에 보면 Plug-in Development를 볼 수 있는데 eclipse는 자체 Plugin을 개발할 수 있는 기능까지 포함하고 있다. 이러한 기능들 때문에 eclipse를 IDE라 부르지 않고 SDK(Standard Development Kit) 라고 부르는 이유이기도 하다.

다음 화면에 나타나는 프로젝트 이름에는 적절한 프로젝트 이름을 지정해 주면 된다. 여기서는 board라고 하겠다. 프로젝트 명 아래에 있는 디렉토리는 프로젝트를 생성할 디렉토리를 의미한다. 필자의 경우 주로 work 라는 폴더아래에서 모든 작업을 수행하기 때문에 work/eclipse/board라는 폴더로 지정한다.

 

다음화면에서는 웹 관련 설정사항이 나타난다.

 

위의 화면에서는 Context Name을 지정하는데 이때 Context Name은 브라우저의 url 상에서 나타나는 이름을 적어주면 된다. 위의 경우 http://localhost:8080/board/ 라고 사용하겠다는 의미가 된다.

이렇게 구성하고 Finish 버튼을 클릭하게 되면 eclipse는 자동으로 tomcat의 server.xml 파일에 해당 context를 추가하게 된다.

(여기서 주의 사항은 앞에서 tomcat plugin 설치시 클래스 로딩 관련 pathch 사항에 있는 내용을 다시 한번 확인해야 한다. patch를 설치 하지 않았다면 server.xml 파일에 새로 생성된 board context의 work 디렉토리를 임의의 지정해주어야 한다.

 

<Context path="/board" reloadable="true" docBase="D:/work/eclipse/board" workDir="D:/work/eclipse/board/work/org/apache/jsp" />

)

 

가끔 자동으로 수정된 server.xml 파일이 잘못 수정되는 경우가 있는데 생성시킨 Context를 브라우저에서 찾지 못하는 경우 수작업으로 server.xml 파일을 열러 수정하면 된다.

여기까지 수행하게 되면 eclipse에는 다음 화면과 같이 WEB-INF, classes, lib 폴더들이 자동으로 생성하게 된다. 또한 화면의 좌측을 보면 J가 포함된 작은 툴바 버튼을 볼 수 있다.

지금까지 진행하면 다음과 같은 화면이 나타날 것이다.

 

 

 

화면의 좌측에 있는 Perspective 바로가기 부분이 보이는데 Perspective는 화면에 나타나는 구성요소들(위에서는 Package Explorer, Task, Outline 등)과 메뉴의 구성을 미리 정의해놓고 사용하는 기능으로 현재는 설정은 Java 개발 Perspective로 선택되어 있다. Window → Open Perspective 메뉴에서 다른 Perspective를 볼 수 있다.

Package Explorer 부분은 자바 클래스의 Pacakage 구조를 탐색기의 형태로 보여주는 창인데 주로 파일을 선택하여 편집하거나 새로운 클래스, 패키지, 디렉토리, 파일 등을 생성할 때 사용한다. 필자의 경우 Package Explorer 보다는 Navigator를 더 많이 사용한다. Navigator는 실제 디렉토리 구조와 파일을 탐색기와 동일하게 보여주기 때문에 더 친근하게 느껴지기 때문이다.

 

Package Explorer의 경우 클래스명의 변경, 패키지의 변경, 클래스의 이동 등과 같은 리팩토링 기능을 사용할 때 주로 사용하게 되는데 Package Explorer에서는 이러한 변경사항에 대해 관련된 모든 파일들을 자동으로 수정해주는 기능을 가지고 있어 편리하다.

 

Java Editor 관련 설정

 

이제 실제 개발과 관련된 항목으로 넘어가자. 개발을 진행하기 전에 프로젝트에서는 명명규칙, 주석의 작성방법, {..}의 위치 등과 같은 사항에 대해 Coding Convention을 정하고 개발을 진행한다. 하지만 개발자들이 이 규칙을 모두 적용하면서 개발하기란 어려운데 eclipse를 이용하면 조금이나마 수고를 줄일수 있다.

eclipse의 Editor설정 관련 사항을 살펴보자. eclipse에서 기본적으로 제공하는 Editor는 Text Editor와 Java Editor이다.

Text Editor의 설정은 Window → Preferences → Workbench → Editors에서 설정해 주면 된다.

 

Java Editor의 설정은 위의 화면에서 좌측 트리 부분의 아래에 보면 Java라는 항목이 나타나는데 이 항목의 세부 항목에 보면 Editor에 대한 설정이 나타난다.

 

첫번째 항목에서는 Tab의 간격, Line 번호의 표시등을 설정해 줄 수 있다. Print margin column은 에디터 상에서 특정 컬럼에 라인을 표시하기 위해 사용한다. 예를 들어 모든 소스의 라인의 120라인을 넘지 않아야 한다는 코딩 가이드가 있을 경우 이 값을 120으로 하고 아래에 있는 Show print margin 항목을 선택하면 에디터 상의 120 column에 라인이 나타나게 된다.

가장 마지막에 있는 Navigation 부분에서 지정하는 항목은 eclipse의 Java 에디터는 자바 파일, 메소드 등에 대한 hyper link 기능을 제공한다. 소스가 다음과 같을 경우

 

             ClassB test = new ClassB();

            test.setValue();

 

ClassB에 마우스의 커서를 위치시키고 Navigation에서 지정한(default 는 Ctrl 키이다.) 키를 누르면 hyper link가 활성화 되고 해당 link를 클릭할 경우 파일을 열어 해당 메소드 또는 클래스의 정의 부분으로 이동한다. 위의 예제에서 ClassB에서 클릭하게 되면 ClassB.java 파일이 Open되고 class ClassB라고 선언된 부분이 선택되어 있다.

 

 

이러한 파일의 navigation은 필자가 사용한 eclipse의 editor의 기능 중 가장 편리한 기능이다. 이전에 일반 에디터를 사용할 경우 에디터에 파일을 많이 열어놓은 경우 이전에 본 파일을 찾기가 쉽지 않았는데 이 기능을 이용하면 쉽게 원하는 파일을 볼 수 있다. 메뉴아래에 있는 툴 바에도 파일의 navigation을 지원하는 버튼이 있다.

 

 

이 버튼들이 이전에 작업한 파일들 사이를 이동하는 기능을 수행한다.

 

Editor에 대한 설정이 끝났으면 이제 Coding Convention 부분을 보자. 메뉴의 Window →Preferences → Java에서 Code Formatter를 선택한다.

Code Formatter는 {..}의 위치, else if의 모양 등에 대해 설정을 할 수 있다.

 

프로젝트를 진행하다 보면 이 부분에서 개발자들 사이에 신경전이 벌어지기도 하는데 어떤 개발자들은 {를 내려쓰기 좋아하는 개발자가 있는 반면 블록을 생성시키는 문장 바로 옆에 두는 것을 좋아하는 개발자들도 있다. 프로젝트 내에서 Coding Convention으로 정한 다음에도 개발자들은 자신이 좋아하는 방식대로 많이 작성하는데 이렇게 미리 정해놓게 되면 이러한 문제는 사라지게 된다.

바로 아래에 있는 Code Generation 부분에서는 주석, 멤버변수, static 변수 등에 대한 prefix, postfix 등을 지정할 수 있다.

 

 

위와 같이 지정해 두게 되면 코드 생성시 멤버변수, static 변수, 메소드의 파라미터에는 지정한 Prefix가 자동으로 붙어 소스에 나타나게 된다.

Code and Comments 부분은 소스의 주석을 자동으로 특정 포맷으로 나타나게 하는 기능이다. 코드의 주석은 javadoc의 활용이 가능하도록 작성할 수 있으며 Class, Method 등의 주석의 형태를 지정할 수 있다.

지금까지 eclipse의 자바 Editor에 대한 사항을 살펴보았다. 이러한 설정 사항을 프로젝트 전체 구성원이 동일하게 공유하기 위해서 eclipse에서는 export 기능을 제공한다.

프로젝트 초기에 정해진 Coding guide에 따라 QAO 또는 프로젝트 리더가 위와 같은 방법으로 자신의 PC에서 환경 설정을 한 다음 export한 다음 전체 프로젝트 개발자들에 배포하게 되면 이러한 공통적인 사항에 대해서는 자동으로 적용되게 된다.

 

☞ 클래스 및 패키지 생성

 

개발을 하기 위해서 가장 먼저 구성해야 하는 것이 package 구조이다. eclipse에서 package의 생성은 생성하고자 하는 package 또는 폴더에서 오른쪽 마우스를 누른 다음 New에서 Package 또는 Folder를 선택해 주면 된다.

 

 

클래스의 생성은 위와 동일한 방법으로 생성하면 되지만 implements, extends 하는 클래스를 지정할 수 있으며 interface 또는 abstract 클래스를 implements, extends 하는 경우에 abstract 메소드는 자동으로 생성시켜 주는 기능을 가지고 있다.

 

 

게시판 예제에서 하나의 Action 명령을 수행하는 Super Class로 Command Class를 abstract로 정의하여 사용하고 있다. 이 Command Class를 상속 받아 게시판목록 조회를 처리하는 BoardListViewCommand 클래스를 생성해 보자.

New → Class를 선택하면 클래스 생성 다이얼로그 박스가 나타난다. 여기서 Super Class 옆에 있는 Browser 버튼을 이용하고 interface의 경우 Add 버튼을 이용하여 implements할 interface를 선택해 주면 된다. 여기서는 상속을 받는 것이기 때문에 Super Class를 선택하였다. 이때 나타나는 화면에서 Choose a Type 부분에 최소한 한글자 이상을 Type 해야지만 사용할 수 있는 클래스들이 나타나게 된다.

이렇게 Super Class 를 선택한 다음 Inherited abstact methods를 선택하게 되면(기본적으로 선택되어 있음) Super 클래스 또는 interface의 abstract 메소드들이 자동으로 생성되고 아래 화면에 보는 것과 같은 default 코드가 자동으로 생성되게 된다.

 

위의 그림과 같이 null 값을 return 하는 기본적인 구성은 eclipse가 자동으로 해주게 된다. 여기서 한가지 Tip은 자동으로 생성된 코드의 내부를 보면

 

             //TODO Auto-generated method stub

 

라는 부분이 있는데 이렇게 //TODO 라고 주석이 되어 있는 부분은 Task 창에 나타나 개발자들에 어떤 부분이 아직 코딩이 되지 않았는지를 알려준다.

TODO 주석을 잘 활용하면 개발 도중에 이 부분은 나중에 추가해야지라고 생각되는 부분에 //TODO 내용 형태로 주석을 작성해 놓으면 나중에 코드를 찾아 작업할 때 쉽게 찾아 갈수 있다.

다음 화면은 Task 창에 나타나는 TODO 목록이다.

 

 

위의 TODO 주석과 같이 Task의 목록을 나타나도록 사용자 정의 주석도 추가할 수 있다.

 

Windows → Preferences → Java 부분에서 마지막에 있는 Task Tags를 선택하여 나타나는 화면에서 추가해 주면 된다. 위의 화면에서는 주말에 휴식을 취하고 월요일 출근해서 해당 코드를 볼 때 어디가 마지막에 작업한 내역인지 한참 찾아야 하는데 위에서처럼 주석을 만든 다음 소스상에 다음과 같이 작성해 두면

 

//마지막작업 이러한 로직으로 구현 중에 있었음

 

Task 창에 나타나기 때문에 쉽게 찾을 수 있다.

 

앞에서 설명한 abstract method에 대한 자동 생성 기능은 한번 생성된 클래스에도 적용이 가능한데 이것은 개발 도중에 abstract Class에서 새로운 abstract 메소드가 추가되는 경우에 사용하면 된다.

소스 에디터에서 오른쪽 마우스를 클릭한 다음 아래 화면과 같이 Override/Implement Methods를 선택하게 되면 Super Class의 abstract method 중 현재 구현되지 않는 메소드의 목록을 보여주고 여기서 구현할 메소드를 선택해 주면 된다.

 

 

 

lib 폴더에 import 하기

 

웹 어플리케이션에서 사용하는 classes12.jar와 같은 JDBC 드라이버 등은 보통 WEB-INF/lib 폴더 아래에 위치시키게 되는데 eclipse의 Tomcat plugin을 설치한 경우에는 WEB-INF/lib 폴더는 자동으로 생성해준다. 이 폴더에 특정 jar 파일을 가져 놓기 위해서는 import 기능을 사용하면 된다.

윈도우의 탐색기를 이용하여 lib 디렉토리에 복사해도 eclipse에서 사용할 수 없고 이 import 기능을 이용하여 가져온 경우만 internal 파일로 인식하게 된다.

Navigator 화면에서 WEB-INF/lib 폴더에서 오른쪽 마우스를 클릭한 후 import 메뉴를 선택한다.

 

위의 화면에서 File system을 선택하고 해당 jar 파일이 있는 디렉토리를 지정한 다음 추가할 파일을 선택하면 된다.

 

import 기능을 이용하여 eclipse 상에서 생성되지 않은 소스(이전에 개발한 소스 등)를 eclipse 프로젝트로 등록할 수 있다. 새로운 프로젝트를 생성시킨 다음 import에서 해당 소스가 있는 폴더를 지정한 다음 전체를 선택하면 모든 파일이 새로 생성된 eclipse 프로젝트로 복사되고 이때부터 eclipse를 이용하여 개발을 진행하면 된다.

 

☞ 컴파일 및 클래스패스 설정

 

자바 프로젝트 진행 시 초보자들이 가장 어렵게 생각하는 부분이 클래스 패스와 컴파일 부분인데 클래스 패스 설정의 경우 eclipse에서는 프로젝트 단위로 설정하게 되어 있다. 먼저 메뉴에서 Project → Properties 메뉴를 선택한다.

 

Project의 Properties 설정 화면에서 Java Build Path를 선택한 다음 Libraries Tab을 선택하여 위와 같은 화면이 나타난다.

앞에서 설명한 WEB-INF/lib 폴더아래에 둔 jar 파일은 Add JARs 버튼을 이용하여 추가하고 그 이외에 다른 경로에 있는 클래스 또는 jar 파일은 기타 버튼을 클릭하여 컴파일 시 필요한 jar 파일을 추가한다.

 

여기서 External JARs는 lib에 import되지 않고 프로젝트 외부에 존재하는 파일을 추가하는데 사용한다. 이런 경우 대부분은  junit.jar와 같이 프로젝트 개발 중에는 필요하지만 실제 운영환경에서는 필요 없는 파일들이 된다.

필자의 환경에서는 다음과 같은 파일들이 build path 상에 존재한다.

 

DB처리를 위한 mySQL JDBC 드라이버 : mm.mysql-2.0.14-bin.jar(lib)

Log 처리를 위한 log4j : log4j.jar(lib)

JUnit 테스트를 위한 JUnit : junit.jar(external JARs)

 

JUnit의 경우 실제 운영시스템에서는 사용하지 않기 때문에 WEB-INF/lib 디렉토리에는 설치하지 않고 external jar 파일로 등록 하였다.

 

Debug 하기

 

Debug는 자바만 계속해서 개발해온 개발자들에게는 생소할 수 있는데 대부분의 자바 개발자들은 프로그램이 실행 중에 변수에 어떠한 값들이 저장되는지 확인해보기 위해 System.out.println() 을 이용해서 console 상에 변수의 값들을 출력해서 정상적으로 개발자가 원하는 값이 설정되었는지를 확인하게 된다.

개발시에 이렇게 진행하면서 많은 곳에 System.out.println() 코드가 존재하게 되고 운영환경으로 이관 시에도 일정에 쫓겨 이러한 코드들이 그대로 운영 환경으로 이관되는 경우를 많이 보았다. 물론 개발 시에는 나중에 삭제하면 되지 라고 생각하지만 프로젝트의 종료시점에서는 삭제할 시간적 여유가 없어 그냥 이관하게 된다.

이런 수고를 덜기 위해 주로 사용하는 방법이 log4j를 사용하여 log.debug() 기능을 이용하여 운영환경에서는 property 값만 수정해서 개발자들이 필요에 의해 console에 나태는 정보들을 나타나지 않게 하는 방법이 사용된다.

그러면 개발자들이 System.out.println() 을 코드에 추가하는 이유는 대부분 자신이 만든 프로그램을 디버깅 해보기 위한 용도일 것이다. C, C++과 같은 언어에서는 System.out.println() 을 이용하여 console에 나타내는 방법보다는 break point, step 등의 Debug 기능을 이용하여 보다 섬세한 디버깅을 하고 있다. Java에서도 eclipse와 같은 IDE를 이용할 경우 이러한 debug 기능을 사용할 수 있다.

 

먼저 Tomcat을 Debug 모드로 실행을 시킨다. 설정은 Windows → Preferences 화면에서 Tomcat 설정 부분에서 다음 화면과 같이 Dont run Tomcat in debug mode 부분의 설정을 해제한다.

 

이제 Tomcat를 eclipse상에서 restart한다. Tomcat가 시작되면서 이전의 화면 구성과는 다른 화면이 나타나게 되는데 이것은 미리 설정되어 있는 debug관련 perspective 구성이다.

소스 편집기에서 테스트할 부분에 break point를 설정한다. break point는 메뉴에서 Run → Add/Remove Break Point 메뉴를 이용하거나 단축키 Ctrl + Shift + B 를 이용하여 설정한다. break point가 설정되면 에디터의 라인 표시부분에 파란색으로 설정되는 것을 볼 수 있다.

 

break point를 설정한 다음 해당 기능을 수행시키게 되면 프로그램 수행 도중 break point가 설정된 부분에서 멈추는 것을 볼 수 있다.

이 상태에서 eclipse의 화면은 위에서 보는 것처럼 이전의 소스코드 편집 모드와 다른 모양이 나타나는데 이렇게 Debug를 위해 필요한 기능이 나타나도록 구성되어 있는 것이 Debug Perspective이다. 여기에는 변수의 값을 볼 수 있는 Variable 화면이 있는데 화면에 보면 현재 시점에서 사용 가능한 변수들의 목록과 각 변수들의 값이 나타나고 있다. Debug 상태에서는 각 변수에 마우스만 올려놓아도 변수의 값을 볼 수 있다.

 

 

변수 값을 조회하는 기능 중 Display tab을 선택하여 현재 변수의 값에 또 다른 계산식을 수행시켜 나타나는 값을 확인해 볼 수 있다.

 

 

이렇게 프로그램 실행 중에 break point에서 pause 된 상태에서 개발자는 프로그램을 한 줄 단위 또는 하나의 메소드 단위로 실행시키면서 프로그램의 로직의 흐름, 변수의 값의 변화 등을 확인할 수 있는 데 이러한 기능이 Step Into, Step Over, Step Return 기능이다. 이 기능은 메뉴의 Run → Step Into, Step Over를 이용하거나 단축키 F5, F6, F7을 이용하여 수행할 수 있다.

Step Into는 하나의 명령라인을 수행시키는 기능이 있는데 해당 라인이 메소드 호출인 경우 해당 클래스의 메소드 내부로 들어가게 되는데 이때 소스가 없으면 더 이상 진행을 할 수 가 없게 된다. 이때 사용하는 것이 Step Over이다. Step Over는 하나의 라인을 수행시키는 기능을 가지고 있다.

break point는 여러 군데 설정할 수 있는데 이 break point와 step into, step over의 기능을 적절하게 활용하면 프로그램의 흐름, 변수의 값 등 찾기 어려운 프로그램의 버그도 쉽게 찾을 수 있다.

(필자의 경우 학창시절 버그를 찾기 위해 Turbo-C의 F7, F8 키를 밤새워 눌러 본적도 있다.-Turbo-C의 경우 F7, F8이 step into, step over 이다)

 

CVS, PVCS 작업하기

 

많은 프로젝트에서 소스의 버전 관리를 위해 버전관리 툴을 사용하고 있다. 하지만 개발자의 입장에서는 귀찮은 작업 중의 하나이다. 이전에 버전관리 툴을 이용하여 프로젝트를 진행해본 경험이 없는 개발자에게 이번 프로젝트는 버전관리 툴을 사용할 것이니 소스를 편집할 경우 버전관리 툴을 이용하여 check in, check out을 한 다음 소스를 편집하라고 하면 상당한 거부감을 가지게 되고 심지어는 제대로 사용하지 않는 개발자들도 있다.

이것은 버전관리 툴의 효용성을 느끼지 못한 개발자에게는 당연하게 나타나는 증상이다. 그냥 에디터에서 소스를 open하여 편집하면 되는 것을 버전관리 툴에서 자신이 편집할 소스를 찾아 해당 소스를 찾아 check out한 후 편집하다가 다른 파일의 편집이 필요하면 또 다시 버전관리 툴을 이용하게 되고. 이러한 과정은 개발자의 생각 속에서 순간적으로 지나가고 있는 로직의 구상을 방해할 수 도 있고, 소스 편집에 있어 두 단계를 더 필요로 하기 때문에 불편한 것은 사실이다.

하지만 에디터상에서 파일을 오픈 하듯이 버전관리 툴의 check out, check in을 할 수만 있으면 이러한 문제는 해결될 것이다.

eclipse에서는 소스 버전관리 도구와의 병행 작업을 지원하고 있어 편리하게 버전관리 도구와 연계하여 소스 코드의 작성이 가능하다.

기본적으로 내장되어 있는 버전관리 항목은 CVS(Concurrent Versions System, http://www.cvshome.org)이다. CVS는 오픈 소스로 개발된 버전관리 도구로 현재 대부분의 오픈 소스 프로젝트에서는 CVS를 사용하여 소스 버전관리를 하고 있다. Eclipse와 CVS의 연동은 별도의 pulgin 설치 없이 기본적인 설치만으로도 사용이 가능하다.

 

먼저 CVS 서버와 연결하여 작업하는 방법에 대해 알아보자. CVS 서버와 연결하기 위해 메뉴에서 Window → Show View → Others를 선택한 다음 CVS Repositories를 선택한다.

CVS Repositories View에서 오른쪽 마우스를 클릭하여  New → Repositiory location을 선택하여 새로운 CVS 서버 Repository를 등록한다.

CVS Repositories 를 등록하기 위해서는 해당 서버의 IP, Repository path, 사용자 등에 대한 정보를 입력하고 Finish 버튼을 클릭하면 eclipse 상에서 CVS의 repository가 등록된다.

 

 

등록이 되었으면 이제 Package Explorer 또는 Navigator로 돌아와서 CVS 서버를 이용해서 작업 할 프로젝트를 선택한 다음 오른쪽 마우스의 메뉴에서 Team, Shared Project를 선택한다.

 

이렇게 선택하게 되면 설치된 버전관리 툴과 연계 가능한 모든 항목이 나타나는데 필자의 경우 PVCS plugin이 설치된 상태이기 때문에 두 가지가 나타나고 일반적으로는 CVS만 나타나게 된다.

 

여기서 CVS를 선택하고 앞에서 생성한 Repository를 선택해 주면 CVS서버와의 연결은 끝난다.

 

처음 CVS에 접속한 경우 해당 Repository로부터 모든 소스를 받기 위해서는 Team 메뉴에서 Update를 선택하면 모든 파일을 다운로드 받을 수 있다.

 

 

새로운 파일을 만들어 추가하는 경우 Add to Version Control 메뉴를 선택한 다음 반드시 Commit를 처리를 해주어야만 적용된다.

기타 나머지 메뉴나 기능에 대한 사항은 일반 CVS 사용법과 동일하기 때문에 CVS관련 사이트를 참고하기 바란다.

 

 

다음은 PVCS를 이용하여 작업하는 방법에 대해 알아보자. PVCS로 작업하기 위해서는 PVCS를 자신의 PC에 설치하면서 eclipse pilgin 설치 옵션을 선택한 다음 설치를 한다. PVCS setup 프로그램을 이용해서 plugin을 설치한 경우 별도로 eclipse에서의 설치 과정은 없다.

이렇게 PVCS가 설치되면 먼저 PVCS에서 프로젝트에서 사용할 PVCS repository에 대해 open을 시킨다. 이때 주의해야 할 사항은 PVCS repository에서 사용한 동일한 드라이버 이름을 사용하여 네트워크 드라이버 연결을 해야 사용이 가능하다.

PVCS의 설치가 완료되었으면 eclipse에서 해당 프로젝트를 선택한 다음 오른쪽 마우스에서 나타나는 메뉴에서 Team → Share Project 메뉴를 선택한다.

 

 

PVCS plugin이 정상적으로 설치된 경우라면 share Project 옵션 화면에 PVCS, CVS  두개의 항목이 나타나는데 PVCS를 선택한다.

 

 

Create or Select a PVCS SCC Project 화면에는 프로젝트 명이 나타나고 프로젝트 명 아래에 Create/Select 버튼이 있다 이 버튼을 클릭하여 PVCS와 의 연결을 설정하는 화면을 호출한다.

 

 

먼저 Open Database 버튼을 클릭하여 네트워크 드라이버로 연결되어 있는 PVCS Repository를 선택한다. 네트워크 드라이버 명은 Admin이 생성한 Project와 동일한 드라이버명을 사용해야 한다.

PVCS Repository를 선택하면 해당 네트워크 드라이버가 Source Control 목록에 나타나게 되는데 아이콘의 앞부분에 +로 되어 있으면 해당 Repository에 이미 프로젝트가 생성되어 있는 경우이고 -로 되어 있으면 프로젝트가 생성되어 있지 않은 경우이다.

-로 되어 있는 경우 Create Project 버튼을 클릭하여 Project Name을 입력하여 새로운 프로젝트를 생성하면 된다.

+로 되어 있는 경우 다른 개발자가 만들어 놓은 상태이기 때문에 +를 클릭하여 나타나는 프로젝트를 선택하면