반응형
JCO SUN JAVA
 
Agenda
13:10 - 13:30 인사말 & JavaOne2008 핫뉴스
최상훈, JCO 회장 다운로드
13:30 - 14:20 Java Now & Future 신상철, 썬마이크로시스템즈
자바 에반젤리스트
다운로드
14:30 - 15:20 Changing Software 허광남, OKJsp 운영자 다운로드
개발 방법론은 많이 있지만 만들어진 소프트웨어의 변경 관리에 대한 이론은 아직 일반화되지 않았습니다.
소프트웨어의 특성상 비즈니스에 맞춰서 변경이 가해지게 되는데, 테스팅을 이용해서 안정적으로 소프트웨어를 변경하는 방법에 대한 고민을 함께 나눠봅니다.
15:20 - 16:10 NetBeans IDE 6.1을이용한
WIPI Java 모바일 어플리케이션
개발
김정태, JCO 다운로드
JavaOne 2008에서 소개된 Java Me 플랫폼의 주요 발전방향에 대하여 소개하고, 최근 릴리즈된 NetBeans IDE 6.1 의 강력한 Mobile 개발 지원기능을 이용하여 한국형 Mobile Java 플랫폼인 WIPI 플랫폼에서의 Mobile Application 개발에 대하여 알아봅니다.
그리고 NetBeans에 통합되어 있는 Ant와 Antenna를 이용한 전처리 빌드에 대하여 설명합니다.
16:20 - 17:10 Asynchronous Ajax 김형배, JCO 다운로드
현재 Ajax Push, Commet, Reverse Ajax 등등으로 불리는 새로운 Ajax 기술에 대하여
JavaOne 2008에서 접한 내용을 소개합니다.
Ajax Push 기술을 이용하여 역동적인 Interface를 구성함과 동시에 protocol 설명과 효율적인
서버의 performance을 보장하는 방법에 대하여 알아보도록 하겠습니다.
17:10 - 18:00 More Effective Java 양수열, Java Champion 다운로드
Effective java의 최신판인 2nd edition이 이번에 출간되어 javaone에서 직접 책 내용을 토대로 한 저자직강이 있었습니다.
바뀐 부분은 javaSE5 에서 추가된 language feature 관련된 부분이며, 주로 Generic, Enum 관련 내용입니다.
새로 추가된 부분에 대해 소개하는 시간을 마련하였습니다.
발표 동영상은 http://utv.etnews.co.kr 에서 다시 보실 수 있습니다.
 

반응형

https://glassfishplugins.dev.java.net/eclipse33/

 

1. GlassFish V2를 받는다.

https://glassfish.dev.java.net/public/downloadsindex.html

(GlassFIsh 중 최근에 나온 안정버전)

 

2. Eclipse 3.3을 받는다.

http://www.eclipse.org/downloads/

 

3. GlassFIsh V2를 설치한다.

다운 받은 glassfish-installer-v2ur1-b09d-windows.jar 를 설치하려면
시스템에
자바가 설치되어 있어야 한다.

(JDK5 나 그 이상의 버전)

 

그리고 자바가 설치된 곳이 JAVA_HOME으로 설정되어 있어야 한다.

예) E:\java\jdk1.6.0_05\

 

실행에서 cmd로 콘솔을 띄운 후

jar파일이 있는 곳에서 다음을 실행한다.

java -Xmx256m -jar glassfish-installer-v2ur1-b09d-windows.jar 
cd glassfish
lib\ant\bin\ant -f setup-cluster.xml 
(다운 받은 GlassFish V2 UR1 버전이 Clustering 지원 버전일 때)
4. 이클립스 플러그인을 받는다.
다운 받은 이클립스는 압축을 풀면 설치가 끝난다.
자세한 그림과 영문으로 된 설명이 아래 주소에 있다.
https://glassfishplugins.dev.java.net/eclipse33/index.html
1) perspective를 "Java EE"로 바꾼다.
2) Server Tab에서 오른쪽 단추로 "New Server"마법사를 실행한다.
3) "Download addtional server adapters" 링크를 클릭한다.
4) GlassFish Java EE 5 Server를 선택한다.
5) License에 동의하고 GlassFish Adaptor를 받는다.
6) OK를 눌러 다운받는다.
7) 다 받은 후에 이클립스를 재시작한다.
8) 재시작후에 "New Server"마법사에서 GlassFish를 찾을 수 있다.
9) 자신의 원하는 GlassFIsh버전을 선택한다.
GlassFish V2를 선택해보겠다.
10) "Browse..." 버튼을 클릭해서 GlassFish가 설치된 곳을 정해준다.
11) 서버설정을 해 준다.
기본값은 다음과 같다. 나중에 자기가 원하는 값으로 바꿔준다.
Address : localhost
Server port Number : 8080
Admin Server Port Number : 4848
Domain Name : domain1
Administrator Id : admin
Administrator Password : adminadmin
12) new Server (GlassFish V2) 가 Servers 탭에 생겼다.
팝업메뉴에서 서버를 실행시킬 수 있다.
13) 서버를 실행하면 Started로 status가 바뀐다.
Console 탭에서 server log를 볼 수 있다.
14) 이제 Java EE5 Web Application을 만들어보자.
"Dynamic Web Project"를 만들자.
15) 프로젝트 이름을 쓰고,  Target runtime 을 GlassFish V2 Java EE 5로 정한다.
16) 다음단계에서 Web Application을 위한 Servelt 2.5(java EE 5 호환가능) 버전을 확인할 수 있다.
그리고 기본적으로 sun-web.xml을 배치 기술자로 사용하고 싶으면, 선택해라.(기본값이다)
17) 아주 간단한 index.jsp를 만들자.(이클립스에서 기본적으로 만들어주지 않는다.)
18) "Run on Server"를 클릭하면 Web Application이 deploy된다.
그리고 index.jsp 페이지를 브라우저에서 볼 수 있다.
 
만약 다음과 같은 에러가 난다면 eclipse plug-in을 업데이트 해야한다.
--------------------------------------------------------------------------------------------
Publishing to GlassFish V2...(Time of error: March 2, 2008 7:19:57 AM EST)
Reason:
java.lang.NullPointerException.
--------------------------------------------------------------------------------------------
관련 Forum
http://forums.java.net/jive/thread.jspa?messageID=265331&tstart=0
https://bugs.eclipse.org/bugs/show_bug.cgi?id=219627
wst 2.0.2 플러그인이 문제가 있다고 한다.
[Software Updates]-[Find and Install] - [Search for Updates of the currently installed features]
에서 업데이트 하면 자연스럽게 문제가 해결된다.
[출처] 이클립스 3.3으로 GlassFIsh 구동하기|작성자 노키
반응형
개발을 솔라리스에서 해야 하는 이유
솔라리스/개발자코너 2008/03/11 10:49
솔라리스 익스프레스 개발자 에디션 (SXDE), 은 분기별로 배포되는 썬의 차세대 솔라리스입니다. 이 버전은 개발자들에게 특수한 기능, 하위 호환성 보장, 양질의 개발 툴, 손쉬운 다운 로드 방법, 및 오픈소스 커뮤니티에 참여할 수 있는 기회를 제공합니다.


순서

소개
솔라리스 익스프레스 개발자 에디션
솔라리스OS: 운영체제와 커뮤니티
솔라리스의 특수한 기능
개발 툴
어플리케이션 지원: 웹 어플리케이션 스택
멀티플랫폼 지원
하위 호환성 보장
성정하고 있는 오픈 소스 커뮤니티
GNOME 과 자바 GNOME 바인딩
돋보이는 배치
가상화
메모리 배치 최적화 (MPO)
향상된 쓰레드
저렴한 관리 비용
솔라리스의 미래
See Also

소개


솔라리스 살펴보기

솔라리스 익스프레스 개발자 에디션 (SXDE)
SXDE 설치하기
솔라리스 익스프레스 개발자 에디션 FAQs
솔라리스 개발자 센터
솔라리스 툴
솔라리스 다운로드 옵션
OpenSolaris.org

솔라리스 운영체제 (솔라리스 OS) 는 강력하고 안정적인 환경과 더불어 리눅스에서 볼 수 있는 현대화된 인스톨러를 통해서 갈끔하고 직관적인 설치 경험을 안겨 줍니다. 솔라리스는 무료이고 오픈된 UNIX 운영체제로 x86 과 SPARC 용 두가지 버전을 다운로드 받을 수 있습니다. 천백만명 이상의 개발자들이 지금까지 가입했고 200만이상의 CPU 에서 상용 라이센스하에 운영되고 있습니다.

썬 솔라리스10 은 최근에 InfoWorld 의 2008년 의 기술상을 가장 혁신적인 서버 OS 라는 평가를 들으며 수상했습니다. InfoWorld 는 "어떠한 서버 운영체제도 솔라리스 보다 더 다양한 요구조건을 만족하거나 환상적인 기술들을 뽐낼 수 없었다" 라고 평했습니다.

솔라리스는 단 하나의 소스 코드 베이스가 존재 합니다. 그러므로 동일한 기능을 모든 플랫폼상에서 제공합니다. 개발자는 솔라리스 운영체제에서 어플리케이션을 개발하고 최적화 함으로써 썬, HP, IBM, 그리도 Dell 등의 선도 벤더들의 시스템에서 사용할 수 있습니다.


솔라리스 익스프레스 개발자 에디션


개발자들에게 특히 솔라리스 익스프레스 개발자 에디션 이 중요한 이유는 일단 무료이고 분기별로 배포되는 썬의 차세대 솔라리스로써 오픈솔라리스의 홈이며 개발자의 협력의 장소인 OpenSolaris.org 의 코드 저장소의 소스를 이용해 빌드 되었다는 것입니다. SXDE 는 솔라리스10 에는 포함되지 않는 많은 신기술들을 포함하고 있습니다.

x86 플랫폼을 위한 SXDE 배포판은 솔라리스 어플리케이션, 자바 어플리케이션 플랫폼, 웹2.0을 개발하기 위한 최신 툴, 기술 및 플랫폼을 제공합니다. 개발자들은 다운로드, DVD 주문, 혹은 SXDE 가 미리 설정된 VMWare 가상 머신 등을 통해서 무료로 얻으실 수 있습니다.

랩탑에서의 개발환경을 지원하기위해 각 배포판마다 무선랜 지원을 위한 새로운 드라이버들을 추가 하였습니다. 9/07 배포판은 중요한 전원 관리 기능인 Enhanced Intel SppedStep Technology (EIST) 을 지원합니다. 1/08 배포판은 EIST 를 향상시켰으며 인텔4965 802.11agn 을 위한 드라이버를 포함하고 있습니다. 개발자들에게 더 편리한 설치 과정을 제공하기 위해 썬은 SXDE 를 위한 설치 및 설정 지원을 솔라리스10 서비스 지원 추가비용 없이 추가하였습니다.

SPARC 시스템을 이용하는 개발자는 최신 솔라리스 익스프레스 커뮤니티 에디션 빌드 (DVD) 혹은 (CD) 를 통해서 동일한 기능을 얻으실 수 있고 SPARC 개발자를 위한 툴은 2월 중순까지 번들 되도록 계획하고 있습니다. 이후의 솔라리스 익스프레스 개발자 에디션은 x86 과 SPARC 모두의 지원을 포함할 것입니다. 솔라리스 익스프레스 개발자 에디션의 VMWare 또한 제공 됩니다.


솔라리스OS: 운영체제와 커뮤니티


InfoWorld 수상

썬 솔라리스10 과 ZFS 파일 시스템이 최근에 InfoWorld 의 2008 올해의 기술 상을 수상하였습니다.

썬 솔라리스10 은 플랫폼들 중에서 가장 혁신적인 서버 OS 라는 영예를 안았습니다.

InfoWorld 는 말하기를 "어떠한 서버 운영체제도 솔라리스 보다 더 다양한 요구조건을 만족하거나 환상적인 기술들을 뽐낼 수 없었다. 2008 년 올해의 기술상을 수상한 ZFS 파일 시스템부터 시작하여 DTrace 라는 최고의 OS 분석 툴이 지원되고 레드햇 리눅스 바이너리를 실행할 수 있는 솔라리스 컨테이너를 통한 네이티브, 빌트인 가상화(현재 어떠한 OS 도 번들하고 있지 못한) 등. 현시대의 서버 운영체제중 가장 혁신적인 버전이라고 할 수 있다"

여기에 덧붙여 ZFS 파일 시스템은 최고의 파일 시스템 상을 수상했습니다. InfoWorld 는 ZFS 의 혁신을 칭찬했습니다: "썬의 ZFS 수준의 혁신이 매일 매일 컴퓨터 산업에서 일어 나는 것은 아니다. ZFS 의 유연함과 확장성은 현시대의 어떠한 파일 시스템또 훌쩍 뛰어 넘는다. 지속적인 IT 과학의 발전이 발전이 현 상태를 간단히 제곱으로 뛰어 넘어 버렸다. ZFS 는 현재까지의 모든 룰을 깨버리고 놀랍게도 뛰어나고 잘 구현된 솔루션이다."

솔라리스 OS 는 오픈솔라리스 소스 코드, 개발자 커뮤니티 그리고 웹사이트로 구성되어 있는 오픈솔라리스 프로젝트와 혼동되서는 안됩니다. 두가지 모두 썬에 의해 지원되고 있지만 오픈솔라리스는 개발자 커뮤니티에 의해 운영되는 개발 프로젝트 입니다.

솔라리스의 향후 버전은 오픈솔라리스 프로젝트에 의해 개발된 기술들에 기반을 둘 것입니다. 둘다 무료 바이너리 다운로드 형태로 제공되고 썬은 서비스 패키지와 정기 업데이트를 둘 모두를 위해 제공 합니다.

솔라리스는 개발자들에게 여러가지 장점을 제공합니다:

특수한 기능들: DTrace, 솔라리스 존, 향상된 IP 스택, ZFS 등등.
썬 스튜디오 컴파일러와 넷빈즈IDE 를 통한 양질의 개발툴 제공.
웹 어플리케이션 소프트웨어(솔라리스, 아파치, MySQL, Ruby, PHP), 넷빈즈 IDE 6, JRuby, PHP preview 플러그인, Perl, Python, Ruby, JavaDB, PostgreSQL 과 아파치 1.x, 아파치 2.x 를 포함하는 5천개 어플리케이션 지원.
Mercurial 플러그인 지원 이 넷빈즈 IDE 6.0 에서 사용 가능함.
새로운 개발자들을 장려하는 오픈 소스 커뮤니티에 의해 지원되는 오픈 소스 소프트웨어. 소스코드는 OSI-승인된 CDDL 하에서 사용 가능.
썬의 바이너리 장기간 하위 호환성 약속 그리고 소스 코드 와 툴들. 썬 스튜디오 12 소프트웨어 는 고성능 컴파일러와 툴을 제공하고, SPARC 플랫폼, x86/x64 플랫폼의 솔라리스와 리눅스를 위한 최적화된 C, C++,포트란 컴파일러를 제공하고, 또한 최신의 멀티-코어 시스템과 소스, 메모리 그리고 쓰레드 디버깅등을 지원하며 하위버전의 오브젝트 파일과 호환되는 컴파일러와 링커 제공.
900개 이상의 x86 과 SPARC 플랫폼을 지원하는 멀티 플랫폼 지원.
레드햇 리눅스 보다 관리, 배치 및 저렴한 지원비용.
문서.
향상된 GNOME-기반 데스크탑.
돋보이는 배치:
SPARC 과 AMD/Intel 아키텍쳐 지원
가상화
솔라리스 확장성
진보된 쓰레드 및 스케줄링
메모리 배치 최적화 (MPO)

솔라리스의 특수한 기능


2005년 초기에 발표된 솔라리스10은 600개 이상의 신기술을 포함하고 있었고 이후 업데이트 버전과 솔라리스 익스프레스 프로그램을 통해서 더 많은 것들이 추가 되었습니다. 이들 중 상당 수는 다른 운영체제에서는 볼 수 없는 것들인데 대표적으로 솔라리스 동적 트레이스(DTrace), 솔라리스 컨테이너, 자가 예측 치료, 솔라리스 ZFS, 솔라리스 트러스티드 익스텐션 그리고 로지컬 도메인(LDoms) 가 바로 그것입니다.

DTrace 는 솔라리스10에서 소개된 디버깅 툴로 기존의 디버깅 툴로는 잡아내기 어려운 시스템의 문제를 디버그 하는데 도움을 줍니다. 이 툴은 개발자가 웹2.0에서는 매우 흔한 멀티 레이어 스포트웨어 스택(서로 다른 수많은 레이어가 존재 하는데 이것은 자바 스크립트, 자바, C/C++ 같은 서로 다른 언어로 구현되어 있음) 을 넘나다는 디버깅을 가능하도록 해줍니다.

이러한 멀티레이어에 대한 가시성은 기존의 디버깅툴로는 불가능 합니다. DTrace 의 경량성은 개발자가 프로덕션 서버에서 어플리케이션의 디버그 버전 없이도 어플리케이션을 조사할 수 있도록 도와 줍니다. 커스텀 probe 가 Firefox 같은 데스크탑의 중요 어플리케이션들에 추가 되어서 Firefox 내에서 자바 스크립트 코드에 DTrace 의 힘을 이용할 수 있고 Firefox 자체도 튜닝 할 수 있습니다.

DTrace 는 커맨드 라이브러리 libdtrace 에 의해 동작하고 이 라이브러리는 커널 내의 다양한 "DTrace provider" 에 대한 진입 포인트를 가지고 있고 이러한 "DTrace provider" 는 몇몇 커널 시스템의 논리적인 뷰를 제공 합니다. 솔라리스10은 거의 4만개 이상의 probe 를 솔라리스 커널 내에서 제공 합니다. DTrace 도구는 필요에 따라 끄거나 킬 수 있고 끈 상태로는 어떠한 오버헤드도 일으키지 않습니다. 커스텀 probe 를 만들기 위해 쿼리들이 조합될 수 있습니다.

ZFS 는 128비트이고, 예술의 경지의 파일 시스템으로, 엔드-투-엔드의 오류 검사 및 보정, 간단한 커맨드 라인 인터페이스 그리고 가상적으로 스토리지 용량에 제한이 없습니다. ZFS 는 InfoWorld 에 의해 2008년 최고의 파일 시스템 으로 선정되었습니다.

솔라리스 존 은 개발자가 머신을 서로에게 독립적인 여러개의 가상 머신으로 나눌 수 있습니다. 솔라리스 존은 솔라리스 내에서 파티션된 가상 OS 환경 입니다. 각 존은 독립된 가상 서버로 싱글 머신처럼 독잡하게 됩니다. 존은 기본적인 단위로써 운영체제의 리소스 관리 설비 와 같이 사용되면 솔라리스 컨테이너로 불립니다. 많은 개발자들은 "존" 과 "컨테이너" 를 혼용해서 사용하고 있습니다.

어플리케이션은 존을 독립적이고 보안이 강화된 운영체제 환경으로 다루고 있으며 개발자가 서로 다른 존에 어플리케이션을 설치 함으로써 각각의 어플리케이션을 독립시킬 수 있도록 합니다. 그러면서도 동시에 운영체제 리소스의 중앙 집중적인 관리가 이루어 집니다.

자가 예측 치료 기능은 솔라리스10을 위해 만들어 졌으며 하드웨어 및 어플리케이션 오류 상황을 자동으로 진단하고 고립화 시키고 복구 시킵니다. 결과적으로 비지니스-크리티컬 한 어플리케이션과 기본적인 시스템 서비스들이 소프트웨어 오류, 주요 하드웨어 컴포넌트의 오류 또한 소프트웨어의 잘못된 설정으로 인해 발생하는 문제등으로 부터 어떠한 영향도 받지 않고 계속적으로 실행될 수 있도록 합니다.

2007년 10월 자바 기술의 아버지인 제임스 고슬링은 그의 솔라리스에 관한 감격에 대해 블로깅 한 적이 있습니다: "솔라리스에는 멋진 기능들이 너무 많습니다. 저는 존과 ZFS 에 완전히 중독되었습니다. 예를 들어 저는 렙탑에서 ZFS 를 이용해 디스크를 관리합니다. 이후에 랩탑의 디스크를 USB 로 곧바로 미러링 합니다."


개발 툴


솔라리스는 개발자들이 어플리케이션을 배포할 모든 환경과 호환되는 통합되고 바로사용이 가능한 툴을 제공합니다. SXDE 를 통해서 최신 개발자 툴이 자동적으로 운영체제와 함께 설치 됩니다.

개발자 툴은 다음을 포함합니다:

썬 스튜디오 12 12/07 소프트웨어 는 고성능 컴파일러와 툴을 제공하고, SPARC 플랫폼, x86/x64 플랫폼의 솔라리스와 리눅스를 위한 최적화된 C, C++,포트란 컴파일러를 제공하고, 또한 최신의 멀티-코어 시스템과 소스, 메모리 그리고 쓰레드 디버깅등을 지원합니다.
Project D-Light 는 시스템의 동작을 분석할 수 있는 몇가지 도구들을 제공합니다. (프로젝트 D-Light 는 현재 솔라리스10에서만 실행되며 DTrace 활성화된 최소 6이상의 JRE 가 필요 합니다) 프로젝트 D-Light 는 복잡한 어플리케이션과 시스템의 프로파일링을 퍼포먼스 병목현상을 가시적으로 보여주고 어플리케이션 시스템 스택상의 리소스 병목현상에 대해 개발자들이 접근 할 수 있도록 도와 줌으로써 어플리케이션과 시스템 환경을 최적화 할 수 있도록 도와 줍니다. 아주 간단한 드래그앤드롭 인터페이스로 되어 있고 DTrace 를 포함한 최신의 프로파일링 기술들의 확장 라이브러리를 제공 합니다.
넷빈즈 IDE 6 는 개발자가 크로스 플랫폼 자바 데스크탑, 엔터프라이즈, Ruby on Rails, JRuby, PHP 등의 지원을 포함하는 웹 어플리케이션을 개발 할 수 있는 모든 툴들을 제공합니다.
자바 플랫폼 Standard Edition 6 (Java SE) 은 개발자가 임베디드 및 실시간 환경 등을 포함한 데스크탑과 서버에서의 자바 어플리케이션 생성과 배치를 가능하도록 합니다. 자바 SE6 는 웹서비스 개발등에 필요한 클래스들을 기본적으로 제공하고 자바 플랫폼 Enterprise Edition (Java EE) 의 기반입니다.

어플리케이션 지원: 웹 어플리케이션 스택


SXDE 의 일부로 제공되는 웹 어플리케이션 스택은 널리 사용되는 오픈 소스 어플리케이션들이 솔라리스에 최적화된 형태로 제공됩니다. 이 것은 가장 대중적인 어플리케이션(아파치, PHP, MySQL, Ruby 등) 이 미리 설정되어 사용이 가능하며 컨트롤 패널을 통해서 빠르고 쉽게 서비스를 관리할 수 있습니다.


멀티플랫폼 지원


솔라리스10은 랩탑에서 데스크탑 그리고 SPARC 과 x64/x86 등의 모든 시스템에서 실행 됩니다. 랩탑과 데스크탑에서 완벽히 통합된 썬 자바 데스크탑 시스템을 통해서 솔라리스10은 파워 유저와 개발자들이 고급 기능들과 작업 생성에 가치를 줄 수 있는 개발자 툴들의 장점들을 누릴 수 있도록 합니다.


하위 호환성 보장

하위 호환성 보장은 상용 소프트웨어 개발자들에게 특히 중요합니다. 왜냐하면 유지보스는 일반적으로 소프트웨어와 연관된 가장 큰 비용이기 때문입니다. 썬은 하위 호환성 보장은 벤더들의 소프트웨어가 한 버전의 솔라리스에서 빌드된 것이 그대로 다른 버전에서도 올바르게 동작하도록 보장합니다.

이것이 다른 운영체제와 확연하게 비교 되는 점입니다. 예를 들어 시스템 컴포넌트의 비호환적인 변경 -- 예를 들어 라이브러리들 -- 이 어플리케이션에 미칠 수 있는 영향을 고려하지 않고 만들어지는 것들과 비교 됩니다. 결과적으로 어플리케이션은 고장나고 유지 보수 비용이 증가 함으로써 어플리케이션 벤더와 사용자들에게 좌절을 안겨다 줄 것입니다.


성장하고 있는 오픈 소스 커뮤니티


2006년 11월 과 2007년 11월 사이에 OpenSolaris.org 의 가입자는 2만명에서 8만명으로 늘었습니다. 오픈 솔라리스 프로젝트 이상으로 오픈솔라리스는 커뮤니티 이며 협동을 위한 웹 사이트 입니다. 솔라리스 소스 코드, 다운로드, 개발자 툴, 메일링 리스트, 유저 그룹, 이벤트 정보, 그리고 그 이상의 것들이 opensolaris.org 에서 이용 가능합니다. 오픈솔라리스 기술은 SPARC 과 x86 플랫폼을 위한 단일 소스 코드 베이스로써 모든 플랫폼에서 동일한 기능을 제공합니다.


GNOME 과 자바 GNOME 바인딩


GNOME 은 개발자들이 필요에 맞는 데스크탑 어플리케이션을 다양하게 사용할 수 있는 현대적인 데스크탑을 제공합니다.

GNOME 커뮤니티는 좀 더 많은 개발자들을 끌어 들이기 위해 데스크탑 어플리케이션을 C 로 개발하는 것에 대한 대안이 필요함을 인정하고 있습니다. GNOME 데스크탑의 95 퍼센트 이상이 C 로 쓰여졌으므로 많은 사람들이 여전히 썬 스튜디오 소프트웨어, 넷빈즈와 C/C++ 모듈, 그리고 이클립스를 통해서 그들의 데스크탑 어플리케이션을 C 로 개발하고 있습니다.

자바 GNOME 바인딩 은 GNOME 과 GTK+ 어플리케이션을 개발할떄 필요한 핵심 라이브러리에 대한 접근을 제공하고 있습니다. 바인딩은 하부 플랫폼의 C API 를 자바SE 에서 제공하는 JNI 를 통해 자바 API 에서 접근이 가능하도록 지원합니다. 바인딩은 솔라리스 패키지 셋의 형태로 제공되며 다음을 포함하고 있습니다:

API jars: 자바 API 를 제공하고 자바 GNOME API 를 import 하도록 한다
API libraries: JNI 네이티브 C 라이브러리를 지원하여 자바 API 가 호출할 수 있도록 한다
도움말: API 소스 jar 파일들에 대한 설명을 제공함으로써 code 자동 완성 및 소스 브라우징을 IDE 에서 가능하도록 한다
API Javadoc: API 에 대한 이해하기 쉬운 설명을 제공한다
자바 GNOME 바인딩은 Glade-기반의 GNOME/GTK+ 어플리케이션 개발에 친숙한 개발자들에게 이러한 타입의 데스크탑 어플리케이션을 자바 언어로 대치할 수 있는 길을 제공합니다. 자바 GNOME 커뮤니티는 바인딩의 자동 생성이 가능하도록하는 재디자인 작업중에 있습니다. 이 작업을 통해서 하부 GNMOE 플랫폼과 Cairo 네이티브 라이브러리에 대한 거의 100% 의 지원을 제공하게 될 것이고 GNOME 플랫폼의 차후버전과도 계속해서 동기되도록 해 줄 것입니다.

이와 덧붙여서 새로운 GNOME DevHelp 는 gtk-doc 과 네이티브한 작업을 통해서 개발자들이 GNOME API 문서를 브라우징 하고 검색 할 수 있는 어플리케이션입니다.


돋보이는 배치


솔라리스는 배치의 유연성을 제공합니다. 솔라리스는 SPARC 기반의 시스템에서 운용되든 x64/x86 시스템에서 운용되든 동일한 기능을 제공합니다. 솔라리스의 모듈화된 아키텍처는 커널을 재빌드 할 필요 없이 드라이버들이 동적으로 로딩 될 수 있도록 합니다. 커널 자체는 단일 프로세서와 멀티프로세서 환경을 지원하고 대부분 자체적으로 튜닝이 되어 있습니다. 이러한 기능들은 대용량의 배치 환경에서 단일화되고 최적화되고 강력하게 보안이 강화된 환경을 제공 합니다.

이러한 효율적인 작업은 임베디드 시스템 혹은 컴퓨팅 팜에서도 마찬 가지 입니다. 솔라리스는 그러므로 텔레커뮤니케이션, 스토리지, 네트워크 보안, 병원 그리고 정부 공공 같은 분야에 매우 적합합니다. 또한 가능한 모든 PC 의 설정 (랩탑, 데스크탑, 워크스테이션, 블레이드, 랙마운트 서버, x64/x86 기반의 8-way 서버를 포함한) 에서도 매우 적당합니다.

SXDE 를 이용해 개발된 어플리케이션은 Solaris Ready Test Suite 을 이용해 솔라리스10 API 를 사용하는지 검사함으로써 솔라리스에서 테스트되고 사용될 수 있습니다. 덧붙여서 배치 전에 솔라리스10 서버에서 파이널 빌드를 만들어야 합니다.


가상화

솔라리스에 포함된 가상화 기능은 배치를 좀 더 간편하고 유연하도록 해줍니다. 썬은 가상화 엔터프라이즈를 위한 현존하는 모든 기술들을 제공하고 미래의 가상화를 위한 혁신적인 최신 기술을 제공합니다.


메모리 배치 최적화 (MPO)


솔라리스10은 메모리 배치 최적화(Memory Placement Optimization:MPO) 를 통해서 서버의 물리적 메모리의 배치를 향상시킴으로써 퍼포먼스 향상을 이룩했습니다. MPO 를 통해서 솔라리스10은 메모리를 그것에 접근하는 프로세서와 최대한 가깝게 위치시키는 동시에 시스템에서 충분히 밸런스를 이룰 수 있도록 하였습니다. 결과적으로 TPC-H 런타임이 획기적으로 감소하였고 TPC-C 퍼포먼스가 향상되었고 다수의 고성능 컴퓨팅(HPC) 어플리케이션의 실행시간이 반으로 단축되었습니다.


향상된 쓰레드


최근의 몇몇 솔라리스 배포판에서 쓰레드 라이브러리는 멀티쓰레드 어플리케이션을 위해 향상되었습니다. 솔라리스9 부터 썬은 기존의 'MxN' 구현을 대체하는 최적으로 튜닝되고 테스트된 '1:1' 모델을 채용하였습니다. 하부의 쓰레드 구현을 단순화 함으로써 어플리케이션은 재컴파일 없이 엄청난 퍼포먼스 향상과 안정성의 향상을 얻을 수 있습니다. 솔라리스10에서는 쓰레드 로컬 스토리지(TLS) 가 추가되었고 스토리지 퍼포먼스의 단순화 및 퍼포먼스 향상을 꾀했습니다. 새로운 쓰레드 모델과 최신 자바 가상 머신(JVM) 기술의 조합은 SPECjbb2000 퍼포먼스의 비약적인 향상을 가져 왔습니다.


저렴한 관리 비용


많은 개발자들이 고유의 소프트웨어 환경을 관리하고 있습니다. 솔라리스10은 레드햇 리눅스에 비해 20% 이상의 소유비용 이득이 있음이 Crimson 컨설팅 그룹의 새로운 연구결과 에 의해 밝혀 졌습니다. 이 연구는 썬에 의해 스폰서 되었고 솔라리스와 레드햇 엔터프라이즈 리눅스 배치 경험이 없는 연구 참여자를 선별하여 독립적이고 분석적인 평가를 통해 디자인되고 실행 되었습니다.


솔라리스의 미래


솔라리스 와 SXDE 는 개발자들에게 특별한 기능, 다양한 어플리케이션, 손쉬운 다운로드 방법, 복수플랫폼 지원, 그리고 오픈 소스 커뮤니티 경험, 보장되는 하위 호환성 보장, 우월한 배치방법 및 관리 비용의 절감을 가져다 줍니다. 직접 사용해 보면 모든 것이 명확해 질 것입니다.

썬과 번영하고 있는 오픈 소스 커뮤니티의 강력한 지원을 통해서 미래는 매우 밝을 것입니다.


추가자료


솔라리스 익스프레스 개발자 에디션 (SXDE)
솔라리스 익스프레스 개발자 에디션 FAQs
솔라리스 개발자 센터
솔라리스 다운로드 옵션
OpenSolaris.org
SXDE 설치하기

저자에 관하여

Janice J. Heiss 는 썬 마이크로시스템즈의 필자진중 한명으로 자바 기술을 담당하고 있습니다.


이 글의 영문 원본은
http://developers.sun.com/solaris/articles/whydeveloponsolaris
에서 보실 수 있습니다.
반응형
http://www.javapassion.com/handsonlabs/javafxdraggableapplets/index.html

가장 흥미로웠던 부분이다. JAVAFX에 관한 관심을 증폭시킬만한 데모이니 한번 따라해보세요
반응형
제공 : 한빛 네트워크
저자 : Anghel Leonard
역자 : 김인희
원문 : Introduction to JavaFX Script


JavaFX 갖고 놀기

이 절에서는, JavaFX의 다양한 특징과 가능성을 엿볼 수 있는 몇 가지 예제를 보도록 하겠다. 예제들을 보여주는 이유는, 첫 번째로 JavaFX 코드 작성과 JavaFX 응용프로그램의 논리적 구조에 익숙해지도록 하기 위함이다. 두 번째로는 단지 몇 줄의 코드만으로 GUI, 애니메이션을 멋지게 만들거나 세련된 효과를 넣고 싶을 때, JavaFX가 시간을 들여 자세히 볼 만큼의 가치가 있다는 것을 알려주고 싶었기 때문이다. 여기서 소개하는 모든 예제들은 JavaFX만의 독특한 기술들을 포함하고 있다.

예제에 대한 간략한 설명을 한 후에 소스 코드를 보여주는 방식으로 진행할 것이고, 모든 예제가 혼자서 할 수 있는 정도로 쉽기 때문에 코드에 대한 설명을 따로 하지는 않았다.

System.out.println의 따옴표 안에 변수나 속성의 이름을 넣으면, 해당 값을 출력할 수 있다.

[예제 2]
//expressions within quoted text
import java.lang.System;
var mynumber:Number = 10;
System.out.println("Number is: {mynumber}");

결과 - Number is: 10
JavaFX는 변수의 집합 원소 개수(cardinality)를 표시하기 위해, 다음과 같이 세가지 연산자를 지원한다.
l	?: 선택 (null값일 수도 있다)
l	+: 1 또는 그 이상
l	*: 0 또는 그 이상
[예제 3]
//cardinality of the variable
import java.lang.System;
var mynumbers:Number* = [1,2,7];
System.out.println("Numbers are: {mynumbers}");

결과 – Numbers are: 1 2 7
JavaFX에서는 타입을 지정하지 않고 변수 선언을 할 수가 있다. JavaFX가 자동으로 변수의 값에 해당하는 타입을 지정하기 때문에, 이러한 방식이 허용된다.

[예제 4]
//the variable's type is optional
import java.lang.System;
var days = ["Monday,","Friday,","Sunday"];
System.out.println("You have to work: {days}");

결과 – You have to work: Monday, Friday, Sunday
sizeof 연산자를 사용하여 배열의 크기를 구할 수 있다.

[예제 5]
//getting the size of an array
import java.lang.System;
var lotto = [21,30,11,40,5,6];
System.out.println("Array size:{sizeof lotto}");

결과 – Array size: 6
어떤 특정한 조건을 만족시키는 부분 배열(subarray)을 얻기 위해 [] 연산자를 사용한다. 조건문은 []사이에 넣으며, 조건문의 결과는 Boolean이다. 이 방식은 Xpath의 조건 서술부(predicate)와 유사하다.

[예제 6]
//using the [] operator - similar to its use in XPath
import java.lang.System;
var mynumbers = [1,2,7,3,30,15,14,6,4];
var numbers = mynumbers[n|n < 10];
System.out.println("Numbers smaller that 10 are: {numbers}");

결과 – Numbers smaller than 10 are: 1 2 7 3 6 4
indexof 연산자로 배열에 있는 특정 요소의 순서 위치를 구할 수 있다.

[예제 7]
//returning the ordinal position of an element within an array
import java.lang.System;
var mynumbers = [1,2,7,3,30,15,14,6,4];
var number_four = mynumbers[indexof . == 4];
System.out.println("Number four:{number_four}");

결과 – Number four: 30
배열에 요소를 넣기 위해서 다음 중에 하나를 선택해서 insert문을 작성한다
l	as first: 배열의 첫 번째 위치에 넣는다
l	as last: 배열의 마지막 위치에 넣는다 (기본 설정값)
l	before: 특정 위치 앞에 넣는다
l	after: 특정 위치 뒤에 넣는다
delete문으로 배열 내에 한 요소를 삭제할 수 있다.

[예제 8]
//insert and delete statement
import java.lang.System;
var mynumbers = [1,2,7];
System.out.println("Before inserting anything:
    {mynumbers}");
insert 10 into mynumbers;
System.out.println("After inserting at the end
    the "10" value:{mynumbers}");
insert [8,6,90] as first into mynumbers;
System.out.println("After inserting at the first
    positions the "8,6,90" values:{mynumbers}");
insert 122 as last into mynumbers;
System.out.println("After inserting at the
    end the "122" value:{mynumbers}");
insert 78 before mynumbers[3];
insert 11 after mynumbers[3];
System.out.println("After inserting the "78"
    and "11" values before/after the 3rd
    element:{mynumbers}");
delete mynumbers[. == 122];
System.out.println("After deleting:{mynumbers}");

결과:
Before inserting anything: 1 2 7
After inserting the 10 value at the end: 1 2 7 10
After inserting the 8, 6, and 90 values at the first positions: 8 6 90 1 2 7 10
After inserting the 122 value at the end: 8 6 90 1 2 7 10 122
After inserting the 78 and 11 values before/after the 3rd element: 8 6 90 78 11 1 2 7 10 122
After deleting: 8 6 90 78 11 1 2 7 10
JavaFX에서 select와 foreach 연산자로 리스트 내장(list comprehensions)을 구현할 수 있으며, 이 기능은 꽤 유용하다. 다음 (각각 select와 foreach를 사용한) 두 예제는 특정 간격마다 홀수를 찾는다.

[예제 9]
//JavaFX select and foreach operators
import java.lang.System;
function odd(p:Number) {
    return select i from i in [1.0 ..p]
        where (i%2 == 1.0);
    }
var result = odd(10.0);
System.out.println("Odd numbers:{result}");

결과 – Odd Number: 1.0 3.0 5.0 7.0 9.0
[예제 10] (select 대신에 foreach 사용)
//JavaFX select and foreach operators
import java.lang.System;
function odd(p:Number) {
    return foreach (i in [1.0 ..p] where (i%2 == 0.0)) i;
    }
var result = odd(10.0);
System.out.println("Odd numbers:{result}");
다음 예제는 foreach로 얼마나 멋진 효과를 낼 수 있는지를 보여준다.

[예제 11]
//JavaFX select and foreach operators
import java.lang.*;
import javafx.ui.*;
import javafx.ui.canvas.*;
Frame {
    centerOnScreen: true
    visible: true
    height: 500
    width: 500
    title: "Foreach demo..."
    onClose: operation() {System.exit(0);}
    content: ScrollPane {
    background: white
    view: Canvas {
        content: bind foreach (i in [1..8], j in [1..8])
        Rect {
        x: i*30
        y: j*30
        width:30
        height:30
        fill: Color {red: (100+i) green: (100+j) blue: (100+(i*j))}
        stroke:white
        strokeWidth:1
        }
    }
    }
}

[그림 4] 예제 11 실행 결과

JavaFX 키워드와 같은 이름의 변수나 속성을 사용하려면, 다음과 같이 이중 괄호(double angle)사이에 이름을 넣으면 된다.

[예제 12]
//Identifier quotes
import java.lang.System;
for (<> in [0..3]) {
    System.out.println("for = {<>}");
    }

결과 – for = 0 for =1 for=2 for=3
JavaFX는 Swing 인터페이스 개발시에 코드의 수를 획기적으로 줄어주며, javax.swing.* 패키지와도 궁합이 잘 맞기 때문에 상당히 좋은 툴이라 할 수 있다. 앞 장(NetBeans5.5 용 JavaFX 플러그인을 사용한 Hello World 프로그램 작성)에서, 얼마나 손쉽게 간단한 프레임을 만들었는지 이미 경험을 했을 것이다. 다음으로 버튼(Button)과 텍스트 필드(TextField)를 생성하는 두 예제를 보도록 하자.

[예제 13]
import javafx.ui.*;
import java.lang.System;
Frame{
    content: Button {
    text: "Exit"
    action: operation() {
    System.exit(0);
    }
    }
    visible: true
}

[그림 5] 예제 13 실행 결과

[예제 14]
import javafx.ui.*;
Frame {
    content: GroupPanel {
    var myRow = Row { alignment: BASELINE }
    var label_col = Column { alignment: TRAILING }
    var field_col = Column { alignment: LEADING  }
    rows: [myRow]
    columns: [label_col, field_col]
    content:
    [SimpleLabel {
    row: myRow
    column: label_col
    text: "Type your text here:"
    },
    TextField {
    row: myRow
    column: field_col
    columns: 50
    }]
    }
    visible: true
};

[그림 6] 예제 14 실행 결과

Java.net에서 JavaFX로 Swing 인터페이스 만들기에 관한 튜토리얼을 찾을 수 있다.
반응형
제공 : 한빛 네트워크
저자 : Anghel Leonard
역자 : 김인희
원문 : Introduction to JavaFX Script

JavaFX는 무엇인가?

2007년 봄, 썬은 JavaFX라 불리는 새로운 프레임워크를 발표했다. JavaFX는 두 가지 중요한 컴포넌트인 스크립트 컴포넌트와 모바일 컴포넌트를 아우르는 일반적인 용어이며, 향후에 썬은 더 많은 컴포넌트들을 추가할 계획이다.

JavaFX의 핵심 컴포넌트는 선언형 언어인 JavaFX 스크립트(Script)이며, 코드 스타일은 자바와 상당히 다르지만 자바 클래스와 상호 작용하는 능력은 뛰어나다. 수 많은 JavaFX 스크립트 클래스들은 스윙이나 자바 2D 기능들을 손쉽게 구현할 수 있도록 설계되었다. 단지 몇 줄의 코드만으로 GUI와 애니메이션을 보여주거나 텍스트와 그래프에 화려한 효과를 넣을 수 있다. 또 다른 기능으로, JavaFX 스크립트에 자바와 HTML 코드를 넣을 수도 있다.

또 다른 컴포넌트인 JavaFX 모바일(Mobile)은 휴대용 기기에 들어가는 자바 응용프로그램 개발을 위한 플랫폼이다. JavaFX 모바일은 JavaFX 스크립트가 사용될 최대 플랫폼이 될 예정이지만, 아직은 이 기사의 내용과는 크게 관련이 없다.

JavaFX 응용프로그램 예제

새로운 언어를 배우기에 앞서, 몇 가지 JavaFX 코드 예제들을 살펴보도록 하자. JavaFX 공식 사이트는 예제를 얻기 위한 좋은 정보처이며, JavaFX 스크립트 2D 그래픽스 튜토리얼을 클릭하면 몇 가지 예제들을 포함한 tutorial.jnlp 파일을 다운받을 수 있다. 이 파일을 더블 클릭하면 [그림 1]과 같은 프로그램이 실행된다. (프로그램이 실행되지 않는다면, 자바 웹스타트에서 .jnlp 확장자 파일이 실행되도록 설정해야 한다.)


[그림 1] tutorial.jnlp 튜토리얼 파일 실행

tutorial.jnlp에 포함된 예제와 코드들을 천천히 살펴보면, 단지 몇 줄의 코드만으로 다양하고 흥미로운 그래픽 효과를 얻을 수 있음을 알게 될 것이다.

JavaFX가 과연 유용한 것인가 여전히 의문이 가는 독자라면, OpenJFK 프로젝트에서 Studiomoto와 Tesla Motors 사이트를 부분적으로 재현한 두 가지 데모(JavaFX Script Studiomoto Demo, JavaFX Script Tesla Demo)를 다운받아 보길 바란다. 데모를 실행하기 위해서는 자바 웹스타트가 필요하며, 컴퓨터 설정에 따라 자동적으로 실행될 수 있지만 그렇지 않다면 다운받은 .jnlp 파일을 직접 실행시켜야 한다.

JavaFX 다운로드와 설치

JavaFX 응용프로그램 개발을 배우기 원하는가? 그렇다면 우선 JavaFX로 작업하는데 최소한 3가지 방법이 있으며, JavaFX 응용프로그램은 브라우저 기반이 아니라는 사실을 염두에 두도록 하자. 첫번째로, JavaFXPad라는 가벼운 툴을 사용하는 것이 가장 쉽고 빠른 방법이다. 이 툴의 가장 큰 장점은 에디터에서 작업한 코드의 결과를 바로 볼 수 있다는 점이다. OpenJFK 프로젝트의 JavaFX 스크립트 JavaFXPad 데모를 클릭하면 JavaFXPad를 다운받을 수 있다. 거듭 말하지만, 자바 웹스타트가 있어야 해당 파일을 실행할 수 있다. ([그림 2]를 보자)


[그림 2] JavaFXPad 에디터 실행

또 다른 방법으로, NetBeans 5.5용 JavaFX 스크립트 플러그인(Plug-in)이나 Eclipse 3.2용 JavaFX 스크립트 플러그인(Plug-in)을 사용하는 방법이 있다. (물론, 이 플러그인들을 설치하기 전에 NetBeans 5.5나 Eclipse 3.2를 미리 설치해야 한다)

NetBeans 5.5용 JavaFX 플러그인을 사용하기로 했다면, OpenJFK 프로젝트에 있는 NetBeans용 JavaFX 문서가 많은 도움이 될 것이다. 마찬가지로, Eclipse용 JavaFX 플러그인을 선택했다면 Eclipse용 JavaFX를 방문해 보길 바란다. 앞으로 설명할 모든 예제는 NetBeans 5.5용 JavaFX 플러그인에서 테스트 하였지만, 다른 환경에서도 잘 돌아갈 것이다.

NetBeans 5.5용 JavaFX 플러그인을 사용한 Hello World 프로그램 작성

새로운 언어를 배울 때 처음으로 작성하게 되는 것이 Hello World 프로그램일 것이다.

[예제 1]
import javafx.ui.*;
import java.lang.System;
Frame {
    centerOnScreen: true
    visible: true
    height: 50
    width: 350
    title: "HelloWorld application..."
    background: yellow
    onClose: operation() {System.exit(0);}
    content: Label {
        text: "Hello World"
        }
    }
NetBeans 5.5에서 다음과 같은 순서로 이 간단한 예제를 작성하고 실행할 수 있다.
  • NetBeans 5.5를 실행한다.
  • 메인 메뉴의 File에 있는 New Project를 선택한다.
  • New Project 창의 Category에서 General을, Projects에서 Java Application을 선택한다. (Next를 클릭한다)
  • New Java Application 창에서 Project Name에 “FXExample”라고 넣는다.
  • Browse 버튼을 클릭하여 프로젝트의 위치를 지정한다.
  • “Set as main project”와 “Create main class” 체크박스는 해제한다. (Finish를 클릭한다)
  • FXExample에 있는 Source Packages에서 오른쪽 마우스를 클릭한 후에, New에 있는 File/Folder를 선택한다.
  • New File 창의 Categories에서 Other를, File Types에서 JavaFX File을 선택한다.
  • New JavaFX File 창에서 File Name에 “Hello World”를, Folder에는 “src’를 넣는다.
  • 예제 1의 코드를 복사해서 HelloWorld.fx에 넣는다.
  • FXExample 프로젝트를 오른쪽 마우스 클릭하고 Properties를 선택한다.
  • Project Properties의 FXExample에서, Categories에 있는 Run를 선택한다.
  • Arguments 텍스트 필드에 “Hello World”를 넣는다. (OK를 클릭한다)
  • FXExample 프로젝트를 오른쪽 마우스 클릭하고 Run Project를 선택한다.
지금까지 아무런 문제가 없었다면, [그림 3]과 같은 프레임을 확인할 수 있을 것이다.


[그림 3] NetBeans 5.5로 Hello World 프로그램 실행

이제 여러분은 JavaFX 응용프로그램을 개발하고 실행할 수 있는 소프트웨어 환경을 갖추게 되었다.

JavaFX 구문

JavaFX를 시작하기에 앞서, JavaFX 구문의 몇 가지 우수한 점들에 대해 알아보도록 하자. 자바 언어 구문에 대해 잘 알고 있는 독자라면, JavaFX 구문이 자바와 매우 비슷하면서도 한편으로 몇몇 부분은 상당히 다르다고 생각할 것이다.

JavaFX 데이터형

JavaFX는 4가지 데이터형을 지원한다: String (java.lang.String와 대응), Boolean (java.lang.Boolean과 대응), Number (java.lang.Number와 대응), Integer (byte, short, int, long, BigInteger와 대응)

JavaFX 변수

JavaFX 변수는 var 키워드로 선언하며 다음과 같이 사용한다.
var x:Number = 0.9;
var name:String = "John";
var y:Integer = 0;
var flag:Boolean = true;

var numbers:Number = [1,2,3,4,5];
JavaFX 연산자

여러분이 잘 알고 있는 자바 연산자 &&, ||, !는 JavaFX에서 다음과 같이 바뀐다.
l	Java: &&
JavaFX: and 
l	Java: ||
JavaFX: or 
l	Java: !
JavaFX: not
JavaFX 함수

JavaFX는 함수를 지원한다. 다음 예제는 인수, 변수 선언, 리턴문으로 구성된 간단한 함수이다.
function taxes(x) {
    var t:Number = (19.0/100.0)*x;
    return t;
    }
JavaFX – if문

if문을 사용해 조건 블록(block)을 설정하며, 중괄호 사용은 필수이다. 만약 else절이 또 다른 if문이라면 중괄호를 생략할 수 있다.
if (place_your_condition_here) {
        //do something
    } else if (place_your_condition_here) {
        //do something
    } else {
        //do something
    }
JavaFX – while문

자바의 while 문과 유사하며 중괄호 사용은 필수다.
while (place_your_condition_here)
    {
    //do something
    }
JavaFX – for문

일정 간격마다 반복하는 for문을 만들 수 있다. ( [] 괄호와 .. 기호로 간격 범위를 설정한다. )
//i will take the values: 0, 1, 2, 3, 4, 5
for (i in [0..5])
    {
    //do something with i
    }
JavaFX 프로시저

다음과 같이 JavaFX 프로시저 앞에 operation 키워드를 붙인다.
operation startClock() {
do{
    while(true)
        {
        if(seconds>=360)
    {seconds = 0; seconds = [0,6..360] dur 60000 linear;}
        if(minutes>=360)
    {minutes = 0; minutes = [0,6..360] dur 3600000 linear;}
        if(hours>=360)
    {hours = 0; hours = [0,6..360] dur 43200000 linear;}
        }
    }
}
JavaFX 클래스

JavaFX 클래스 앞에 class 키워드를 넣는다. JavaFX 클래스는 extends 키워드와 클래스 이름 사이에 콤마를 넣어 다수의 클래스들을 상속받을 수 있다. 다음 Order 클래스에는 속성, 함수, 프로시저가 있으며 중괄호 사이에 놓여있다.
class Order {
    attribute order_nr: String;
    attribute ordertype: Order inverse Order.products;
    attribute products: Order* inverse Order.ordertype;
    function getOrderNr(): String;
    operation addOrder(order: Order);
    }
속성은 attribute 키워드로 선언하며, 함수와 프로시저의 바디(body)는 클래스의 바디(body)에 포함되지 않는다. 앞으로 보게 되겠지만, 함수와 프로시저의 구현은 클래스를 선언한 후에 이루어진다.

inverse 옵션은 한 속성과 그 속성이 속한 클래스의 다른 속성과의 양방향 관계를 나타낸다. 이 경우에, JavaFX는 삽입, 수정, 삭제와 같은 업데이트를 자동으로 수행한다.

Java.net에서 더 자세한 정보를 얻을 수 있다.
반응형
 

plug-in 설치

eclipse에서 JavaFX를 사용하려면 다음과 같은 순서로 plug-in을 설치한다.

  1. Help -> Software Updates -> Find & Install
  2. Search for new features to install -> Next
  3. New Remote Site
  4. Name: javaFX URL: http://download.java.net/general/openjfx/plugins/eclipse/site.xml
  5. Finish

그 다음부터는 Next만 계속 눌러주면 된다.

새 파일 만들기

File -> New -> Others -> JavaFX -> JavaFX file 후 원하는 프로젝트를 선택하고 파일명을 써넣는다.

실행하기

Run -> Run... -> JavaFX Application -> Project: 해당 프로젝트 이름 -> Arguments 탭 -> Program arguments: JavaFX 파일명(확장자 제외)

반응형
012

SCJP 시험을 보고 취득한 자격증...

한 2주만에 도착했다..   어렵게 합격한 시험은 아니지만 거금이 들었다..

무엇보다도 시험을 보며 느낀 점은 자격증 취득이 목적이 되어서는 안되었을 것을 하는 생각..

다시 한번 JAVA 에 대해 자료를 정리하고 공부해야겠다.

그리고 끊임없는 자기개발과 함께 정리하는 차원에서 자격증 취득을 하려고 한다..

한단계씩 열심히 해서 실력도 늘리고 내공도 쌓고 자격증도 취득해야겠다. 그 첫걸음이다..

나는 어제의 나보다 더 성장하였다. 어제보다 오늘 한걸음 더 걸었고 내일은 또 한걸음 내딛을것이다.

그렇게 내 남자의 길~! 을 가는 거야~~   어제보다 나은 내가 되자~ ^^
반응형
사용자 삽입 이미지










<Java Technology Seminar>
JavaOne 2008 Wrap-up 세미나

사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지


토요일날 이화여대에서 열리는 JavaOne 2008 Wrap-up 세미나에 다녀왔다.

처음 가는 이대 참 사람도 많고 여자도 많다..

30분 가량 늦게 세미나장에 들어섰다.. 많은 사람들이 세미나를 듣고 있었다..

세미나 내용은 잘 모르는 내용도 많았지만 참 흥미로웠다.. 그중에서

가장 흥미로웠던 것은 JavaFx 에 관한 내용과 GlassFish에 관한 내용이였다.

장장 6시간에 걸친 세미나였다.. 아침도 못먹고 늦어서 점심도 못먹어서 너무

배가 고팠지만 잠시도 세미나에서 빠지고 싶은 생각이 들질 않았다..

앞으로 이런저런 세미나에 빠짐없이 참석해야 겠다. 그리고 세미나가 끝나고

경품추첨 ㅠㅠ 아 놋북 가방이라도 당첨됬으면 했지만 ㅠㅠ

뭐 세미나 기념품으로 아기자기한 스프커와 오픈솔라리스 씨디를 받았다..

스피커는 집에서 놋북용으로 사용해야겠다.. ㅎㅎ 므튼 참 유익한 시간이였다

< 세미나 정리글  -펌글- >

*wrap-up : 간추린 뉴스, 요약

JavaOne 2008 wrap-up를 대략적으로 wrap-up를 하자면

http://www.javapassion.com/SangSchedule.html
자바 에반젤리스트 신상철님의 연간강의 스케줄..

JavaEE6 --> JavaEE7
GlassFish v3(web container)

ex) JRuby : http://deepblue.springnote.com/pages/213044

J2SE  Applet 중요성이 다시 부각되고 있다.
Applet using JNLP 가 추가되어서 web 과 로컬 pc의 어플리케이션 간극이 없어져서 좀더 다이나믹하게 동작할수 있도록 되었다

*JNLP(Java Network Launching Protocol) : 네트워크 상의 호스트 리소스로 부터 프로그램을 실행시킬 수 있는 프로토콜

(구체적인 내용은 여기를 참조)

http://www.javastudy.co.kr/docs/techtips/010530.html

가령 야후 위젯 같이 실행은 웹에서 했으나 드래그 했을 경우 브라우저가 닫혀도 로컬 pc에서 동작될수 있도록 프로그래밍할수 있다는 것임

여기서 중요한것인 JRE 이다. JRE 자체가 무거울 경우 사용자는 다운로드 받는데 오랜 시간이 걸리므로 금방 포기할수 있다. 따라서 JRE가 모듈화되어서 선택적으로 필요한 모듈의 JRE를 다운로드 받을 수 있도록 변경되어졌다.---> light JRE


Applet comeback!

J2SE6update10 에는 JavaFX script도 포함되면서 Client side 쪽의 ajax 나 silverlight 같은 RIA를 향한 하나의 도약이 될수 있다고 제시하고 있다.

관련 아티클 : http://www.javaworld.com/javaworld/jw-05-2008/jw-05-applets.html

*JavaFX : http://www.sun.com/software/javafx/index.jsp

 JavaFX 를 직접 테스트 해볼 수 있다. 가장 흥미롭게 보았던 부분이다.
밑에 URL은 따라하기 부분이다.
http://www.javapassion.com/handsonlabs/javafxdraggableapplets/index.html


반응형

 출처 : http://www.thinkmania.com/zb40/zboard.php?id=ibmboard2&page=2&sn1=&divpage=17&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=96474

[펌] PC를 이용한 방범 CCTV 설치하는 방법 아시는 분!

(1)
음.. 간단하게 말씀드리자면...
DVR 카드 구매하셔서 연결하시면 됩니다.. 카메라는 적외선 카메라....대략 15만원정도?
DVR카드는 한 10만원정도... 케이블값은 3~4만원선?
대략 30만원선에서 끝내실수있습니다...
IP CCTV는.. 30~45만원 정도 하던데... 비싸죠;;; 뭐 물론 번거러움이 줄어들겠지만요 ㅎㅎ

(2)
http://bloggernews.media.daum.net/news/964189

(3)
알파캠m2 사서 딸려오는 s/w 워치아이 쓰면 움직임이 있을때만 사진찍게 할 수도 있습니다. 아주 좋아여..

(3) 상세

무료로 집 안의 컴퓨터와 웹캠을 이용, 집 안에 CCTV설치하는 방법을 알려드립니다.


1) 컴퓨터 본체의 잠자기 기능을 모두 해제해야합니다. 컴퓨터가 잠들기에 들어가면 원격제어가 불가능하기 때문이죠.

2) 컴퓨터 본체에 데이콤의 '네트로'라는 프로그램을 설치합니다.
이것은 외부 컴퓨터로 집 안의 컴퓨터를 원격 제어하기 위한 프로그램입니다.
외출 시 '네트로' 바로가기 화일을 클릭해주면 됩니다.

3) 집 안의 컴퓨터에 웹캠을 설치합니다. 웹캠은 비싸지 않으니깐 괜찮은 제품으로 아무거나 하나 구입해서 USB로 컴퓨터와 연결합니다. 마이크까지 연결하면 집 안의 소리도 들을 수 있습니다. 또 웹캠을 컴퓨터가 없는 곳에 설치하려면 USB선이  길어야하니 거리에 맞추어 USB연장선을 구입합니다.

4) 네이트메신저나 MSN메신저처럼 화상대화가 가능한 메신저를 설치합니다.
그리고 아이디를 2개 만듭니다.

5) 외출시 집 컴퓨터 본체를 켜고, 네트로를 실행시킨 다음, 메신저도 구동시킵니다.
물론 웹캠은 메신저와 문제없이 연동됨을 꼭 확인해야합니다. 모니터는 꺼도 됩니다.

6) 회사에서 네트로 사이트에 접속하면 바로 왼쪽 상단에 집의 컴퓨터 이름이 떠 있습니다. 그것을 클릭하면 직접 회사 컴퓨터로 집 안의 컴퓨터 데스크탑 화면을 볼 수 있게 됩니다. 그 다음 회사 컴퓨터의 메신저에서 집의 메신저에 화상대화를 신청합니다.
그리고 네트로를 이용, 집의 컴퓨터에서 화상채팅 승인을 해주면 회사 컴퓨터의 메신저로 집 안의 모습과 소리를 실시간으로 감시할 수 있습니다.

7) 음, 저는 이 방법으로 화면 녹화까지는 안해봤는데요, 만약 녹화도 하고 싶다면 메신저보다는 웹캠에 같이 딸려오는 녹화 전용 프로그램을 이용하는 것이 좋지 않을까 싶네요.(메신저에 녹화 기능이 없을 듯)  '네트로'를 이용하면 외부에서도 집안의 컴퓨터를 원격 제어할 수 있으니 직접 회사에서 이런 녹화프로그램을 구동시켜서 집 안의 컴퓨터에 녹화 데이타를 저장시킬 수도 있습니다. ^^

+ Recent posts