본문 바로가기

Eclipse/Plugin

이클립스 RCP 개념

우리는 Java Application 개발을 편하게 하기 위해 Eclipse IDE를 사용하고 있다.


그렇다면 Eclipse IDE는 무엇으로 개발이 된 것일까?



위의 그림을 살펴보면 RCP(Rich Client Platform) 위에서 개발된 것을 확인할 수 있다.


RCP 어플리케이션은 플러그인의 집합(SWT, JFace, Workbench UI)플러그인을 실행하기 위한 런타임(Platform Runtime - based on OSGi) 으로 구성된다.


그렇다면 우리가 궁금해야 할 것들은


이클립스가 플러그인을 어떻게 관리하는지?


플러그인은 스스로에 대한 정보를 가지고 있다. 그리고 함께 동작해야 할 다른 플러그인에 대한 정보를 지정한다. 

-> 런타임이 이걸 보고 의존성 해결해주고 플러그인을 결합해준다.


플러그인 들여다보기


이클립스의 기본 개발단위인 플러그인에 대해 살펴보자

  • MANIFEST.MF : 플러그인에 대한 명세와 다른 플러그인과의 관계
  • plugin.xml : 플러그인이 기여하는 확장과 확장점 선언



이클립스 설치 확인


이클립스를 설치하면 해당 경로는 어떤 모습일까?

  • configuration 
  • plugins : swt, rcp, osgi, ui, ui.workbench 등
  • eclipse.exe

OSGi framework


위에서 얘기한 런타임이 플러그인들을 조립해줘야 한다고 하였는데 그 역할을 해주는 것이 OSGi이다. 그리고, 이클립스 설치 경로 plugins에 보면 osgi.jar가 있는 것을 확인할 수 있다.


OSGi는 플러그인(번들)마다 각각의 클래스로더를 갖도록 클래스로딩을 나누고 관리함으로써 번들과 번들의 코드를 관리한다. 번들의 클래스경로는 내역서 안에 지정된 의존관계에 따라서 동적으로 구성된다.


런타임


런타임은 두가지 메커니즘을 가지고 있다. 바로 애플리케이션 모델확장 레지스트리이다.

  • 애플리케이션 모델 : 애플리케이션을 실행 시킬때를 정의 ( ex : product - splash 화면 등 정의 가능 )
  • 확장 레지스트리 : "내가 이렇게 생긴 정보를 준다면, 내가 ~~~을 하겠다." 



'Eclipse > Plugin' 카테고리의 다른 글

Platform architecture ( 이클립스 플랫폼 아키텍처 )  (0) 2017.09.15
기타  (0) 2017.04.04
Help>About 커스터마이징하기  (0) 2017.04.01
PDE 개념 이해하기  (0) 2017.03.15