시소당
1) 아키텍쳐의 핵심
- 확장성과 통합성 고려하여 설계됨
- IDE의 공통 패턴화
- 가장 작은 기능 단위를 plugin 으로 설계
- extension point(확장점) 이라는 기여 매커니즘(contribution mechanism)을 사용.
이는 플러그인 자신의 재사용을 위해 플러그인의 확장성을 공개적으로 선언하는 수단.
다른 플러그인이 확장을 어느 부분에서 기여할 수 있는지를 정의.
2) IDE 플랫폼 이클립스 와 리치 클라이언트 어플리케이션
- IDE 중심의 툴을 만들기 위한 재사용 가능하고 확장 가능한 프레임워크
- Native look and feel 따르는 일반적인 어플리케이션을 만들기 위한 프레임워크
- Layered architecture
- 이클립스를 확장할 때에는 사용자 인터페이스에서 확장을 어떻게 할 건지 뿐 아니라,
아키텍처의 어떤 계층에서 확장을 할 것인가도 결정.
3) 이클립스 플랫폼 런타임
- 이클립스의 모든 기능은 플러그인에 의해 제공
- 이클립스 플랫폼 런타임은 이클리스 startup , 설치된 로컬 플러그인을 찾아서 각 설정 파일을 읽어 확장과 확장점을 일치시킨다.
- OSGi 컴포넌트 기반의 런타임
- 동적 플러그인 로딩 기능
- manifest.mf라는 번들 설명서 : osgi를 설정하는 부분
4) 사용자 인터페이스 프레임워크 (UI Framework)
4.1) Workbench UI Plug-in
- 구성: Editor parts, JFace text(고성능의 편집기), View parts
4.2) JFace UI Frameworks
- 구성:
viewers(swt를 모델로 하고 이 뷰어를 이용하는 형태 제공),
dialogs and wizards(이클립스의 사용자 상호 작용을 정의할 때 사용함),
actions and contritubutions(액션기능의 추상화와 기여 기반의 ui 개념 정의),
image and font registry(Global registry를 이용하여 공통으로 사용되는 이미지,폰트 생성/삭제하는 작업을 도와줌)
- 유지보수와 새로운 환경으로의 이식을 용이하게 해줌
- SWT를 보완하기 위해 설계됨
- model-based approach 사용 : ui 개발 시, 더 적은 시간,이해하기 쉬운, 재사용 가능한 코드 작성할 수 있게 함. (모델 - 뷰 상호 작용 형태 )
- 목적: 추상화하여 중복되는 코드를 줄이고 swt가 제공하는 위젯의 활용성 높이는 것
4.3) SWT Framework
- 표준 위젯 툴킷으로 그래픽 객체와 그래픽 사용자 인터페이스 위젯의 모음
- native widget 기반
- native window system 기반에서 쓸수없는 위젯의 경우, swt가 에뮬레이션해준다
- 다른 플러그인이 swt의 기능을 쉽게 활용할 수 있도록 하기 위한 것
5) 워크벤치 프레임워크
- 대화상자 설정,환경설정,사용자 설정에 대한 API 제공
- RCP 으로 어플리케이션 만들기
- concurrency 프레임워크 이용 ( job 이라고 하는 백그라운드 프로세싱- 멀티스레드 기능)
- 기능 명세를 통해 사용 가능한 ui를 통제 가능함
[출처] 이클립스 아키텍쳐|작성자 2skfro
http://blog.naver.com/PostView.nhn?blogId=2skfro&logNo=80034240603&categoryNo=30&parentCategoryNo=30&viewdate=&cpage=1&postListTopCurrentPage=2