javafx 2.0 beta 가 나왔어요 (자바fx 2.0 베타) 새로운 소식 (News)

기존 javafx script 를 버리고 라이브러리 형식으로 만들어 자바에서 api를 불러와서 사용하는 방식으로 바뀌었습니다.


그래픽 엔진을 개선하여 그래픽 처리를 기본적으로 하드웨어 가속을 이용하여 처리하는 군요. 기존 swing이나 javafx의 고질적인 단점이 느리고 무거운 그래픽이였는데 이번 계기로 많이 벗어났으면 하는 바램입니다.
또 low latency sound와 더 부드럽고 빠른 동영상 처리등등 미디어 지원도 신경썼네요.


Webkit을 이용하여 웹을 렌더링 하는군요. 이렇게 되면 거의 javafx의 핵심 기술은 모두 자바를 벗어나는 의존적인 라이브러리들이 처리를 하게 됩니다. 하지만 기존 자바를 쓰지 않았던 핵심 이유 중에 속도문제를 빼놓을 수 없는데 개인적으로는 정말 올바른 방향이라고 생각합니다. 


기존에 javafx script를 버리고 api제공으로 자바문법을 그대로 사용하는 것에 있어서는 단점도 장점도 있을꺼란 생각입니다.
하지만 jvm위에서 돌아가는 그루비나 자이썬 같은 스크립트 언어들도 사용할 수 있게 만든 것은 정말 스마트 한 방향이라고 생각합니다.



관련 도메인
    다운 받으러 가기: http://javafx.com/downloads/all.jsp
    샘플 및 튜토리얼 : http://download.oracle.com/javafx/index.html

LWJGL 소개 자바게임 (Java Game)

Lightweight Java Game Library (LWJGL)아마추어나 전문가모두를 겨냥한 솔루션이에요.
자바로 작성된 상용수준에 퀄리티로 개발이 가능하지요.
개발자에게 OpenGl이나 OpenAL같은 크로스플랫폼 라이브러리로 3D게임이나 3D 사운드제작에 빠른 성능을 제공합니다.
부가적으로 게임패드나 조이스틱같은 컨트롤도 제공해주지요. 
모든 API는 간단하고 직관적이랍니다.

일반적으로 JOGL 보다 빠르다고 알려져 있다.
LWJGL을 기반으로 한 프레임웍이 활발히 운영중이다.
문서정리가 깔끔한 편이라 기초적인 것들에 익숙해지는데 까다롭지가 않다.

JavaFX Chapter 2. Type and Values > Type Examples (자바fx 데이터형과 값 > 데이터형 예제) 자바FX (JavaFX)



Integer, Number, Boolean, String에 대한 변수할당 정하는 최소한의 필수 문법입니다.
var x : Number; // x initially 0.0
var m : Integer; // m initially 0
var isBig : Boolean; // isBig initially false
var word : String; // word initially ""
m = 42;x = 0.25 * m + 2.1e4;
isBig = x > 1000;word = if (isBig) "Big" else "Small";
선택적으로 타입을 정의할 수도 있죠.
class Foo {
    var zing : Integer;
}
var fu : foo; // fu initially null
fu = Foo {zing: 17}
다음은 시퀀스타입예제입니다.
var names : String[]; // names initially []
names = ['Olof', 'Ellen', 'Steve', 'Claire'];
insert 'Bonnie' into names; // add 'Bonnie' to the end of names sequence
names[1] = 'Donna'; // set the element at 1 (previously 'Ellen') to 'Donna'
시퀀스 타입은 내용을 변경할 수 없습니다. 다만 내부적으로 새로운 시퀀스가 names 변수에 할당되게 됩니다.




JavaFX Chapter 2. Type and Values > Sequence Types (자바fx 데이터형과 값 > 시퀀스타입) 자바FX (JavaFX)


Sequence Types (순차타입)

시퀀스타입은 오브젝트값의 순서를 담고 있습니다. 다른 말로는 시퀀스 카디널리티를 담고있다, 객체의 엘리먼트 지정자 라고 합니다.

시퀀스타입은 아래와 같이 생성합니다.
[ 76, 9, 34, 2]
['red', 'green', 'blue']
또는 아래같이 범위를 지정할 수도 있구요.
[100 .. 200]
다음처럼 시퀀스타입을 변수로 만듭니다.
var nodes : CustomNode[];
var numbers : Number[];
def primes = [2, 3, 5, 7, 11];
[2, 3, 5, 7, 11] 같은 표현은 Integer[] 타입입니다. 즉, Integer[] 타입으로 타입 추론됩니다.
이것은 자바의 배열과는 다릅니다. 자바fx의 시퀀스타입은 객체가 아니거든요. 그래서 시퀀스타입 안에 시퀀스 객체를 담지 못하고, 자동으로 평평한 값으로 변환되어 들어가게 됩니다. null 값은 시퀀스에 들어갈 때 [](빈 시퀀스)가 되어 담겨지지 않습니다.


다음은 모두 동등한 시퀀스입니다.
[45, 9, 88, 13]
[[45, 9], [88, 13]]
[45, null, 9, [], 88, [13]]
시퀀스의 평평하게 변환되는 성질을 이용한 유용한 반복문입니다.
for (x in [1..5]) {
   [x, x*x]
}
시퀀스가 이렇게 변합니다.
[1, 1, 2, 4, 3, 9, 4, 16, 5, 25]
시퀀스타입은 그안에 담겨있는 값을 수정할 수 없는 타입입니다. insert, delete 표현식과 엘리먼트 할당 모두 새로운 시퀀스를 생성하게 됩니다. 따라서 내용을 수정할 수 있는 타입 보다 연산 비용이 객체를 새로 생성하는 만큼 더 들어가게 됩니다.


apache derby (javadb) ready 설치와 설정 (Install,Conf)

1. derby 다운
2. 압축해제
3. derbytools.jar 클래스 패스
4.  $ java -cp ./derbytools.jar org.apache.derby.tools.sysinfo  / 해서 잘나오는지 확인
5. java org.apache.derby.tools.ij 해서 쿼리툴 실행
6. 문법
ij> connect 'jdbc:derby:MyDbTest;create=true'; / 생성
ij> exit; / 종료
ij> connect 'jdbc:derby:MyDbTest'; / 데이터베이스 연결
ij> connect 'jdbc:derby:/home/bill/databases/MyDbTest'; / 디렉토리로 방식으로 연결
ij> disconnect; / 연결 종료
ij> run 'my_file.sql'; / 스크립트 실행

1 2 3 4 5