IBM®
메인 컨텐츠로 가기
    Korea [국가변경]    이용약관
 
 
   
        제품    서비스 & 솔루션    고객지원 & 다운로드    회원 서비스    
메인 컨텐츠로 가기

한국 developerWorks  >  오픈 소스  >

Eclipse Platform 시작하기

애플리케이션 편집, 컴파일, 디버깅, 실행의 토대로서 Eclipse 플러그인 사용하기

developerWorks
문서 옵션

JavaScript가 필요한 문서 옵션은 디스플레이되지 않습니다.

영어원문

영어원문


제안 및 의견
피드백

난이도 : 중급

Chris Aniszczyk, Software Engineer, IBM 
David Gallardo, Software Consultant

2007 년 9 월 04 일

Eclipse Platform의 기원과 아키텍처에 대해 알아봅시다. Eclipse의 오픈 소스 특징과 여러 프로그래밍 언어의 지원에 대해 간략히 설명하고, 간단한 프로그래밍 예제를 통해 자바™ 개발 환경을 설명합니다. 또한 플러그인 확장으로서 사용할 수 있는 소프트웨어 개발 툴에 대해서도 알아봅니다.
소셜 북마크

mar.gar.in mar.gar.in
digg Digg
del.icio.us del.icio.us
Slashdot Slashdot

후속 David Gallardo의 "Eclipse Platform 시작하기 (한글)"에서는 Eclipse V3.3과 관련 새로운 내용들을 실을 예정이다.

Eclipse란 무엇인가?

Eclipse는 자바 기반의, 확장성 있는 오픈 소스 개발 플랫폼이다. 그 자체로 플러그인 컴포넌트에서 애플리케이션들을 구현하는 프레임웍이자 서비스 세트이다. 다행스럽게도, Eclipse에는 Java Development Tools (JDT)를 포함하여 표준 플러그인 세트가 포함되어 있다.

대부분의 사용자들은 자바 통합 개발 환경으로서 Eclipse를 즐겨 사용하지만, 야망은 여기서 그치지 않는다. Eclipse에는 Plug-in Development Environment (PDE)가 포함되어 있는데, 이것은 Eclipse를 확장하고자 하는 사람들이 주로 관심을 보이고 있다. Eclipse 환경과 완벽히 통합되는 툴을 구현할 수 있기 때문이다. Eclipse의 모든 것들이 플러그인이기 때문에, 모든 툴 개발자들은 Eclipse에 확장을 제공하고 일관성 있는 통합 IDE를 사용자에게 제공할 수 있다.

이러한 일관성은 자바 개발 툴에만 국한되지 않는다. Eclipse가 자바 프로그래밍 언어로 작성되었지만, 자바 언어로만 사용이 제한되지 않는다. 예를 들어, 플러그인은 C/C++과 COBOL 같은 프로그래밍 언어에 대한 지원도 포함되어 있다. Eclipse 프레임웍은 콘텐트 관리 시스템 같은 소프트웨어 개발과 관련이 없는 다른 유형의 애플리케이션들을 위한 토대로서 사용될 수 있다.

Eclipse 기반 애플리케이션들의 다른 예로는 IBM® Rational® Software Architect(참고자료)가 있다. 이는 IBM의 자바 개발 툴의 토대가 된다.

Eclipse는 오픈 소스이다.

오픈 소스 소프트웨어는 특정 권한이 사용자에게 허용되도록 의도된 라이센스로 배포되는 소프트웨어이다. 물론 대부분의 권한은 소스 코드를 사용 가능하도록 만들어서 사용자들이 소프트웨어를 수정하고 재 배포 할 수 있도록 하는 것이다. 사용자 권리 보호는 카피레프트(copyleft)라고 하는 장치로 이루어진다. 소프트웨어 라이센스는 카피라이트(copyright) 보호를 요구하고 사용자에게 그러한 권한이 없는 한 배포를 할 수 없도록 하고 있다. 카피레프트 역시 재 배포된 소프트웨어가 같은 라이센스에 포함되어야 함을 명시하고 있다. 실제로, 이것은 카피라이트의 특성을 갖고 있으며 — 소프트웨어 개발자에게 권한을 주는 대신 사용자에게 권한을 허용하는 것이다. — 카피레프트 역시 "all rights reversed"로 종종 표현되고 있다.

오픈 소스 소프트웨어와 관련한 대부분의 불확실성과 의심은 소위 일부 카피레프트 라이센스의 바이러스적인 성질에서 기인한다. 여러분이 개발한 프로그램의 일부로서 오픈 소스 소프트웨어를 사용한다면, 그 라이센스는 여러분의 소유권 부분에 침투하기 때문에 지적 재산권을 잃게 될 것이라는 점이다. 다시 말해서, 이 라이센스는 새롭게 개발된 소프트웨어를 포함하여 모든 소프트웨어가 오픈 소스 소프트웨어로 묶여야 하며, 같은 라이센스 하에서 릴리스 되어야 한다. 이는 가장 유명한 카피레프트 라이센스인 GNU General Public License (Linux®는 이 라이센스로 릴리스 되고 있다.)의 경우에는 맞는 말이지만, 상용과 커뮤니티간에 다른 균형을 제공하는 다른 라이센스도 있다.

Open Software Initiative는 오픈 소스가 무엇인지를 명확하게 정의하고, 그 기준에 부합하는 라이센스를 인증하는 비영리 기구이다. Eclipse는 OSI 승인 Eclipse Public License (EPL) V1.0의 라이센스를 받았으며, Eclipse의 상용 채택을 의도하며, 오픈 소스 작성자들에게는 공정성을 유지하고 있다.

Eclipse용 플러그인을 구현하거나 소프트웨어 개발 애플리케이션의 토대로서 Eclipse를 사용하는 사람들은 이들이 사용하거나 수정하는 Eclipse 코드를 EPL하에서 배포해야 한다. 하지만 원하는 방식대로 추가 부분을 라이센싱 할 수 있다. Eclipse의 소프트웨어로 함께 묶인 상용 코드는 오픈 소스로 라이센싱 될 필요가 없고, 소스 코드는 사용하지 못하도록 할 수 있다.

대부분의 사람들은 플러그인을 개발하거나 Eclipse를 기반으로 새로운 제품을 생성하기 위해 Eclipse를 사용하지는 않겠지만, 오픈 소스로서의 Eclipse는 Eclipse를 무료로 사용할 수 있다는 단순한 사실 그 이상으로 중요하다. 오픈 소스는 혁신을 도모하고 오픈 소스 코드 베이스에 코드를 기여한 개발자들에게 인센티브를 제공하고 있다. 여기에는 많은 이유들이 있지만, 아마도 더 많은 개발자들이 프로젝트에 기여할수록 프로젝트에는 더욱 가치가 생기기 때문일 것이다. 프로젝트가 유용해 질수록, 더 많은 개발자들은 이를 사용하고 커뮤니티를 생성하게 될 것이다. Apache와 리눅스가 대표적인 예이다. (참고자료)




위로


Eclipse란 무엇인가?

Eclipse는 오픈 소스 커뮤니티로서, 이것의 프로젝트는 소프트웨어를 구현, 전개, 관리하기 위한 확장성 있는 프레임웍, 툴, 런타임으로 구성된 오픈 개발 플랫폼을 구현하는데 초점을 맞추고 있다. Eclipse Foundation은 비영리 기구로서 Eclipse 프로젝트를 호스팅 하고 있고 오픈 소스 커뮤니티와 보완 제품과 서비스를 발굴하고 있다.

Eclipse 프로젝트는 2001년 11월에 IBM에서 처음 만들어졌고 소프트웨어 벤더들의 컨소시엄의 지원을 받았다. Eclipse Foundation은 독립적인 비영리 기구로서 2004년 1월에 만들어졌으며, Eclipse 커뮤니티의 안내자 역할을 하고 있다. 벤더 중립적인, 개방적이고 투명한 커뮤니티를 통해 Eclipse에 기여하고 있다. 오늘날, Eclipse 커뮤니티는 소프트웨어 업계의 다양한 사람들과 조직들로 구성되고 있다.

Eclipse Foundation은 Eclipse의 지속적인 개발을 관리 및 진행하고 있다. 이 기구는 커뮤니티에 서비스를 제공하지만, Eclipse 프로젝트에서 실제로 작업할 오픈 소스 개발자들(커미터)를 고용하지는 않는다. Eclipse 커미터들은 기업들에 의해 고용되거나, 독립 개발자들이다.

지금까지, Eclipse의 정의, 역사, 의미를 살펴보았다. 이제 제품에 대해 살펴보도록 하자.




위로


Eclipse 워크벤치

처음 Eclipse를 열면, 시작 페이지를 보게 된다. (그림 1) Eclipse 사용자인 여러분에게는 개요 페이지로 갈 수 있는 몇 가지 옵션이 주어진다. (그림 2) 새로운 것을 확인하고, 샘플을 확인하거나, 튜토리얼을 확인한다.


그림 1. Eclipse 시작 페이지
Eclipse 시작 페이지


그림 2. Eclipse 개요 페이지
Eclipse 개요 페이지

Eclipse 워크벤치는 네비게이터 또는 아웃라인 뷰 같이, 뷰(views)로 알려진 여러 패널들로 구성되어 있다. 이러한 뷰들의 컬렉션을 퍼스펙티브(perspective)라고 한다. 가장 일반적인 퍼스펙티브 중 하나가 Resource 퍼스펙티브인데, 이는 프로젝트를 관리하고 프로젝트에서 파일을 보고 편집할 수 있는 기본적인 뷰이다.

신참 사용자들은 그림 2에 보이는 Overview 페이지에서 Eclipse에 대해 배우는 것이 좋다. 이 워크벤치 기본 섹션에는 Eclipse의 다양한 측면에 대한 유용한 정보가 포함되어 있다. 자료들을 읽은 다음에, Eclipse의 Java Development Tools (JDT)로 직접 간다. 직접 해보는 것 외에는 별다른 방법은 없다.

Eclipse를 좀더 연구하기 위해, 새로운 자바 프로젝트를 만들 것이다. File > New > Java Project를 선택하고 프로젝트 이름을 위한 프롬프트가 뜨면 Hello를 입력하고 Finish를 클릭한다.

다음에는, 자바 퍼스펙티브를 볼 것이다. 스크린을 어떻게 관리하느냐에 따라서, Window > Open Perspective > Java를 선택하여 현재 윈도우에서 퍼스펙티브를 변경하거나, Window > New Window를 선택하고 새로운 퍼스펙티브를 선택하여 새로운 윈도우를 열 수 있다.

자바 퍼스펙티브는 자바 개발에 더욱 알맞은 뷰들이 갖춰져 있다. 좌측 상단 뷰를 보면, 다양한 자바 패키지, 클래스, JAR, 여러 가지 파일들을 포함하고 있는 계층이 있다. 이 뷰를 Package Explorer라고 한다. 메인 메뉴가 확장되어 두 개의 새로운 메뉴 아이템인 Source와 Refactor도 포함되어 있다.




위로


자바 개발 툴 (JDT)

자바 개발 환경을 사용하려면, Hello World 애플리케이션을 생성 및 실행해야 한다. 자바 퍼스펙티브를 사용하여, Hello 프로젝트의 소스 폴더(src)를 오른쪽 클릭하고 New > Class를 선택한다. (그림 3) 다이얼로그 박스에서, 클래스 이름으로 Hello를 입력한다. Which method stubs would you like to create? 밑에서, public static void main(String[] args)를 클릭하고 Finish를 클릭한다.


그림 3. 자바 퍼스펙티브에서 새로운 클래스 만들기
자바 퍼스펙티브에서 새로운 클래스 만들기

이렇게 하면 Hello 클래스와 에디터 영역에 빈 main() 메소드를 가진 .java 파일이 만들어 진다. (그림 4) 다음 코드를 메소드에 추가한다. (i에 대한 선언은 생략했다.)


그림 4. 자바 에디터의 Hello 클래스
자바 에디터의 Hello 클래스

신택스 검사와 코드 완성을 포함하여 여러분이 입력한 Eclipse 에디터의 기능을 볼 수 있다. 또한, 열기 괄호나 더블 쿼트를 입력하면, Eclipse는 이것들의 파트너를 자동으로 제공하고 그 쌍 안에 커서를 배치한다.

다른 경우, Ctrl+1을 사용하여 코드 완성을 실행할 수 있다. 코드 완성은 키보드나 마우스에 의해서 선택할 수 있는 콘텍스트에 따른 제안 리스트를 제공한다. 이 제안들은 특정 객체에 대한 메소드 리스트가 될 수 있고 for 또는 while 같은 다양한 키보드에 기반하여 확장할 코드 스니펫이 될 수 있다.

신택스 검사는 점증적인 컴파일에 의존한다. 코드를 저장할 때, 백그라운드에서 컴파일 되고 신택스 에러를 검사한다. 기본적으로, 신택스 에러는 빨간색으로 밑줄이 그어지며, 빨간색 점과 하얀색 X는 왼쪽 공간에 나타난다. 다른 에러는 에디터의 왼쪽 여백에 백열 전구 모양으로 표시된다. 이러한 문제들은 에디터가 해결할 수 있다. (Quick Fix 기능)

위 코드는 for 문 옆에 백열 전구가 있다. i에 대한 선언이 생략되었기 때문이다. 백열 전구를 더블 클릭하면, 픽스 리스트가 나타난다. 이 경우, 클래스 필드 i 또는 로컬 변수 i 또는 메소드 매개변수 i를 생성할 것을 제안한다. 이러한 제안을 클릭하면 생성된 코드를 디스플레이 한다. 그림 5는 로컬 변수를 위해 제안한 리스트와 코드를 보여주고 있다.


그림 5. Quick Fix 제안
Quick Fix 제안

제안을 더블 클릭하면 코드의 적절한 위치에 코드를 삽입한다.

코드가 에러 없이 컴파일 되면, Eclipse 메뉴에서 Run을 선택함으로써 프로그램을 실행할 수 있다. (컴파일은 코드를 저장하면서 발생되므로 개별적인 컴파일 단계가 없다. 코드에 신택스 에러가 없다면 실행할 준비가 된 것이다.) Launch Configurations 다이얼로그 박스가 나타난다. 우측 하단에 있는 Run을 클릭한다. 아래쪽 패널(Console)에 새롭게 탭이 달린 패널이 나타나면서 프로그램의 아웃풋을 디스플레이 한다.


그림 6. 프로그램의 아웃풋
프로그램의 아웃풋

자바 디버거에서 프로그램을 실행할 수 있다. 우선, System.out.println()에 대한 호출 옆에 있는 에디터 뷰의 왼편에 있는 회색 부분을 더블 클릭하여 main() System.out.println()에 중단점을 설정한다. 파란색 점이 나타난다. Run 메뉴에서, Debug를 선택한다. 이 퍼스펙티브는 Debug 퍼스펙티브로 자동으로 바뀌면서, 많은 새로운 뷰들이 함께 나타난다.


그림 7. Debug 퍼스펙티브
Debug 퍼스펙티브

퍼스펙티브의 좌측 상단에 있는 Debug 뷰를 주목하라. 이 뷰는 호출 스택을 보여주고, 프로그램의 실행을 제어할 수 있는 타이틀 바에 툴바를 갖고 있다. 프로그램을 시작, 중지, 종료하고, 다음 문으로 진행하고, 다음 문으로 건너 뛰거나 메소드에서 리턴하는 버튼이 포함된다. 우측 상단에 있는 패널에는 Variables, Breakpoints, Expressions, Display 등, 탭이 달린 뷰들이 포함되어 있다. 필자는 Variables를 클릭하여 현재 i의 값을 볼 수 있었다.

콘텍스트 기반 도움말로 뷰에 대한 정보를 볼 수 있다. 뷰의 제목을 클릭하고 F1을 누른다.




위로


추가 플러그인

애플리케이션의 편집, 컴파일, 디버깅을 위한 JDT 같은 플러그인 외에도, 모델링, 빌드 자동화, 단위 테스팅, 성능 테스팅, 버전 관리, 설정 관리 등 전체적인 개발 프로세스를 지원하는 플러그인도 사용할 수 있다.

Eclipse에는 소스 제어에 사용되는 오픈 소스 Concurrent Versions System (CVS)에서 작동하는 플러그인이 포함된다. Team 플러그인은 CVS 서버로 연결되어, 개발 팀 멤버들이 각자의 변경 사항에 개입하지 않고 소스 코드 파일에 대해 작업할 수 있다. Eclipse 내에서의 소스 제어는 이 글에서는 설명하지 않겠다. 하지만 개발 팀을 지원하는 기능은 Eclipse의 중요한 기능이다.

찾을 수 있다. 사용할 수 있는 플러그인의 전체 리스트는, Eclipse Plug-in Central을 참조하라.




위로


Eclipse Platform 아키텍처

Eclipse Platform에는 JDT와 PDE 같은 프로젝트를 지원하는 강력한 플러그인 세트들이 포함되어 있다. (그림 8)


그림 8. Eclipse Platform 아키텍처
Eclipse Platform 아키텍처

진한 청색 부분은 Eclipse의 Rich Client Platform (RCP)의 핵심 부분인 컴포넌트들을 나타낸다. RCP의 개념은 이 글에서는 설명하지 않겠지만, Lotus Notes® 8 같은 애플리케이션을 개발할 때 사용할 수 있는 플러그인으로 생각하면 된다. 옅은 청색 부분은 선택 항목(권장)으로서 RCP 기반 애플리케이션에 포함된다. 회색 부분은 선택적이다. 플랫폼은 여러 컴포넌트들로 구성되어 있다.

Runtime
런타임은 OSGi 스팩에 기반하여 Eclipse의 플러그인 모델과, 확장 및 확장 포인트 개념을 정의하는 코드이다. 이 런타임은 로깅과 동시성 같은 추가 서비스들도 제공한다.
JFace/SWT
Standard Widget Toolkit (SWT)은 Eclipse에 룩앤필을 제공하는 위젯 세트이다. JFace 는 SWT의 상단에 있는 레이어로서, Model-View-Controller (MVC) 클래스를 제공하여 그래픽 애플리케이션의 개발을 더욱 쉽게 한다.
Workbench
워크벤치는 Eclipse에 개성을 부여한다. 뷰의 개념, 퍼스펙티브, 에디터 같은 것들이 이 레벨에서 정의된다.
Help (User Assistance)
사용자에게 도움을 주는 Eclipse 컴포넌트이다. 도움말 시스템을 통해 수행될 수 있으며, 사용자들은 도움말 문서 또는 cheatsheet를 통해 검색할 수 있다. 이는 엔드 유저를 위한 인터랙티브 태스크 리스트로 볼 수 있다.
Update
애플리케이션 버전을 업데이트 할 수 있는 장치를 제공한다.
Team
벤더들이 버전 관리 시스템을 연결할 수 있도록 하는 프레임웍으로 구성된다. 대표적인 예로 Eclipse에서 제공되는 CVS 플러그인을 들 수 있다.



위로


결론

IBM의 코드 기여로 탄생한 Eclipse는 100개 이상의 기업들이 참여하는 성숙한 오픈 소스 시스템으로 성장했다. 이식성 있고, 확장 가능한 오픈 소스 프레임웍은 새로운 개념은 아니지만, Eclipse의 강력함과 고급스러운 디자인은 새로운 장을 개척하고 있다.

여러분도 Eclipse를 사용하기 바란다. 우리의 목표는 여러분이 Eclipse 플랫폼을 빨리 시작할 수 있도록 하는 것이다. 이 글을 통해서 그러한 목표를 일부 달성했다. 이 글이 많은 도움이 되었기 바라며, Eclipse를 적극적으로 사용하게 되길 바란다.



참고자료

교육

제품 및 기술 얻기

토론


필자소개

Chris Aniszczyk

Chris Aniszczyk는 IBM Lotus 팀에서 OSGi 관련 개발 분야의 소프트웨어 에지니어이다. 오픈 소스에 대한 강한 열정을 지니고 있으며 Gentoo Linux로 작업하고 있다. 몇몇 Eclipse 프로젝트(PDE, ECF, EMFT)의 커미터로서도 활약하고 있다. 언제라도 오픈 소스와 Eclipse에 대해 이야기할 준비가 되어 있다.


David Gallardo는 소프트웨어 국제화, 자바 웹 애플리케이션, 데이터베이스 개발 전문 컨설턴트 겸 작가이다. 15년 이상을 전문 소프트웨어 엔지니어로 활동했으며, OS, 프로그래밍 언어, 네트워크 프로토콜 등의 경험을 쌓았다. 최근에는 B2B 전자 상거래 회사인 TradeAccess, Inc.에서 데이터베이스 및 국제화 개발을 이끌었다. 이전에는 Lotus Development Corporation에서 International Product Development 그룹에서 엔지니어로 활동하면서, Domino를 포함한 Lotus 제품들을 위한 유니코드 및 국제화 언어 지원을 제공하는 크로스 플랫폼 라이브러리 개발에 기여했다.




기사에 대한 평가


보다 나은 서비스를 제공하기 위함이오니 잠시 짬을 내어 이 양식을 제출하여 주십시오.



 


 


 


이 문서 북마킹 하기

mar.gar.in mar.gar.in naver naver eolin eolin del.icio.us del.icio.us





위로


developerWorks 콘텐트를 다른 사이트에 전재하기:
developerWorks 콘텐트에 대한 저작권은 IBM에 있습니다. IBM의 서면 허가나 원본 저자의 허락이 없이는 전재를 금합니다. 저희 콘텐트를 전재하시려면 IBM developerWorks 담당자 에게 문의하십시오.
    IBM 소개 개인정보 보호정책 문의