2015.07.01
TRANSCRIPT
2015.07.01 일일 업무
1. 자리안내, 네트워크연결, 구성원 인사2. 개발 환경 구축3. 회식4. Eclipse RCP 교육5. Eclipse 기본 내용 학습6. RCP 탬플릿을사용하여 RCP어플리케이션실행
Eclipse RPC 환경구축
1. jre(java runtime environment)2. Jdk(java development kit)3. Eclipse for RCP and RAP Developers LUNA 4.4.24. Windows Builder (Help > install new software (http://download.eclipse.org/windowbuilder/WB/release/R201506241200-1/4.4/)
Eclipse RCP 학습_01
1. 이클립스는통합개발환경(Intergrated Development Environment)이다.이클립스는플러그인들의집합이다. 그 중에서도 RCP는 이클립스의여러 확장점들중 최상위인org.eclipse.core.runtime.products를확장점으로하여 client용 어플리케이션을개발하는것이다.2. RCP(Rich Client Platform)는리치 클라이언트어플리케이션을개발하고배포하기위한 플랫폼이다. OSGi 표준기반의컴포넌트프레임워크인에퀴녹스및 다양한운영체제의네이티브 GUI공급능력, 중앙서버를통한배포 및 업데이트매커니즘을제공한다.>OSGi(Open Source Gate Inititaive framework) : 자바를위한모듈시스템이자서비스, 이러저러한서비스들에대한 Java 인터페이스정의아키텍처 : OSIG 표준을구현하는프레임워크는번들 단위로애플리케이션모듈환경을제공한다.>>번들 : 관리를위한 특별한 manifest를가지고있을뿐 보통 jar 파일이다.>>>MANIFEST.MF : 번들은자바 클래스와추가적리소스로구성되며, 번들에대한자세한설명을 담은 MANIFEST.MF 파일을포함한다. 이는 Java JAR 패키딩에사용되는 MANIFEST.MF와호환되며, OSIF 운용을위해 번들헤더에서사용하는특수한키들이존재한다.>Equinox : 이클립스 IDE의 기반이되는 OSGi 런타임이름이다. OSGi core framework의구현체이며 Eclipse의 기본런타임구현체이다.
Eclipse RCP 학습_02
1. Eclipse : 커뮤니티, 생태계, IDE, 프로젝트, 플랫폼, 플러그인기반구조2. Plug-In : 구조화된번들로시스템의기능을수행하는데 필요한코드또는 데이터다. 기능은
라이브러리, 플랫폼확장또는 문서등으로달성될수 있다. 플러그인은확장점을정의할수 있다. 확장점은다른플러그인들이기능을추가할수 있도록잘 정의해둔지점을말한다.
>확장점(Extension Point) : 한 플러그인이다른플로그인과협력하는주요수단으로각각서비스와 스펙을정의한다. 정의된확장점은다른 플러그인이가진확장들에의해구현된다. 확장점은 id로 구분이되며플러그인 id를 네임스페이스로사용한다. 확장점방식 : 서비스사용자가인터페이스를결정하고선언한 뒤, 아직 존재하지않는서비스를이용하는방식이다.확장점선언 : plugin.xml내에서 XSD 파일을연결하여정의된다. 기본적으로확장은 XML 노드로표현되기때문에이에대한스펙 역시 XSD로 정의할수 있다.>>plugin.xml은 플러그인프로젝트에존재하는플러그인명세파일이다. 이 파일에는플러그인이출판하는확장점과이 플러그인이구현한확장들이 XML로나열되어있다. 이클립스가시작될때모든 plugin.xml들은 플러그인을시작 시키지않고 먼저로드된다.
Eclipse RCP 학습_03
1. Eclipse SDK (Software Development Kit) : 여러가지가있겠지만 JDT(Java Development Tools 자바개발 환경구현), PDE(Plug-in Development Environment 플러그인및 확장점개발을 위한도구)을구성한다.2. Bundle : 플러그인이 platform에특화된용어인것과 달리 Bundle은 OSGi 런타임에서다뤄지는범용 컴포넌트를의미한다. 이클립스는에퀴녹스라는 OSGi 런타임을기반으로하므로, 플러그인도번들의한 종류이다.>OSGi(Bundle),Eclipse(Pulgin)3. SWT(Standard Widget Toolkit) : an open source widget toolkit for Java designed to provide efficient, protable access to the user-interface facilities of the operating systems on which it is implementedAWT보다좀 더 다양한 GUI 구성 요소집합이제공된것이 Swing(다양한룩 앤 필 제공)>룩 앤 필 : 인테페이스의주된 기능SWT는윈도 시스템에서제공하는고유의그래픽구성요소를자바네이티브인터페이스(JNI)를통하여직접적으로사용하며스윙에비해 하위수준의간단한구현을가진다. 따라서 MVC같은 것은 직접적으로지원을못한다. 따라서좀 더 추상화된고수준의패턴을지원하기위해 JFace를병기하여쓴다.>JFace : SWT 기반에서제공되는중수준의위젯, MVC 모델구현(필터, 정렬, 업데이트기능을갖춘 뷰어들제공), 메뉴, 툴바, 버튼, 마법사, dialog등 제공
Eclipse RCP 개발관련
1. 플러그인개발>플러그인을통합하기위해어떤확장점을활용해야하는지식별할것확장점스펙을구현할것패키징을위한메니페스트파일과플러그인을위한 메니페스트파일을작성 할 것Plugin 구조는 DIP를 구현한예, 상위모듈이하위모듈에의존하지않는다.(상위와하위객체모두가 동일한추상화에의존한다.)
2. 주요 파일>plugin.xml(Eclipse 용 manifest file)MANIFEST.MF(OSGi용 manifest file)
3. 워크벤치(http://o7planning.org/web/fe/default/en/document/16608/eclipse-rcp-for-beginners-workbench-application)>런타임최상위에서 SWT와 Jface에게유연성을제공하고, view, editor, perspective, action, wizard, preference등제공, org.eclipse.ui.workbench
Eclipse RCP 개발관련
3. 워크벤치_continue>Page : 하나의워크벤치윈도우에는하나의 IWorkbenchPage가존재Perspective : 활성화된 perspective 내에 view의크기와위치를제어한다.View/Editor>>createPartControl() : SWT 위젯을만들기위해구현한다.dispose() : view, editor가닫히면실행