- 전체
- JAVA 일반
- JAVA 수학
- JAVA 그래픽
- JAVA 자료구조
- JAVA 인공지능
- JAVA 인터넷
- Java Framework
- Java GUI (AWT,SWING,SWT,JFACE)
- SWT and RCP (web RAP/RWT)[eclipse], EMF
SWT and RCP (web RAP/RWT)[eclipse], EMF Rich Ajax Platform, Part 1: 소개
2019.05.15 17:33
Rich Ajax Platform, Part 1: 소개
Eclipse 방식의 Web 2.0
Asynchronous JavaScript + XML (Ajax)과 Web 2.0의 개념은 웹 기반 애플리케이션에 활력을 더해주는 방식으로서 개발 커뮤니티를 통해 퍼져나가고 있습니다. Rich Ajax Platform (RAP)은 Eclipse 개발 모델을 사용함으로써 Ajax 실행 웹 애플리케이션을 구현하는 방식입니다. 이 글에서는, RAP의 개념과 RAP 개발 환경을 설정하는 방법과 데모를 설명합니다. 쉽게 이해할 수 있는 예제도 제공합니다.
RAP 프로젝트는 Eclipse 개발 모델을 사용함으로써 Rich Internet Application을 구현하는 것이다. 그렇다면 "Eclipse 개발 모델"이란 것은 정확히 무엇인가? RAP는 자바™ 라이브러리와 Eclipse API를 사용하여 브라우저 기반의 Ajax 애플리케이션을 구현할 수 있도록 한다. SWT, JFace, Eclipse 워크벤치의 웹 실행 구현을 제공함으로써 이를 수행한다. 이 글에서는 몇 가지 간단한 예제로 RAP를 소개하고자 한다.
RAP 설정은 매우 간단하다. 두 단계만 거치면 된다: RAP를 다운로드 하고, 이것을 사용하도록 Eclipse를 설정하면 된다.
Eclipse.org 에서 RAP를 다운로드 한다. 최신의 안정 버전을 다운로드 하도록 한다. 이 글에서는 1.0 릴리스를 사용했다. RAP 타겟 플랫폼을 포함하고 있는 압축 파일을 다운로드 하면, 이것을 여러분이 선택한 디렉토리에 압축을 푼다. (그림 1) 이 디렉토리는 다음 단계에서 타겟 플랫폼을 설정할 때 사용할 것이므로 중요하다.
Eclipse Plug-in Development Environment (PDE)는 타겟 플랫폼의 개념을 사용한다. 타겟 플랫폼은 여러분이 개발하고자 하는 것을 나타내는(목표로 삼고 있는) 플러그인 세트들로 구성되어 있다. 다시 말해서, 여러분이 현재 개발하고 있는 플러그인은 현재의 실행 인스턴스에서 실행될 것이다. 타겟 플랫폼의 장점은 변경될 수 있다는 점이다. 예를 들어, 타겟 플랫폼이 Eclipse V3.2 또는 또 다른 제품 런타임이 되도록 설정할 수 있다. (이것 때문에 여러분이 개발하고 있는 것과 상관 없이 최신 Eclipse를 사용할 수 있다.)
이 경우, RAP 플랫폼을 정해야 한다. 바로 이것이 우리가 개발할 대상이 되기 때문이다. 이를 위해, 타겟 플랫폼 프레퍼런스를 1 단계에서 RAP 플러그인의 압축을 풀었던 디렉토리로 설정한다. ( Window > Preferences... > Plug-in Development > Target Platform ) (그림 2)
이제 타겟 플랫폼을 설정했다면, RAP 애플리케이션을 개발할 수 있다. 코드를 보기 전에, 간단한 데모를 보고 RAP 기반 애플리케이션을 시작할 때 RAP가 어떤 일을 하는지에 대해 알아보자.
RAP 대 Google Web Toolkit Google Web Toolkit (GWT) 과 RAP는 자바를 사용하여 Rich Internet Application을 코딩 한다는 점에서 유사하다. 큰 차이점은 GWT가 클라이언트에서 실행되는 반면, RAP는 서버에서 실행된다는 점이다. RAP가 서버에서 실행되기 때문에, 완전한 자바 API에 액세스 할 수 있고, OSGi를 통해 유명한 Eclipse 플러그인 모델을 사용할 수 있는 것이다. 이것에 대해 생각할 수 있는 또 다른 방식은 Eclipse 용어에 있다. GWT는 독립 SWT 애플리케이션(단순한 위젯 툴킷)과 같은 것이지만, RAP는 웹 애플리케이션에 RCP 스타일의 방식을 적용한다. |
RAP를 사용하기 전에, 데모를 보도록 하자. RAP와 인터랙팅 하려면, RAP를 시작하는 시작 설정을 만들어야 한다. RAP 다이얼로그를 열고( Run > Open Run Dialog... ) 새로운 OSGi 프레임웍 시작 설정을 만든다. 이것이 수행되면, 이러한 VM 인자들이 설정되었는지를 확인해야 한다: -Dorg.osgi.service.http.port=8000 -Dosgi.noShutdown=true (그림 3). 이러한 인자들로 인해 RAP가 포트 8000에서 시작할 수 있으며, 시작된 후에 Eclipse가 갑자기 중지되는 것을 방지한다.
마지막으로, 브라우저를 시작하고 http://localhost:8000/rap?startup=controls 로 가서 컨트롤 데모를 본다. (그림 4) 이 데모는 SWT 예제 의 유명한 ControlExample 을 기반으로 한다.
PDE에서 제공된 Rich Client Platform (RCP) 템플릿을 기반으로 하는 두 가지 예제를 보도록 하자.
전통적인 프로그래밍 예제라면 단연 Hello World 예제이다. 간단한 RAP 애플리케이션을 실행하는 것부터 시작하겠다.
그림 5. Hello World, RAP Edition
RAP 버전과 RCP 버전의 주요 차이점은 플러그인 의존성과 애플리케이션 엔트리 포인트이다. 플러그인 명세를 보면 (Listing 1), 우리가 다른 의존성을 갖고 있음을 알 수 있다.
Listing 1. RAP Hello World 의존성 (MANIFEST.MF)
org.eclipse.rap.ui 에 대한 의존성에 주목하라. 이는 RCP 베이스에서 온 표준 org.eclipse.ui 플러그인과 같은 RAP 플러그인이다. OSGi와 Import-Package 헤더에 대해 잘 알고 있다면, 특정 플러그인에 의존할 필요가 없다. 다만, 여러분이 필요로 하는 패키지에만 의존하면 된다. 이것은 RAP와 RCP로 작동하는 방식으로 코드를 구축할 수 있기 때문에 중요하다. 예를 들어, RAP(Listing 2)와 RCP(Listing 3)에서 워크벤치 어드바이저용 코드를 본다면, 비슷한 코드와 반입된 패키지들이라는 것을 알 수 있다.
RAP와 RCP 애플리케이션의 다른 주요한 차이점은 엔트리 포인트이다.(자바 언어의 main(String[] args) 메소드와 비슷하다.) RCP에는 org.eclipse.core.runtime.applications 확장 포인트가 있는데, 여기에서 IApplication 을 정의한다. (Eclipse V3.3 이전 버전에서는 IPlatformRunnable 로 알려져 있다.) 이에 해당하는 RAP는 org.eclipse.rap.ui.entrypoint 확장 포인트인데, IEntryPoint 를 정의한다. RCP 콘텍스트(Listing 4) 대 RAP 콘텍스트(Listing 5)에서 전형적인 엔트리 포인트 코드를 보면, 유사점을 발견할 수 있다. 두 경우 모두, 디스플레이와 워크벤치를 만들어서 워크벤치 어드바이저를 실행한다.
Listing 4. RCP 애플리케이션 엔트리 포인트 (org.eclipse.core.runtime.applications)
Listing 5. RAP 애플리케이션 엔트리 포인트 (org.eclipse.rap.ui.entrypoint)
유명한 RCP Mail 예제(그림 6)는 약간의 수정을 통해 RAP 환경에서 실행될 수 있다. (그림 7) 이 예제는 뷰, 퍼스펙티브, 에디터 같은 워크벤치 개념들이 RAP 안에서 사용될 수 있다는 힌트를 준다. (표 1) 메일 예제와 이전 예제에 대한 소스 코드 를 사용하기 바란다.
RAP | RCP |
OSGi (서버 측) | OSGi |
Standard Widget Toolkit (SWT) | RAP Widget Toolkit (RWT) |
JFace | JFace |
Workbench | Web Workbench |
그림 6. RCP Mail 예제
그림 7. RAP Mail 예제
이 글에서는, 간단한 예제와 데모를 통해 RAP를 소개했다. RAP로는 기존 스킬을 재사용하고 Rich Internet Application을 만들 수 있다. RAP는 또한 데스크탑(RCP)와 브라우저(RAP)를 통해 재사용 될 수 있는 방식으로 코드를 구성할 수 있다. 중요한 것은, RAP가 Eclipse를 브라우저와 Web 2.0 세계로 데려왔다는 것이다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.