변화 관리(change-management) 기능에 액세스 하기위해서, Eclipse는 처음부터 Concurrent Versions System (CVS)과 완벽한 통합을 도모했습니다.이제, Apache Software Foundation에서 운영하는 많은 프로젝트들은 Subversion이라고 하는 변화 관리시스템을 사용하고 있습니다. Subversion 저장소를 사용하는 프로젝트에 Eclipse를 사용하는 방법을 배워봅시다.
Eclipse는 대중적인 오픈 소스 변화 관리 시스템인 CVS에 대한 지원을 통합해 왔습니다. CVS의 기능과 그 한계는 잘 알려져 있지만,많은 그룹들은 더 나은 확장성, 변화 합병 및 버전 브랜칭(branching) 지원, 바이너리 파일 포맷 지원을 제공할 수 있는다른 버전 관리 시스템을 연구하고 있습니다.
|
Subversion (SVN)은 CVS를 대체하는 것으로서, 향상된 성능(지능형 로컬 캐싱과 데이터베이스 백엔드 중심), 쉽고 빠른 브랜칭(branching), CVS 사용에 따른 단점 향상을 제공하고 있습니다.
Eclipse에 Subversion 지원을 추가하는 방법과 IDE에서 기본적인 버전 관리를 수행하는 방법을 배워봅시다.
Eclipse를 다운로드 하여 설치해야 한다. (참고자료)자신의 플랫폼에 맞춰 Eclipse SDK를 다운로드 하면 기본 Eclipse IDE(Eclipse Platform)과Java™ Development Kit이 생긴다. C/C++로 작업하려면, C Development Tooling (CDT) 웹사이트를 방문하여, 업데이트 매니저를 사용하여 CDT를 설치하라. (업데이트 매니저 사용 방법은 다음 섹션에서 설명한다.)
또한, Subversion 저장소에 액세스 해야 한다. 한 가지만 설정해야 한다면 Subversion 웹 사이트에서 제공하는 문서를 참조하라. (참고자료) 데모용으로 Subclipse 프로젝트를 검사하고, 필자의 LAN의 저장소에서 프로젝트로 작업하는 방법을 보여 줄 것이다.
|
Subclipse는 Subversion 지원을 Eclipse IDE에 추가하는 프로젝트이다. 우리는 Eclipse의 업데이트 매니저를 사용하여Subclipse를 우리의 Eclipse IDE에 추가할 것이다. Eclipse의 Help 메뉴에서 Software Updates > Find and Install을 선택하여 업데이트 매니저를 연다.
그림 1. Eclipse 업데이트 매니저
소프트웨어 업데이트를 검색하기 위해 사용하는 것 외에도, 이 업데이트 매니저를 사용하여 Subclipse 같은 새로운 기능을 찾아서 설치할 수 있다. Search for new features to install이 선택되었는지 확인하고, Next를 클릭하여 계속 진행한다. Eclipse는 다음의 업데이트 매니저 패널을 디스플레이 한다.
그림 2. 업데이트 매니저 사이트
측정 기능을 찾았기 때문에, 기존 사이트의 체크를 해제하고, New Remote Site를 클릭하여 New Update Site 다이얼로그를 디스플레이 한다. (그림 3) 이것을 사용하여 Subclipse 업데이트 사이트를 리스트에 추가할 것이다.
그림 3. 새로운 업데이트 사이트 추가하기
Name에 알맞은 것을 입력하고(Subclipse
가 적당하다.), URL에 http://subclipse.tigris.org/update_1.0.x
(현재 Subclipse 업데이트 사이트)를 입력한다. OK를 클릭하여 Subclipse 업데이트 사이트를 업데이트 매니저의 리스트에 추가한다.
업데이트 매니저 창에 Finish를 클릭하여 새로운 기능을 검색한다. 이 경우, 우리가 찾고 있는 새로운 기능은 Subclipse이다. 잠시 후에, 업데이트 매니저의 검색이 완료되고, 검색 결과가 디스플레이 된다.
그림 4. 설치할 새로운 기능
Subclipse를 체크하고(닫힌 삼각형을 클릭하여 이 기능에 정확이 무엇이 포함되었는지를 볼 수 있다.), Next를 클릭하여 기능의 라이센스 조건을 검색한다. 조건을 수락하고, Next를 클릭하여 여러분이 선택했던 기능을 검토한다. Finish를 클릭하여 Subclipse를 다운로드 및 설치한다.
업데이트 매니저는 Subversion 컴포넌트를 다운로드 한다. 설치하기 전에, Eclipse는 이 기능들이 디지털 서명이 되지 않았음을 경고할 것이다. (그림 5) 이것이 설치를 취소할 수 있는 마지막 기회이다. Install All을 클릭하여 설치를 계속 진행한다.
그림 5. Subclipse가 디지털 서명 되지 않았다.
Subversion이 설치되면, Eclipse는 IDE를 재시작 하여 새로운 기능을 활성화 해야 한다고 경고한다. (그림 6) Eclipse를 바로 재시작 한다.
그림 6. 새로운 기능 설치 후에 Eclipse 재시작 하기
Eclipse를 재시작 하면, Subclipse가 설치되고 준비가 된다.
Mac OS X나 리눅스®에서 Eclipse를 실행한다면, JavaHL 라이브러리를 설치해야 하는데, 이것은 Subclipse FAQ의 Troubleshooting 섹션에 설명되어 있다. (참고자료) Subclipse를 사용하기 전에 이를 수행해야 한다.
설치를 완료하면 새로운 기능을 테스트 하는 것이 좋다. Subversion 저장소에서 Subclipse 카피를 체크하여 이것이 올바르게 설치되었는지를 확인한다.
Eclipse File 메뉴에서, Import를 선택하여 Import 매니저를 디스플레이 한다. (그림 7) SVN에서 Checkout Projects를 선택하고, Next를 클릭한다.
그림 7. Import 매니저
Select/Create Location 패널에서(그림 8), 새로운 위치를 만들고(아직 아무것도 설정하지 않았기 때문이다.), Next를 클릭하여 계속 진행한다. Next 버튼이 활성화 되지 않으면, Use existing repository location 옵션으로 전환하여, Create a new repository location으로 가서 Next 버튼을 실행한다.
그림 8. 새로운 저장소 위치 만들기
다음 섹션에서(그림 9), 저장소 URL(http://subclipse.tigris.org/svn/subclipse/
)을 Url 필드에 추가하고, Next를 클릭한다. 잠시 후에, Eclipse는 사용자 ID와 패스워드를 묻는다. Subclipse 사이트에 대한 계정이 없다면, ID에는 guest
를 패스워드는 공백으로 하고, Save Password 박스를 체크하고 OK를 클릭한다.
그림 9. 저장소 URL 추가하기
Eclipse는 Subclipse 저장소에 폴더들을 디스플레이 한다. (그림 10) 트렁크를 확장하고, subclipse 폴더를 선택한 다음, Finish를 클릭하여 Subclipse 프로젝트의 소스 코드의 카피를 체크한다. 이것이 무엇인지 모르기 때문에, New Project 마법사가 뜨면 Simple > Project를 선택한다.
그림 10. Subclipse 저장소
|
Subclipse를 성공적으로 설치했고, Subversion 서버용 지원을 Eclipse 설정에 추가했으며, 저장소에서 현재의 Subclipse소스 코드를 다운로드 함으로써 Subclipse를 테스트 했다. 이제, 코드와 Subversion 저장소가 어떻게 실행되는지를보자.
Subversion 작동 방법을 보기 전에, 저장소에 대해 잠깐 이야기 해보자.이것은 port 8000에 dogma라고 하는 머신에 호스팅 되었으며, 필자는 필자의 developerWorks 기술자료와연결된 새로운 developerWorks 코드용 저장소를 만들었다. 필자의 프로젝트를 직접 저장소의 루트에 놓을 것이다. 기타저장소들은 개발 버전, 태그 브랜치에 맞게 trunk, tags, branches 라는 이름의 폴더를 갖지만,developerWorks 기술자료 코드를 태깅 또는 브랜칭 할 염려는 없다.
필자는필자의 첫 번째 기술자료에서 두 개의 프로젝트, forkWork과 threadWork을 추가했다. 필자의 Eclipse워크스페이스(그림 11)에는 developerWorks 기술자료에서 온 세 개의 다른 프로젝트들도 포함되어 있다.(getopt_demo, getopt_long_demo, readdir_demo).
그림 11. 나의 Eclipse C/C++ 프로젝트
이제 실행을 시작해 보자.
새로운 프로젝트를 Subversion 저장소에 추가하려면, 프로젝트를 오른쪽 클릭하고(Eclipse의 프로젝트 뷰 또는 Navigator 뷰), 메뉴에서 Team > Share Project를 선택한다. Eclipse는 Share Project 다이얼로그를 디스플레이 한다.
그림 12. Share Project 다이얼로그
현재 Eclipse에서 지원되는 저장소 리스트에서 SVN을 선택하고 Next를 클릭한다. 다음 다이얼로그(그림 13)에서는 기존 저장소 위치를 선택하거나, 새로운 위치를 만들 수 있다.
그림 13. 저장소 위치 선택하기
저장소가 이미 리스팅 되었다면, 이것을 선택하고, Finish를 클릭한다. 저장소가 리스팅 되지 않았다면, 추가한 후 계속 진행한다. (빠른 테스트 참조) Eclipse는 프로젝트와 같은 이름으로 저장소에 새로운 디렉토리를 만들고, 프로젝트에 모든 파일과 폴더 리스트를 디스플레이 한다.
그림 14. 프로젝트 콘텐트 추가하기
위 영역에 프로젝트를 설명하는 알맞은 코멘트를 입력한 다음, Select All을 클릭하여 프로젝트에서 모든 파일들을 체크한다. OK를 클릭하여 프로젝트에 체크하고, 현재 상태를 Subversion 저장소로 보낸다.
Subversion의 명령어와 아웃풋이 Console 뷰에 디스플레이 되는데, 주로 Eclipse 윈도우 아래에 보인다. 프로젝트에 Subclipse가 정확히 무엇을 하는지 알 수 있다.
버전 관리 시스템의 핵심적인 기능 중 하나는 다른 개발자들이 개발을 진행하면서, 준비가 될 때마다 변경할 수 있는 기능이다. 변경 사항을 다운로드 하여, 로컬 카피에 통합시키려면, 프로젝트를 업데이트 해야 한다.
업데이트 하고자 하는 프로젝트를 오른쪽 클릭하고, 메뉴에서 Team > Update를 선택한다. Eclipse는 저장소에서 변경 사항을 검색하고, 로컬 카피와의 합병을 시도한다.
파일을 프로젝트에 추가하면(그림 15), 이것은 버전 관리의 일부가 자동으로 되는 것이 아니다. 구체적으로 이것을 저장소에추가해야 한다. 스크린샷을 보면, 필자가 ReadMe.txt 파일을 threadWork 프로젝트에 추가했음을 알 수 있다.
그림 15. 새로운 파일 추가하기
새로운 파일을 추가한 다음, Team > Add to Version Control을 선택한다. 이것이 전부이다. 다음에 이 프로젝트에서 저장소에 변경 사항이 이루어지면, 새로운 파일이 추가된다.
프로젝트와 더 이상 관련이 없는 저장소에 파일을 추가했다면, 쉽게 삭제할 수 있다. 파일을 오른쪽 클릭한 후에 Delete를 선택한다. Team 메뉴가 필요 없으며, Subclipse가 파일에 자동으로 삭제 플래그를 달며, 이것을 프로젝트로부터 삭제한다. 다음에 저장소에 변경 사항을 만들면, 파일이 삭제된다.
Subclipse의 컨트롤 아래에 있는 파일 또는 디렉토리를 재명명 하려면, 오른쪽 클릭을 하고, Rename을 선택한다. 엔트리 필드에 아이템의 새로운 이름을 입력하고 Enter를클릭한다. 파일이 프로젝트에서 재명명 되고, rename 연산(새로운 이름에는 Add, 오래된 이름에는 Delete)은 다음실행을 위해 대기한다. 그림 16은, main.c를 threadWork.c로 바꾼 후에 threadWork 프로젝트 모습이며,아직 변경 사항을 실행하기 전이다. 작은 파란색 더하기 부호는 Subclipse가 새로운 파일을 추가했음을 나타낸다.
그림 16. 추가 또는 삭제인 경우에도 파일 재명명은 기본이다.
프로젝트가 파일을 만들거나, Subversion 저장소에 추가하고 싶지 않은 파일을 포함하고 있을 경우, Subclipse에 이를무시하도록 명령할 수 있다. 버전 관리에서 배제하고자 하는 파일이나 디렉토리를 오른쪽 클릭한 다음, Team > Add to svn:ignore를 선택하여 Add to svn:ignore 다이얼로그를 디스플레이 한다.
그림 17. 버전 관리에 포함시키고 싶지 않은 리소스 무시하기
OK를 클릭하여 특정 파일을 프로젝트의 디렉토리용 svn:ignore 프로퍼티에 추가한다. Wildcard extension을 선택하여 현재 파일의 확장자를 가진 모든 파일들을 무시하거나, Custom pattern을 선택하여 고유의 와일드 카드를 추가하여 리스트를 무시한다. 무시 리스트에 이루어진 변경 사항은 다음에 변경 사항을 실행할 때 저장소에 추가된다.
프로젝트를 변경 했다면, 코드 컴파일, 변경 사항 테스트를 실행하고, Subversion 저장소에 이를 위임해야 한다. 이것은워크스테이션 자가 삭제의 경우 백업으로서 작동하고, 다른 개발자들이 로컬 카피들을 업데이트 하여 변경 사항을 포함시키도록 할 수있다.
변경 사항을 실행하기 전에 프로젝트를 업데이트 하라. ("프로젝트 업데이트" 참조) 프로젝트를 오른쪽 클릭하고 메뉴에서 Team > Commit을 선택한다. Eclipse는 Commit 다이얼로그를 디스플레이 하는데(그림 18), 여기에는 변경 사항이 요약되어 있다.
그림 18. 저장소에 변경 사항 실행하기
주의 깊게 살펴본다면, 프로퍼티 디렉토리에 프로퍼티 변화가 있었고(svn:ignore
프로퍼티를 추가하여 저장소에서 특정 파일들을 배제했다.), threadWork.c가 추가되면서 main.c가 삭제되었다. 이러한 변화 쌍들은 실제로 하나의 연산을 나타낸다. (파일 재명명)
저장소에서 빼고 싶다면, 리소스를 선택하지 않을 수 있다. 하나의 파일에서 작업을 부분적으로 마쳤고, 미완 변경 사항을 추가하고 싶지 않을 경우에 유용하다. 위 텍스트 필드에 알맞은 코멘트를 입력한 다음, OK를 클릭하여 변경 사항을 저장소에 추가한다.
|
Subclipse프로젝트는 Subversion 버전 관리 시스템을 CVS 서버만 지원하는 Eclipse의 탁월한 팀 프로젝트 관리 기능과통합했다. Eclipse의 업데이트 매니저를 사용하면, Subclipse를 Eclipse에 쉽게 추가할 수 있고, 이러한 탁월한버전 관리 시스템을 Eclipse에서 직접 사용할 수 있게 된다.
프로젝트를 저장소에 추가하고, 프로젝트의 리소스를 관리하는 것이 Subversion에 익숙하지 않은 사람들에게는 힘든 일이지만, 일반 연산 절차는 단순하다. 이 글이 여러분이 Subclipse를 익히는데 도움이 되었기 바란다.
교육
- "Eclipse의 정의와 사용 방법은?"부터 시작하자.
- Eclipse 시작하기(developerWorks): 최신 버전 Eclipse 링크, IBM Eclipse 정보, Eclipse 프로젝트 가이드.
- "Eclipse Platform에서의 C/C++ 개발 (한글)" 이 글은 Eclipse에 사용할 수 있는 최상의 C/C++ 툴킷인 C/C++ Development Toolkit (CDT)을 사용하는 방법을 설명한다.
- Subversion: 다운로드와 문서.
- Subclipse FAQ.
- CDT 프로젝트 페이지 (Eclipse.org).
- Eclipse Foundation과 기타 프로젝트.
- "Eclipse Platform 시작하기 (한글)." 환상적인 Eclipse Platform을 소개한다.
- IBM developerWorks의 Eclipse 프로젝트 리소스를 이용하여 이클립스 스킬을 넓혀보라.
- Eclipse 콘텐트 (영문) (developerWorks).
- developerWorks 오픈 소스 존: 오픈 소스 기술 관련 하우투 정보, 툴, 프로젝트 업데이트.
- developerWorks 기술 이벤트와 웹캐스트.
제품 및 기술 얻기
- 최신 Eclipse 다운로드 (IBM alphaWorks).
- IBM 시험판 소프트웨어를 이용하여 차기 오픈 소스 개발 프로젝트를 혁신해보라(다운로드 또는 DVD 제공).
토론
- Eclipse 뉴스그룹 홈
- developerWorks 블로그와 다양한 커뮤니티에 참여해보라.
Chris Herborth는 10년 이상의 경력을 가진 기술 라이터이다. 주로 운영 체계와 프로그래밍에 대한 글을 쓰고 있다. 아들 Alex와 아내 Lynette와 함께 살고 있으며, 비디오 게임을 디자인 및 연구하고 있다. |
'Android' 카테고리의 다른 글
앤드로이드 어플리케이션 설치 및 환경 설정 #1 - install the Android App. & set the configuration #1 (0) | 2009.12.09 |
---|---|
App Widgets (0) | 2009.12.09 |
JNI 예제 - HelloWorld JNI (0) | 2009.12.07 |
Font Color 주기(Reusable Spans) (0) | 2009.12.07 |
Android에 3D 회전 효과를 내는 방법 (0) | 2009.12.04 |