'메소드체인'에 해당되는 글 1건

  1. 2009.03.04 후기 - 제 10회 한국 자바 컨퍼런스를 다녀와 II… (2)

부제 : RIA를 위한 JavaFX 그리고 그의 진화

첫번째 세션에는 Prototype.js 저자 이신 김영보 선생님의 MethodChain과 Ajax 애플리케이션 아키텍처에 대한 내용이였습니다. 

하나의 점으로 시작한 이번 PT는 원리와 개념적인 설명부터 이어졌고 작은 점 하나의 의미는 보는 사람들에 따라 다르고 이 점이 아키텍처에 비추어 설명해 주셨습니다.

 


좀 다른 면이 있지만 <쎙떽쥐페리의 어린왕자 中에서> 코끼리를 삼킨 보아뱀과도 같다 라는 느낌을 받았습니다.  

아키텍처의 본질은 작은 점으로 시작되었지만 그 깊이는 알 수 없이 깊어 수많은 문제점에서 유연하게 대처하고 그 넓이는 무한히 넓게 확장성을 갖어야 한다는 의미를 담고 있었던 거 같습니다.

“새소리, 물소리” 
군인은 지도를 보면 새소리와 물소리가 들려야 한다 라는 선임하사의 말을 연상하시며 역시 아키텍처에 사전적인 것이 아닌 본질을 이해하기 위한 설명이 이어졌습니다. 

이어 설명한 HTML, CSS, DOM, JavaScript, XML, JSON, Ajax 까지 Ajax Application를 위한 기본 도구(언어, 디자인 등)들이 갖는 일반적인 특징과 기술적인 특징에 대해서 간략하게 설명했고. Ajax Application에서 getElementById()가 갖는 개념에 대한 중요한 포인트를 지적하였는데 간단히 넘어가서 다시 한번 언급하자면

var dom = document.getElementById( ‘domBook’ ); 
위의 코드가 갖는 개념, 목적, 관련 기술에 대해 정확히 알아야 한다는 것 이였다.

짧고 간단하게 집고 넘어간 부분이지만 Ajax Application 개발에 있어서 가장 중요한 부분이라 생각합니다..  우리가 많이 사용하고 있는 Porototype, jQuery, Script.aculo.us와 같은 라이브러리들 역시 이런 도구들의 원리와 본질을 잘 파악하고 있고 발전에 잘 대응하고 있기 때문에 성공한 JavaScript 라이브러리도 탄생할 수 있었을 것입니다.

Framework의 범주는 주요 라이브러리들과 MethodChain에서 기술적으로 고려하였던 부분을 비교해서 간락햐게 설명하셨데 MethodChain도 범주에 속한 조건(?)들을 대부분 만족하고 있는 것 같습니다.  하지만 많은 라이브러리가 이미 기본 범주를 뛰어넘어 RIA를 위한 좀더 나은 프레임웍 이상으로 발전해가고 있죠.  빨리 MethodChian도 세계적인 라이브러리들에 동일 선상에 위치하도록 발전되었으면 하는 바램입니다.

이로써 국내 오픈 JavaScript 라이브러리가 3개가 되었습니다.
레이쥬님 swaf 2.0 - http://reizes.egloos.com/ (개발 중단 하신 듯)
김영보님 MethodChain - http://www.methodchain.com/ 

마지막으로 Framework의 핵심은 "접근성과 확장성" MethodChain이 풀어야할 숙제들 중에 하나가 아닐까 생각이 듭니다.   jQuery가 세계적인 라이브러리가 된 것은 바로 두 가지 “접근성”, “확장성” 의 두 마리 토끼를 잡기 위해 노력했기 때문일 것입니다.

jQuery의 문서화가 꾀 잘되어있고 이는 개발자들이 쉽게 개발에 참고할 수 있는데 큰 도움을 주엇습니다.  그로 많은 개발자들이 확장기능이나 플러그인을 개발하여 공유하는 커뮤니티가 형성되다 보니 점차 jQuery의 사용률은 높아갔던 것입니다.  더불어 노키아, MS 등과 같은 기업에서도 웹 런타임 환경으로 임베드 되는 것들이 jQuery를 세계적인 라이브러리로 만드는데 보탬이 되었습니다.

이번 1세션에서는 MethodChain 에 대한 기술적 이슈보다 Ajax Application 아키텍처에 대한 기본으로 가져야 할 사상에 대해서 좀더 이해할 수 있는 시간이 되지 않았나 싶습니다.  

다른 주요 라이브러리와 MethodChian에 기술적인 비교에 대한 내용이 이어졌지만 실제 구현이 아닌 Firebug를 통한 코드 Trace를 하여 설명하기가 난해하군요. ^^;

MethodChain를 포함 대부분의 JavaScript 라이브러리가 갖는 기능들 중 MethodChain이 다른 라이브러리들 보다 좀더 개선된 메커니즘을 갖는 다는 내용이였습니다.
PT자료를 보시면 어떤 부분에서 차이가 있는지 간략하게 정리가 되어있으니 좀더 자세한 내용은 JCO의 PT 자료를 참고하면 됩니다.

시간이 여유로웠다면 여러 JavaScript 라이브러리들의 차이점들에 대해서 자세히 알 수 있었을 텐데요. 아쉽습니다.



제 2세션 JavaFX : RIA를 위한 새로운 플랫폼
이번 세션을 많은 분들이 기대가 컸던 것 같습니다.  새로운 플랫폼에 대한 관심도도 관심도지만 발표자가 신상철 박사님이라는 것 때문이였는데요.  신상철 박사님의 히스토리를 보니 열정이 대단하신 분이라고 생각이 들었습니다.  이번 세션을 통해 처음 뵈었지만 발표하는 내내 정말 열정이 묻어 나왔던 시간이였습니다.  

모든 PT가 영어로 되어있고 중간 중간 영어를 사용하신다고 하시더니 문장만 영어가 아니였지 60~70%는 영어를 사용하시더군요.. 새로운 용어도 있어서 생소했지만 그래도 적응할 만 했습니다.

신상철 박사님은 http://www.javapassion.com 을 통해서 자세히 만나보실 수 있습니다.
대부분의 컨퍼런스 참여자가 개발자일 것이라는 배려로 개념적인 부분들은 중요한 부분만 집고 넘어갔습니다.  JCO의 PT자료를 참고하시면 JavaFX의 특징에 대해서 쉽게 이해하실 수 있고 위에서 언급한 사이트에서 JavaFX의 좀더 상세한 강좌를 볼 수 있다고 하니 관심있는 분이라면 꼭 챙겨 보시기 바랍니다.

 

JavaFX Script의 특징
• Declarative, statically-typed scripting language
• Facilitates rapid GUI development
• Many cool, interesting language features
• Runs on Virtual Machine for the Java™ platform
• Deployment options same as Java programs
• Fully utilizes Java class libraries behind the scenes
• For content designers and Media engineers

를 소개로 실제 구현을 위한 위의 내용을 세세히 설명해 나가기 시작했습니다.
JavaFX Script라고 해서 그런지 왠지 JSON(Javascript Object Notation)과 별반 달라 보이지 않았다. PT자료를 보시면 아시겠지만 표기법의 차이가 조금 있을 뿐 매우 흡사해 보였습니다.  그 뒤에 보지 못한 다양한 기술들이 있겠지만 ^^;

그외에 Binding 이라는 개념에 있어서는 Callback 함수와 유사한 느낌을 받았지만 JavaFX에서는 bind 라는 메커니즘을 사용한 것 같습니다.



PT자료 소스코드 발췌
// Code in the previous slide
// The bind keyword, placed just before the invocation of makePoint,
// binds the newly created Point object (pt) to the outcome of the
// makePoint function.
var myX = 3.0;
var myY = 3.0;
def pt = bind makePoint(myX, myY);
println(pt.x); // 3.0

myX = 10.0;
println(pt.x); // 10.0

scale = 2.0;
println(pt.x); // 20.0

특별히 어려운 점은 없어 보입니다.  매우 손쉽게 접근할 수 있지 않을까 생각이 듭니다.  그 뒤로 이어지는 구현 설명으로 NetBeans에서 실제 준비된 예제와 디버깅을 통해서 개발자들에게 매우 쉽게 설명해 주셨습니다.


마지막으로 가장 인상 깊었던 내용이였는데 JavaFX를 이용한 모션 트위닝(Motion Tweening)과 이펙트(Effect) 예시를 아주 세세히 모든 단계로 쪼개어서 보여주셨습니다.

예제 소스를 JCO에 올린다고 하셨던 것 같은데 잘 모르겠네요.  위에서 언급한 사이트에서도 보실 수 있다고 하니 예제는
 그곳을 통해서 받아서 보셔도 될 것 같네요.




PT자료 소스코드 발췌
import javafx.scene.paint.Color;
import javafx.scene.Scene;
import javafx.scene.shape.Circle;
import javafx.stage.Stage;

Stage {
   title: "My circle"
   width: 100
   height: 100
   scene: Scene {
     content: [
        Circle {
          centerX: 50,
          centerY: 50,
          radius: 40,
          fill: Color.RED
        }
     ]
   }
}


3번째 세션 : RIA Technology Introduction
좋은 내용의 발표 내용이 많았지만 발표장 인터넷 환경 때문인지 조금 어수선했음 발표자료가 올라오는 데로 좀더 요약해서 올릴 예정



마감하며….
일단 발표하신 모든 분들과 컨퍼런스를 준비하신 분들께 감사함을 전합니다.  이번 컨퍼런스를 통해서 RIA 플랫폼을 위한 Java의 변화와 기술에 대해 간략하게 알 수 있게 되었던 기회가 되었던 것 같습니다.  

아쉬운 점은 Java개발자들에게도 상당히 많은 웹 개발 이슈가 있을 텐데 Java의 RIA 관련 세션이 3개 밖에 되지 않았다는 것입니다.  아마 내년엔 Java와 RIA는 더욱 끈끈한 관계로 세션이 개설되리라 확신을 합니다.  
그리고 세션이 주제별로 분류되다 보니 둘 중에 하나는 포기해야 하는 문제도 생기더군요. 

내년 내 후년에는 좀더 발전된 모습으로 개발자들에게 좋은 내용으로 다시 볼 수 있으면 좋겠습니다.  경품은 좀더 많아지고 여성 개발자들도 더욱 많이 올 수 있는 이벤트도 좀 ^-^
웹 앱스콘에 비해 여성분들이 몹시 작음은 솔로 개발자들에게 JCO 컨퍼런스에 참가에 대한 동기 유발이 그만큼 작아진다는 것 -.-;

고무님 말씀 했던처럼 10년 후에는 가족들과 함께 모이려면 쏠로 탈출구가 되어야 되지 않을까요?  (잘못된 해석인지 알지만 ^-^;;)



신고
Posted by Rhio.kim


티스토리 툴바