라이프로그


NetBean RCP와 Eclipse RCP를 주목하자! 개발자 나라 잡설

  • RCP의 중요성이 대두 되고 있습니다.
  • RCP를 주목해야 하는 이유에 대한 잡설 입니다.

    NetBean RCP와 Eclipse RCP란 무엇인가?
  • 자바라는 언어는 매우 특이한 형태로 발전하고 있습니다. JCP라는 이상한 커뮤니트를 만들어서 업계의 표준을 먼저 정하고, 각 벤더는 표준에 따라 자신의 솔루션을 개발합니다. 성능이나 안정성 보다는 호환성을 최우선으로 하는 언어입니다. 이런 특이한 업그레이드 사이클은 독립성이 강한 업개의 동의를 얻는 것이 매우 지루하고 비효율적인 과정이라는 선입관을 완전히 무시하는 결과를 보여주고 있습니다. 표준안을 만들기는 힘들지만, 일차적으로 표준안이 완성되면 그 후속 과정은 상상 초월, 상식 무시 입니다.
  • 또한가지 특이한 것은 오픈소스 커뮤니티의 존재입니다. IT 전반적인 개발 분야에서 오픈소스가 지속적으로 성장하고 있지만 자바의 호픈소스 만큼 무식한 놈들은 없는것 같습니다. 말이 오픈 소스일 따름이지 그 산출물은 각 분야의 최상위 제품을 뛰어넘는 것들이 즐비합니다.
  • 자바 개발툴 분야에서 주목할 오픈소스 프로젝트가 NetBean와 이클립스 입니다. 효율적인 자바 개발 툴을 제공한다는 취지로 진행되는 프로젝트지만 기반 조건으로 RCP를 제공합니다. RCP란 Rich Client Platform의 약자입니다. 으리으리 화려한 표준적인 GUI를 제공하고 있습니다.
  • Eclipse와 NetBeans는 정확히 말하면 동일한 성격의 프로젝트는 아닙니다. Eclipse는 자바기반 표준 어플리케이션 플랫폼을 만드는 것이 목적이고 IDE는 표준 어플리케이션 플랫폼을 이용한 중요한 하부 산출물 입니다. Eclipse는 자바를 통해서 OS의 독립성을 확보한 후 그 위에 Eclipse 플랫폼을 추가하여 어플리케이션의 표준성과 독립성을 확보하는 것을 목표로 하고 있습니다. 따라서 Eclipse의 RCP는 Eclipse 프로젝트의 Core는 RCP 즉 어플리케이션 플랫폼 입니다. 반면 NetBeans는 델파이 형태의 효율적인 자바 통합 개발툴을 지향합니다. 따라서 넷빈즈의 기반 산출물이 RCP입니다. 기반과 Core의 어감 차이가 바로 이클립스 RCP와 넷빈즈 RCP의 차이 입니다.
  • Eclipse는 표준 어플리케이션 플랫폼을 지원하기 위해서 Swing 기술을 변형한 SWT를 기본 GUI 기술로 활용합니다. SWT는 Standard Widget Toolkit의 약자로 기본 적인 컴포넌트는 OS를 사용하고 해당 OS에 자원이 없을 경우 자바의 자원을 사용합니다. 따라서 OS 별로 개별적인 배포판을 제공합니다. SWT는 자바의 OS 독립성을 포기하는 대신 GUI의 성능을 취하고 있습니다. OS의 독립성을 포기했다고는 하지만 Window, Linux, Max, Unix등 주요 OS를 지원하기 때문에 OS의 독립성을 지원하는 자바와 동일하고 OS 별로 소스 코드가 다른것이 아니라 단지 빌드한 결과물이 달라지는 것이기 때문에 기본적으로 자바의 OS 독립성은 준수한다고 볼 수 있습니다. 넷빈즈는 기본적인 GUI 기술로 순수 자바 기술인 Swing을 제공합니다. 자바가 느리다는 선입견이 있기는 하지만 PC 파워가 극대화 되어 있고 자바 스윙 기술이 진보하여 현재 Java Swing이 어느정도 경쟁력을 확보한 상태이기 대문에 성능 관점이 문제가 되지는 않습니다. 요약하면 두놈다 씀만 합니다. 아주아주....
    RCP의 중요성
  • 지금의 대세는 Web 입니다. 이미 Web의 절정기에 도달한 상태이고 웹 기반 어플리케이션을 계속 발전할 것입니다. 중요한 변화는 (Web==브라우져 기반 어플리케이션)이 이젠 충분 조건이 되어가고 있다는 것입니다. 클라이언트(고객)은 인터넷은 브라우져를 통해서 보는 것이라는 선입견을 갖고 있지만 점차 웹 어플리케이션이 브라우져로 부터 탈출하고 있습니다. 아마도 현재 x-internet이라는 비지니스가 브라이져 내부에서 Rich Client 기능을 최대한 올리는 방향으로 진화하고 결국에는 브라우져를 탈출하는 모습을 띠게 될것입니다. 웹 어플리케이션이 최대 장점은 배포에 있습니다. 이러한 장점을 계승하는 많은 기술들이 이미 안정화된 상태입니다. 단지 현재 여건상 활용도가 떨어질 따름입니다. 향후 MS의 차세대 OS("롱혼" 프로젝트)가 출시되면 탈 브라우져 현상은 더욱 가속화 될 것입니다. 이러한 상황에서 Rich Client 기술을 확보하는 것이 중요합니다. 자바 기반 어플케이션의 경우 이러한 대안으로 가장 발전한 기술 중에 하나이고 오픈소스로 배포된어 있는 것이 Eclipse RCP와 NetBeans RCP 입니다. Eclipse와 NetBeans RCP를 이용하여 개발의 효율성과 안정성을 확보할 수 있습니다.

  • netbeans RCP를 이용한 Tool (이미지 클릭: 풀사이즈 이미지)


  • netbeans RCP를 이용한 Tool (이미지 클릭: 풀사이즈 이미지)



    NetBean RCP와 Eclipse RCP 중 어떤 것이 좋아요?
  • 두 프로젝트는 성격과 목표가 다릅니다. 따라서 상황에 맞게 적절한 활용이 중요합니다. os에 독립적이고 이식성이 중요하다면 넷빈즈 RCP를 속도가 주요하거나 플러그인 성격이 강하다면 이클립스 RCP를 활용하는 것이 좋을것 같습니다.
  • 넷빈즈 RCP의 SWING이 기능이나 성능이 향상되었고, 현재 다른 GUI 기술과 비교하여 경쟁력이 있으며, 메이저 대부분의 플랫폼을 지원하는 이클립스 RCP가 더이상 플렛폼에 종속적이라고 할수 없는 상황입니다. 두 기술 모두 상호 경쟁력이 있는 기술이기 때문에 어떤것이 더 좋다고 할 수는 없는 것 같습니다.
  • 결국 선택은 고객에게 넘어갈 것이라고 생각합니다. 고객이 윈도우 계열을 좋아한다면 윈도우 폼즈를 활용해서 SWT 기반의 윈도우를 선호한다면 이클립스를 스윙의 파스텔 톤의 UI를 선호한다면 NETBEANS를 선택해야 할 것 같습니다. 중요한것은 "이들 기술력을 확보하고 있는가?" 이것이 중요 경쟁력의 차이입니다.

  • 덧글

    댓글 입력 영역


    fgrt

    rtt