SlideShare una empresa de Scribd logo
1 de 58
Eclipse Rap  Single Source - desktop, web, mobile
Eclipse Memory Analyzer (RAP) http://eclipse.org/mat/
목 차 Eclipse RAP란? Eclipse 살펴보기 SWT (Widget소개) SWT (Layout 소개) JFace(Viewer 소개) RAP Architecture 개발환경 Setup 및 HelloWorld RAP 개발 살펴보기 JUnit Test RAP 장점 RAP 단점 RAP Incubator Demo 참고자료 Eclipse RCP Eclipse RAP
Eclipse Rich Ajax Platform (RAP) 2006년 6월 시작(0.1 시작 ~현재 1.4 RC3) 확장 포인트 개발 RWT(RAP Widget Toolkit)/JFace사용 기본 베이스는 OSGi Eclipse RAP란?
Eclipse RAP란? ,[object Object],[object Object]
Eclipse 살펴보기 Runtime is OSGi(Equinox) Generic Workbench Workspace Help Team Plugin(Bundle)
Eclipse 살펴보기
Eclipse 살펴보기
SWT(Widget 소개)
SWT(Widget 소개)
SWT(Widget 소개)
SWT(Widget 소개)
SWT(Layout 소개)
SWT(Layout 소개) FillLayout shell.setLayout(new FillLayout(SWT.VERTICAL)); shell.setLayout(new FillLayout());
SWT(Layout 소개) RowLayout shell.setLayout(new RowLayout()); ,[object Object], wrap    : 기본값은 true 이며, 한줄로 유지 하고 싶을 경우에 false.  pack    :  기본값은 true 이며, 기본 control이 모두.  justify : 기본 값은 false 이며, 부모 콘트롤 전반적으로 균등하게 배치. ,[object Object],특정 Widget의 width, height를 정의.
SWT(Layout 소개) GridLayout final Shell shell = new Shell(); final GridLayout gridLayout= new GridLayout(); gridLayout.numColumns = 3; shell.setLayout(gridLayout); ,[object Object],특정 Widget의 정렬방식 및 영역 채우기 등의 방법을 지정.
JFace (Viewer 소개) Viewer는? Model, View, Control을 분리 Sorting,Filtering Rendering(Icon, Label) 종류 TableViewer TreeViewer ListViewer ComboViewer TextViewer
Viewer 소개
JFace(ContentProvider) IStructuredContentProvider : Table, List 사용 Object[] getEmement(Object) ITreeContentProvider : Tree  사용 Object[] getChildren(Object) : 자식 객체  리턴 getParent(Object) :부모 객체 리턴 hasChildren(Object) : 자식 객체 유무 ILazyContentProvider          : SWT.VIRTURAL
JFace(LabelProvider) ILabelProvider: Tree, List 사용 getImage(Object) :해당 이미지 리턴 getText(Object) :해당 텍스트 리턴 ITableLabelProvider : Table 사용 getColumnImage(Object, int) getColumnText(Object, int)
RAP Architecture RAP Server Side Client Side RWT == SWT & RWT != SWT qooxdoo  -> RWT RCP
개발환경 Setup 및 HelloWorld RAP
RAP개발 환경 환경 JDK 6.x Eclipse  RCP and RAP Developers(3.6.2)  	rap target platform  (runtime 1.4 RC3, 2011-06-04) Jetty, Tomcat 6.x Tool :WTP(Web Tool Project, v1.5) or ucloudps IDE https://hcs.ucloud.com/portal/ktcloudportal.epc.ucintro.ps.services.html
Target Platform 설정 ,[object Object]
버전 업에 따른 변화 대응.
사용자 정의 lib설정 및 공통 lib 정의.
다양한 멀티 platform의 변화 대응.
Target Platform 설정
New-> Project or
New -> Target Definition	Help -> Welcome -> Rich Ajax Platform(RAP) 	-> Install Target Platform
HelloWorld RAP New      PlugIn Project
실행 방법 ,[object Object],[object Object]
실행환경 -console : 콘솔 모드로 시작  (osgi커맨드 사용)-consolelog : 콘솔에 로그를 출력 -Declipse.ignoreApp :  응용프로그램을 실행하지 않습니다. -Declipse.noShutdown : OSGi가  종료되지 않는 한 프로그램을 종료하지 않습니다.
HelloWorld RAP plugin.xml : plugin 정보를 수록. MANIFEST.MF : Bundle 환경파일로 plugin 이름, 버전 ID, classpath, plugin 의존관계 정보. build.properties : 배포 시에 포함되어야 하는 리소스정보 및 빌드 정보 정의. Application : Workbench, Application UI 시작. ApplicationWorkbenchAdvisor : Workbench의 시작과 종료를 관리. ApplicatonWorkbenchWindowAdvisor : menu,  toolbar,  StatusLine 등의 window에 대해 정의. ApplicationActionBarAdvisor :  menu, toolbar, Statusline등의 실제를 구현. Perspective : 사용자 화면을 구성.
Eclipse RAP 요소 살펴보기
HelloWorld RAP Overview : plugin 정보 출력. Dependencies : 사용할 plugin을 정의. Runtime :  외부 plugin이 자신을 참조 할 수 있는지 여부와 외부 library(jar)등을 정의. Extensions : 외부 plugin의 기능을 확장하기 위한 정의. Extension Points : 자신의 기능을 확장하기 위한 확장 점을 정의.  Build : 배포 시에 포함되어야 하는 리소스 선택. MANIFEST.MF :   plugin.xml :  build.properties:
Extensions and Extension Point Eclipse는 확장과 기증을 통해 개발합니다. Extensions : Dependencies에 정의된 plugin기능을 확장하여  개발. Extension Point : 자신이 구현한 기능을 외부 에서 확장하여 사용 할수 있도록 정의. -Extension : RAP 시작 포인트
Startup Point Extensions org.eclipse.rap.ui.entrypoint
Perspectives ,[object Object],(사용자가 개발한 view나 editor 및 참조한 plugin에서 구현된 화면). ,[object Object],org.eclipse.ui.perspectives
Commands and Actions 메뉴나 툴바를 이용하여 사용자에게 행위 부여. 이미 정의된 기능을 사용할 수있도록 구현과 실행의 분리.(참조한 플러그인 및 내가 구현한 플러그인) -Extension
Menu and Toolbar 전후관계 표시 가능 : 예를 들어서  신규 추가 일 경우 -> menu:org.eclipse.ui.main.menu?after=additions  표시특 정 메뉴 뒤에 위치 하고자 할경우 after,  이전에 위치하고자 할 경우 before를 사용할 수 있습니다. 예를 들어, menu:org.eclipse.ui.main.menu?after=com.study.sample.rcp.mainMenu.file
View and Editor Editor 모든 editor가 공유하고 editor영역 안에 위치한다. editor영역 안에서 분할은 가능하지만 Workbench Window를 벗어날 수 없다. 주 메뉴와 메인 툴 바를  공유한다 사용자가 변경을 수행해도 바로 저장되지 않는다. 명시적으로 요청해야 한다. -Extension  org.eclipse.ui.editors ,[object Object]
자신만의 메뉴와 툴바정의.
드래그하여 Workbench Window 밖으로 빼낼 수 있다.-Extension  org.eclipse.ui.views
 Selection Services Part간의 이벤트 전달 사용 : public class TestViewer … implement ISelectionListener 서비스 등록 : getSite().setSelectionProvider( tableViewer );  외부 서비스 실행 : getSite().getPage().addSelectionListener(this); 종류
Job and UIJob Job의정의 public class JobExample extends Job   protected IStatus run(IProgressMonitor monitor) ;   public booleanbelongsTo(Object lastName) ; Job의 실행 new JobExample().schedule();  Job의 관리 IJobManagerjobManager = Job.getJobManager();
Label Decorator 현재  Label의 아이콘을 조건에 따라  변경. ,[object Object],org.eclipse.ui.decorators
Preference Pages 시스템 환경변수 설정정의. - Extension org.eclipse.ui.preferencePages org.eclipse.core.runtime.preferencs
Help Help -> Help Contents 메뉴 호출 검색엔진(Apache Lucene)이 내장되어 검색 기능. F1눌렀을 때 도움말 지원기능.(문맥감지 기능) 다국어 지원. 독립 실행 도움말 제공. Extension org.eclipse.help.toc org.eclipse.help.contexts http://wiki.eclipse.org/RAP/FAQ#How_to_integrate_the_Eclipse_Help_System_in_a_RAP_application.3F
Themes(css) Extension org.eclipse.rap.ui.themes
Branding Extension org.eclipse.rap.ui.branding
지역화 Plugins  -> PDE Tools -> Externalize Strings Source code -> Externalize String… Util소개 (Resource Bundle Editor) 	(http://sourceforge.net/projects/eclipse-rbe)
Exporting (Tomcat) 필요 Resource(RAP Deployment – Part 2: Deploying as WAR) cvs(dev.eclipse.org)에서 Checkout  org.eclipse.equinox -> server-side -> bundles org.eclipse.equnox.servletbridge ort.eclipse.equnox.http.servletbridge org.eclipse.equnox.http.registry org.eclipse.rap -> releng org.eclipse.rap.demo.feature cvs와  연결끊기 자신의 update 프로젝트로 이름 변경
Exporting (Tomcat) Context web.xml
JUnit Dependencies : org.eclipse.rap.junit
RAP 장점(RWT vs SWT) RAP RCP
RAP 장점 Modularity~ JFace Workbench
RAP 장점 Single Source (RAP to RCP) Tadpole RCP Tadpole RAP

Más contenido relacionado

La actualidad más candente

올챙이 확장으로 살펴보는 이클립스 확장
올챙이 확장으로 살펴보는 이클립스 확장올챙이 확장으로 살펴보는 이클립스 확장
올챙이 확장으로 살펴보는 이클립스 확장cho hyun jong
 
Eclipse 4 RCP - 2nd Week
Eclipse 4 RCP - 2nd WeekEclipse 4 RCP - 2nd Week
Eclipse 4 RCP - 2nd WeekTaewoo Kim
 
[H3 2012] Bridge over troubled water : make plug-in for Appspresso
[H3 2012] Bridge over troubled water : make plug-in for Appspresso[H3 2012] Bridge over troubled water : make plug-in for Appspresso
[H3 2012] Bridge over troubled water : make plug-in for AppspressoKTH, 케이티하이텔
 
2018 03-05-robot framework
2018 03-05-robot framework2018 03-05-robot framework
2018 03-05-robot frameworkyacc01
 
CI in the Mobile World (한글번역)
CI in the Mobile World (한글번역)CI in the Mobile World (한글번역)
CI in the Mobile World (한글번역)DONGSU KIM
 
ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자Sewon Ann
 
[오픈소스컨설팅]Gradle Basic - How to use Gradle in Java Project
[오픈소스컨설팅]Gradle Basic - How to use Gradle in Java Project[오픈소스컨설팅]Gradle Basic - How to use Gradle in Java Project
[오픈소스컨설팅]Gradle Basic - How to use Gradle in Java ProjectJi-Woong Choi
 
솔루션 구축 사례를 통해 본 SW아키텍처
솔루션 구축 사례를 통해 본 SW아키텍처솔루션 구축 사례를 통해 본 SW아키텍처
솔루션 구축 사례를 통해 본 SW아키텍처Lim SungHyun
 
실무에서 라라벨 테스트를 작성하다 알게 된 것
실무에서 라라벨 테스트를 작성하다 알게 된 것실무에서 라라벨 테스트를 작성하다 알게 된 것
실무에서 라라벨 테스트를 작성하다 알게 된 것Hyun-Seok Lee
 
swig를 이용한 C++ 랩핑
swig를 이용한 C++ 랩핑swig를 이용한 C++ 랩핑
swig를 이용한 C++ 랩핑NAVER D2
 
URQA 삼성 컨퍼런스 발표
URQA 삼성 컨퍼런스 발표 URQA 삼성 컨퍼런스 발표
URQA 삼성 컨퍼런스 발표 YoungSu Son
 
[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효NAVER D2
 
Spring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCodeSpring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCodedpTablo
 
gradle로 안드로이드 앱 빌드하기
gradle로 안드로이드 앱 빌드하기gradle로 안드로이드 앱 빌드하기
gradle로 안드로이드 앱 빌드하기Manjong Han
 
처음 시작하는 라라벨
처음 시작하는 라라벨처음 시작하는 라라벨
처음 시작하는 라라벨KwangSeob Jeong
 
XECON2014 Laravel 프레임워크 소개
XECON2014 Laravel 프레임워크 소개XECON2014 Laravel 프레임워크 소개
XECON2014 Laravel 프레임워크 소개Jung soo Ahn
 

La actualidad más candente (20)

Eclipse RCP 2/2
Eclipse RCP 2/2Eclipse RCP 2/2
Eclipse RCP 2/2
 
올챙이 확장으로 살펴보는 이클립스 확장
올챙이 확장으로 살펴보는 이클립스 확장올챙이 확장으로 살펴보는 이클립스 확장
올챙이 확장으로 살펴보는 이클립스 확장
 
Eclipse 4 RCP - 2nd Week
Eclipse 4 RCP - 2nd WeekEclipse 4 RCP - 2nd Week
Eclipse 4 RCP - 2nd Week
 
React Redux React Native
React Redux React NativeReact Redux React Native
React Redux React Native
 
[H3 2012] Bridge over troubled water : make plug-in for Appspresso
[H3 2012] Bridge over troubled water : make plug-in for Appspresso[H3 2012] Bridge over troubled water : make plug-in for Appspresso
[H3 2012] Bridge over troubled water : make plug-in for Appspresso
 
2018 03-05-robot framework
2018 03-05-robot framework2018 03-05-robot framework
2018 03-05-robot framework
 
CI in the Mobile World (한글번역)
CI in the Mobile World (한글번역)CI in the Mobile World (한글번역)
CI in the Mobile World (한글번역)
 
ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자
 
[오픈소스컨설팅]Gradle Basic - How to use Gradle in Java Project
[오픈소스컨설팅]Gradle Basic - How to use Gradle in Java Project[오픈소스컨설팅]Gradle Basic - How to use Gradle in Java Project
[오픈소스컨설팅]Gradle Basic - How to use Gradle in Java Project
 
솔루션 구축 사례를 통해 본 SW아키텍처
솔루션 구축 사례를 통해 본 SW아키텍처솔루션 구축 사례를 통해 본 SW아키텍처
솔루션 구축 사례를 통해 본 SW아키텍처
 
실무에서 라라벨 테스트를 작성하다 알게 된 것
실무에서 라라벨 테스트를 작성하다 알게 된 것실무에서 라라벨 테스트를 작성하다 알게 된 것
실무에서 라라벨 테스트를 작성하다 알게 된 것
 
swig를 이용한 C++ 랩핑
swig를 이용한 C++ 랩핑swig를 이용한 C++ 랩핑
swig를 이용한 C++ 랩핑
 
URQA 삼성 컨퍼런스 발표
URQA 삼성 컨퍼런스 발표 URQA 삼성 컨퍼런스 발표
URQA 삼성 컨퍼런스 발표
 
[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효
 
Maven
MavenMaven
Maven
 
Spring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCodeSpring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCode
 
gradle로 안드로이드 앱 빌드하기
gradle로 안드로이드 앱 빌드하기gradle로 안드로이드 앱 빌드하기
gradle로 안드로이드 앱 빌드하기
 
Learning Laravel
Learning LaravelLearning Laravel
Learning Laravel
 
처음 시작하는 라라벨
처음 시작하는 라라벨처음 시작하는 라라벨
처음 시작하는 라라벨
 
XECON2014 Laravel 프레임워크 소개
XECON2014 Laravel 프레임워크 소개XECON2014 Laravel 프레임워크 소개
XECON2014 Laravel 프레임워크 소개
 

Destacado

Single Sourcing RAP and RCP - Desktop and web clients from a single code base
Single Sourcing RAP and RCP - Desktop and web clients from a single code baseSingle Sourcing RAP and RCP - Desktop and web clients from a single code base
Single Sourcing RAP and RCP - Desktop and web clients from a single code baseRalf Sternberg
 
G3 GDC 2015 - Bringing Western Mobile Games to China
G3 GDC 2015 - Bringing Western Mobile Games to ChinaG3 GDC 2015 - Bringing Western Mobile Games to China
G3 GDC 2015 - Bringing Western Mobile Games to Chinakeithm9
 
C2 Information Technology Advisors
C2 Information Technology AdvisorsC2 Information Technology Advisors
C2 Information Technology Advisorscliffordclarke
 
Pinterest bits-and-bytes-3-23-12
Pinterest bits-and-bytes-3-23-12Pinterest bits-and-bytes-3-23-12
Pinterest bits-and-bytes-3-23-12brandvines
 
EI Cloud Computing eBusiness Masterclass
EI Cloud Computing eBusiness MasterclassEI Cloud Computing eBusiness Masterclass
EI Cloud Computing eBusiness Masterclasstupped
 
Strategies for Using LinkedIn
Strategies for Using LinkedInStrategies for Using LinkedIn
Strategies for Using LinkedInpdhill
 
Huw Davies Better By Design V3
Huw Davies Better By Design V3Huw Davies Better By Design V3
Huw Davies Better By Design V3Marina111
 
Smart solution
Smart solutionSmart solution
Smart solutionGalih Praz
 

Destacado (20)

Single Sourcing RAP and RCP - Desktop and web clients from a single code base
Single Sourcing RAP and RCP - Desktop and web clients from a single code baseSingle Sourcing RAP and RCP - Desktop and web clients from a single code base
Single Sourcing RAP and RCP - Desktop and web clients from a single code base
 
Draw2D
Draw2DDraw2D
Draw2D
 
Down syndrome 2
Down syndrome 2Down syndrome 2
Down syndrome 2
 
Msu standards pp
Msu standards ppMsu standards pp
Msu standards pp
 
Olli september26
Olli september26Olli september26
Olli september26
 
G3 GDC 2015 - Bringing Western Mobile Games to China
G3 GDC 2015 - Bringing Western Mobile Games to ChinaG3 GDC 2015 - Bringing Western Mobile Games to China
G3 GDC 2015 - Bringing Western Mobile Games to China
 
C2 Information Technology Advisors
C2 Information Technology AdvisorsC2 Information Technology Advisors
C2 Information Technology Advisors
 
Pinterest bits-and-bytes-3-23-12
Pinterest bits-and-bytes-3-23-12Pinterest bits-and-bytes-3-23-12
Pinterest bits-and-bytes-3-23-12
 
Voco Dubium
Voco DubiumVoco Dubium
Voco Dubium
 
mediator
mediatormediator
mediator
 
Corporate Pitch 1107
Corporate Pitch 1107Corporate Pitch 1107
Corporate Pitch 1107
 
Child abuse ppt
Child abuse pptChild abuse ppt
Child abuse ppt
 
EI Cloud Computing eBusiness Masterclass
EI Cloud Computing eBusiness MasterclassEI Cloud Computing eBusiness Masterclass
EI Cloud Computing eBusiness Masterclass
 
Strategies for Using LinkedIn
Strategies for Using LinkedInStrategies for Using LinkedIn
Strategies for Using LinkedIn
 
Choose Michigan
Choose MichiganChoose Michigan
Choose Michigan
 
Nk Rock.0
Nk Rock.0Nk Rock.0
Nk Rock.0
 
Swt J Face 1/3
Swt J Face 1/3Swt J Face 1/3
Swt J Face 1/3
 
Smoking jaclyn sweeney
Smoking jaclyn sweeneySmoking jaclyn sweeney
Smoking jaclyn sweeney
 
Huw Davies Better By Design V3
Huw Davies Better By Design V3Huw Davies Better By Design V3
Huw Davies Better By Design V3
 
Smart solution
Smart solutionSmart solution
Smart solution
 

Similar a Eclipse RAP - Single Source

Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...
Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...
Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...Ted Won
 
01.개발환경 교육교재
01.개발환경 교육교재01.개발환경 교육교재
01.개발환경 교육교재Hankyo
 
[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅NAVER D2
 
N02 app engineseminar
N02 app engineseminarN02 app engineseminar
N02 app engineseminarSun-Jin Jang
 
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디Youngbin Han
 
RHQ 공감 Seminar 6th
RHQ 공감 Seminar 6thRHQ 공감 Seminar 6th
RHQ 공감 Seminar 6thTed Won
 
[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rdPark Jonggun
 
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기NAVER D2
 
(#8.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis))스프링/자바교육/IT교육/스프링프레임워크교육/국비지...
(#8.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis))스프링/자바교육/IT교육/스프링프레임워크교육/국비지...(#8.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis))스프링/자바교육/IT교육/스프링프레임워크교육/국비지...
(#8.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis))스프링/자바교육/IT교육/스프링프레임워크교육/국비지...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
Open source engineering - 0.1
Open source engineering - 0.1Open source engineering - 0.1
Open source engineering - 0.1YoungSu Son
 
자바스크립트 디버깅
자바스크립트 디버깅자바스크립트 디버깅
자바스크립트 디버깅용성 양
 
PHP Slim Framework with Angular
PHP Slim Framework with AngularPHP Slim Framework with Angular
PHP Slim Framework with AngularJT Jintae Jung
 
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발Jinuk Kim
 
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravelXECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravelXpressEngine
 
DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기SeungYong Baek
 
[오픈소스컨설팅]Spring 3.1 Core
[오픈소스컨설팅]Spring 3.1 Core [오픈소스컨설팅]Spring 3.1 Core
[오픈소스컨설팅]Spring 3.1 Core Ji-Woong Choi
 

Similar a Eclipse RAP - Single Source (20)

2015.07.01
2015.07.012015.07.01
2015.07.01
 
Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...
Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...
Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...
 
01.개발환경 교육교재
01.개발환경 교육교재01.개발환경 교육교재
01.개발환경 교육교재
 
[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅
 
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
 
Springmvc
SpringmvcSpringmvc
Springmvc
 
N02 app engineseminar
N02 app engineseminarN02 app engineseminar
N02 app engineseminar
 
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
 
RHQ 공감 Seminar 6th
RHQ 공감 Seminar 6thRHQ 공감 Seminar 6th
RHQ 공감 Seminar 6th
 
[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd
 
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
 
(#8.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis))스프링/자바교육/IT교육/스프링프레임워크교육/국비지...
(#8.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis))스프링/자바교육/IT교육/스프링프레임워크교육/국비지...(#8.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis))스프링/자바교육/IT교육/스프링프레임워크교육/국비지...
(#8.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis))스프링/자바교육/IT교육/스프링프레임워크교육/국비지...
 
Open source engineering - 0.1
Open source engineering - 0.1Open source engineering - 0.1
Open source engineering - 0.1
 
자바스크립트 디버깅
자바스크립트 디버깅자바스크립트 디버깅
자바스크립트 디버깅
 
Modern PHP
Modern PHPModern PHP
Modern PHP
 
PHP Slim Framework with Angular
PHP Slim Framework with AngularPHP Slim Framework with Angular
PHP Slim Framework with Angular
 
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
 
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravelXECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
 
DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기
 
[오픈소스컨설팅]Spring 3.1 Core
[오픈소스컨설팅]Spring 3.1 Core [오픈소스컨설팅]Spring 3.1 Core
[오픈소스컨설팅]Spring 3.1 Core
 

Más de cho hyun jong

평범한 개발자 오픈소스로 먹고살기 2
평범한 개발자 오픈소스로 먹고살기 2평범한 개발자 오픈소스로 먹고살기 2
평범한 개발자 오픈소스로 먹고살기 2cho hyun jong
 
테드폴허브(올챙이) PostgreSQL 디비 확장하기
테드폴허브(올챙이) PostgreSQL 디비 확장하기테드폴허브(올챙이) PostgreSQL 디비 확장하기
테드폴허브(올챙이) PostgreSQL 디비 확장하기cho hyun jong
 
평범한 개발자 오픈소스로 먹고살기 2
평범한 개발자 오픈소스로 먹고살기 2평범한 개발자 오픈소스로 먹고살기 2
평범한 개발자 오픈소스로 먹고살기 2cho hyun jong
 
자바가 디비와 사귀기 까지 벌어지는 일들
자바가 디비와 사귀기 까지 벌어지는 일들자바가 디비와 사귀기 까지 벌어지는 일들
자바가 디비와 사귀기 까지 벌어지는 일들cho hyun jong
 
테드폴허브 오픈소스Vs엔터프라이즈
테드폴허브 오픈소스Vs엔터프라이즈테드폴허브 오픈소스Vs엔터프라이즈
테드폴허브 오픈소스Vs엔터프라이즈cho hyun jong
 
올챙이팜플렛 V1.0
올챙이팜플렛 V1.0올챙이팜플렛 V1.0
올챙이팜플렛 V1.0cho hyun jong
 
올챙이팜플렛
올챙이팜플렛올챙이팜플렛
올챙이팜플렛cho hyun jong
 
Tadpole db hub-monitoring
Tadpole db hub-monitoring Tadpole db hub-monitoring
Tadpole db hub-monitoring cho hyun jong
 
오픈소스 프로젝트 올챙이
오픈소스 프로젝트 올챙이오픈소스 프로젝트 올챙이
오픈소스 프로젝트 올챙이cho hyun jong
 
Tadpole DB Hub 1.0.0
Tadpole DB Hub 1.0.0Tadpole DB Hub 1.0.0
Tadpole DB Hub 1.0.0cho hyun jong
 
Petra보고서 개발 open자료
Petra보고서 개발 open자료Petra보고서 개발 open자료
Petra보고서 개발 open자료cho hyun jong
 

Más de cho hyun jong (16)

평범한 개발자 오픈소스로 먹고살기 2
평범한 개발자 오픈소스로 먹고살기 2평범한 개발자 오픈소스로 먹고살기 2
평범한 개발자 오픈소스로 먹고살기 2
 
테드폴허브(올챙이) PostgreSQL 디비 확장하기
테드폴허브(올챙이) PostgreSQL 디비 확장하기테드폴허브(올챙이) PostgreSQL 디비 확장하기
테드폴허브(올챙이) PostgreSQL 디비 확장하기
 
평범한 개발자 오픈소스로 먹고살기 2
평범한 개발자 오픈소스로 먹고살기 2평범한 개발자 오픈소스로 먹고살기 2
평범한 개발자 오픈소스로 먹고살기 2
 
자바가 디비와 사귀기 까지 벌어지는 일들
자바가 디비와 사귀기 까지 벌어지는 일들자바가 디비와 사귀기 까지 벌어지는 일들
자바가 디비와 사귀기 까지 벌어지는 일들
 
테드폴허브 오픈소스Vs엔터프라이즈
테드폴허브 오픈소스Vs엔터프라이즈테드폴허브 오픈소스Vs엔터프라이즈
테드폴허브 오픈소스Vs엔터프라이즈
 
올챙이팜플렛 V1.0
올챙이팜플렛 V1.0올챙이팜플렛 V1.0
올챙이팜플렛 V1.0
 
올챙이팜플렛
올챙이팜플렛올챙이팜플렛
올챙이팜플렛
 
Tadpole db hub-monitoring
Tadpole db hub-monitoring Tadpole db hub-monitoring
Tadpole db hub-monitoring
 
오픈소스 프로젝트 올챙이
오픈소스 프로젝트 올챙이오픈소스 프로젝트 올챙이
오픈소스 프로젝트 올챙이
 
Tadpole DB Hub 1.0.0
Tadpole DB Hub 1.0.0Tadpole DB Hub 1.0.0
Tadpole DB Hub 1.0.0
 
Eclipse RAP design
Eclipse RAP designEclipse RAP design
Eclipse RAP design
 
WindowTester PRO
WindowTester PROWindowTester PRO
WindowTester PRO
 
Petra보고서 개발 open자료
Petra보고서 개발 open자료Petra보고서 개발 open자료
Petra보고서 개발 open자료
 
GEF
GEFGEF
GEF
 
Swt J Face 2/3
Swt J Face 2/3Swt J Face 2/3
Swt J Face 2/3
 
Swt J Face 3/3
Swt J Face 3/3Swt J Face 3/3
Swt J Face 3/3
 

Último

Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 

Último (6)

Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 

Eclipse RAP - Single Source

  • 1. Eclipse Rap Single Source - desktop, web, mobile
  • 2. Eclipse Memory Analyzer (RAP) http://eclipse.org/mat/
  • 3. 목 차 Eclipse RAP란? Eclipse 살펴보기 SWT (Widget소개) SWT (Layout 소개) JFace(Viewer 소개) RAP Architecture 개발환경 Setup 및 HelloWorld RAP 개발 살펴보기 JUnit Test RAP 장점 RAP 단점 RAP Incubator Demo 참고자료 Eclipse RCP Eclipse RAP
  • 4. Eclipse Rich Ajax Platform (RAP) 2006년 6월 시작(0.1 시작 ~현재 1.4 RC3) 확장 포인트 개발 RWT(RAP Widget Toolkit)/JFace사용 기본 베이스는 OSGi Eclipse RAP란?
  • 5.
  • 6. Eclipse 살펴보기 Runtime is OSGi(Equinox) Generic Workbench Workspace Help Team Plugin(Bundle)
  • 14. SWT(Layout 소개) FillLayout shell.setLayout(new FillLayout(SWT.VERTICAL)); shell.setLayout(new FillLayout());
  • 15.
  • 16.
  • 17. JFace (Viewer 소개) Viewer는? Model, View, Control을 분리 Sorting,Filtering Rendering(Icon, Label) 종류 TableViewer TreeViewer ListViewer ComboViewer TextViewer
  • 19. JFace(ContentProvider) IStructuredContentProvider : Table, List 사용 Object[] getEmement(Object) ITreeContentProvider : Tree 사용 Object[] getChildren(Object) : 자식 객체 리턴 getParent(Object) :부모 객체 리턴 hasChildren(Object) : 자식 객체 유무 ILazyContentProvider : SWT.VIRTURAL
  • 20. JFace(LabelProvider) ILabelProvider: Tree, List 사용 getImage(Object) :해당 이미지 리턴 getText(Object) :해당 텍스트 리턴 ITableLabelProvider : Table 사용 getColumnImage(Object, int) getColumnText(Object, int)
  • 21. RAP Architecture RAP Server Side Client Side RWT == SWT & RWT != SWT qooxdoo -> RWT RCP
  • 22. 개발환경 Setup 및 HelloWorld RAP
  • 23. RAP개발 환경 환경 JDK 6.x Eclipse RCP and RAP Developers(3.6.2) rap target platform (runtime 1.4 RC3, 2011-06-04) Jetty, Tomcat 6.x Tool :WTP(Web Tool Project, v1.5) or ucloudps IDE https://hcs.ucloud.com/portal/ktcloudportal.epc.ucintro.ps.services.html
  • 24.
  • 25. 버전 업에 따른 변화 대응.
  • 26. 사용자 정의 lib설정 및 공통 lib 정의.
  • 30. New -> Target Definition Help -> Welcome -> Rich Ajax Platform(RAP) -> Install Target Platform
  • 31. HelloWorld RAP New PlugIn Project
  • 32.
  • 33. 실행환경 -console : 콘솔 모드로 시작 (osgi커맨드 사용)-consolelog : 콘솔에 로그를 출력 -Declipse.ignoreApp : 응용프로그램을 실행하지 않습니다. -Declipse.noShutdown : OSGi가 종료되지 않는 한 프로그램을 종료하지 않습니다.
  • 34. HelloWorld RAP plugin.xml : plugin 정보를 수록. MANIFEST.MF : Bundle 환경파일로 plugin 이름, 버전 ID, classpath, plugin 의존관계 정보. build.properties : 배포 시에 포함되어야 하는 리소스정보 및 빌드 정보 정의. Application : Workbench, Application UI 시작. ApplicationWorkbenchAdvisor : Workbench의 시작과 종료를 관리. ApplicatonWorkbenchWindowAdvisor : menu, toolbar, StatusLine 등의 window에 대해 정의. ApplicationActionBarAdvisor : menu, toolbar, Statusline등의 실제를 구현. Perspective : 사용자 화면을 구성.
  • 35. Eclipse RAP 요소 살펴보기
  • 36. HelloWorld RAP Overview : plugin 정보 출력. Dependencies : 사용할 plugin을 정의. Runtime : 외부 plugin이 자신을 참조 할 수 있는지 여부와 외부 library(jar)등을 정의. Extensions : 외부 plugin의 기능을 확장하기 위한 정의. Extension Points : 자신의 기능을 확장하기 위한 확장 점을 정의. Build : 배포 시에 포함되어야 하는 리소스 선택. MANIFEST.MF : plugin.xml : build.properties:
  • 37. Extensions and Extension Point Eclipse는 확장과 기증을 통해 개발합니다. Extensions : Dependencies에 정의된 plugin기능을 확장하여 개발. Extension Point : 자신이 구현한 기능을 외부 에서 확장하여 사용 할수 있도록 정의. -Extension : RAP 시작 포인트
  • 38. Startup Point Extensions org.eclipse.rap.ui.entrypoint
  • 39.
  • 40. Commands and Actions 메뉴나 툴바를 이용하여 사용자에게 행위 부여. 이미 정의된 기능을 사용할 수있도록 구현과 실행의 분리.(참조한 플러그인 및 내가 구현한 플러그인) -Extension
  • 41. Menu and Toolbar 전후관계 표시 가능 : 예를 들어서 신규 추가 일 경우 -> menu:org.eclipse.ui.main.menu?after=additions 표시특 정 메뉴 뒤에 위치 하고자 할경우 after, 이전에 위치하고자 할 경우 before를 사용할 수 있습니다. 예를 들어, menu:org.eclipse.ui.main.menu?after=com.study.sample.rcp.mainMenu.file
  • 42.
  • 44. 드래그하여 Workbench Window 밖으로 빼낼 수 있다.-Extension org.eclipse.ui.views
  • 45. Selection Services Part간의 이벤트 전달 사용 : public class TestViewer … implement ISelectionListener 서비스 등록 : getSite().setSelectionProvider( tableViewer ); 외부 서비스 실행 : getSite().getPage().addSelectionListener(this); 종류
  • 46. Job and UIJob Job의정의 public class JobExample extends Job protected IStatus run(IProgressMonitor monitor) ; public booleanbelongsTo(Object lastName) ; Job의 실행 new JobExample().schedule(); Job의 관리 IJobManagerjobManager = Job.getJobManager();
  • 47.
  • 48. Preference Pages 시스템 환경변수 설정정의. - Extension org.eclipse.ui.preferencePages org.eclipse.core.runtime.preferencs
  • 49. Help Help -> Help Contents 메뉴 호출 검색엔진(Apache Lucene)이 내장되어 검색 기능. F1눌렀을 때 도움말 지원기능.(문맥감지 기능) 다국어 지원. 독립 실행 도움말 제공. Extension org.eclipse.help.toc org.eclipse.help.contexts http://wiki.eclipse.org/RAP/FAQ#How_to_integrate_the_Eclipse_Help_System_in_a_RAP_application.3F
  • 52. 지역화 Plugins -> PDE Tools -> Externalize Strings Source code -> Externalize String… Util소개 (Resource Bundle Editor) (http://sourceforge.net/projects/eclipse-rbe)
  • 53. Exporting (Tomcat) 필요 Resource(RAP Deployment – Part 2: Deploying as WAR) cvs(dev.eclipse.org)에서 Checkout org.eclipse.equinox -> server-side -> bundles org.eclipse.equnox.servletbridge ort.eclipse.equnox.http.servletbridge org.eclipse.equnox.http.registry org.eclipse.rap -> releng org.eclipse.rap.demo.feature cvs와 연결끊기 자신의 update 프로젝트로 이름 변경
  • 55. JUnit Dependencies : org.eclipse.rap.junit
  • 56. RAP 장점(RWT vs SWT) RAP RCP
  • 57. RAP 장점 Modularity~ JFace Workbench
  • 58. RAP 장점 Single Source (RAP to RCP) Tadpole RCP Tadpole RAP
  • 59. RAP 장점 Single Source (RCP to RAP) Cubrid Manager RAP Cubrid Manager RCP
  • 60. RAP 장점 Application RWT (Server) RWT (Client) http Servlet Container Web Browser
  • 61. RAP 단점 Server에 부하가 상대적으로 심하다. Cloud가 해결방법이 될수 있을까? GEF 지원 미흡. Incubating -> port에 코드.(버그 존재, 느린속도) StyledText Widget이 읽기 기능만 지원. 읽기 기능만 가능 코드.(완전한 모듈은 기약없음) 학습해야 할 요소가 많다. Java -> SWT/JFace -> RCP -> Web -> RAP Web과 Desktop과의 중간자로서 모호하다. 개발시 기준 점을 잡아서 개발 해야함
  • 62. RAP Incubator PDE Runtime UploadWidget SpreadSheet JIT Visualizations Search Google Visualizations
  • 64. 참고자료 Eclipse RAP Home Using Eclipse Ganymede to develop for the desktop, Web and mobile devices, Part 2: Developing for the Rich Client Platform, the Ganymede way Rich Ajax Platform, Part 2: 애플리케이션 개발하기 Eclipse Rich Ajax Platform (RAP) - Tutorial with Eclipse 3.5 (Galileo) Equinox in a Servlet Container RAP Deployment – Part 2: Deploying as WAR Single Sourcing RAP and RCP PPT Eclipse con 2010 Eclipse con 2011 http://www.cubrid.com http://pierocksmysocks.deviantart.com/art/Mobile-Device-Dock-Icons-64174438 http://www.devx.com/webdev/Article/36101/1763/page/3 https://cs.ucloud.com/portal/ktcloudportal.epc.ucintro.ps.services.html

Notas del editor

  1. 여기까지 첫번재 시간 끝
  2. -Dependiency에서 정의한 플러그인의 기능이 command에 정의되어 있다면 커맨드만 알고 있다면 실행하거나 조작할 수 있다는 내용.Action은 자바 코드로 되어 있어 이것을 실행하기 위해서는 코드로 관계가 되어 있어야 해서 많은 문제점 유발. 이것을 commands가 나오면서 xml로 설정하는것으로 해결하고자 함. 현재는 action은 디플리케이튼된 상태
  3. 검색엔진 루씬이 내장되어 있습니다.
  4. 이클립스 3.7에서는 tool project 로 추가되어 이렇게 복잡하게 하지 않아도 되는듯 합니다.
  5. Styledtext는 좀더 향상된 에디터를 만드는데 기본이 됩니다.아주 중요한 기능중 하나인데,eclipse 버그질라에 문의결과 기약이 없다고 하네요.Web과 Desktop과의 중간자로서 모호 하다.- 개발할때부터 어떤것을 기준으로 개발할 것인지 고민해야합니다.예를들어 Eclipse RCP기준으로 개발해야 한다면 eclipse rap가 안되는 부분(관련 플러그인동작유무)등을 확인하여 개발해야합니다.기본에 더 충실해야 합니다. 즉, 문제가 될만한 기능이 존재한다면 최소한 작은 플러그인으로 쪼개야 합니다.그래서 문제가 된다면 문제가 되는 플러그인의 기능을 추려낼수 있도록 말입니다.확장 포인트 개발을 해야합니다.문제가 될만한 기능이 있다면 확장 포인트를 만들고 개발하여야 합니다.