사용자 삽입 이미지



The Past : 자바 프로젝트의 초창기
자바의 창시자인 제임스 고슬링은 1991년 썬의 한 랩실에서 Green이라 불리는 프로젝트를 시작하고 자바 언어의 원시격인 Oak 언어를 만들어냈다. 자바 기술은 공식적으로 1995년 5월에 발표되었다. 자바 기술의 과거를 이야기해주는 이 섹션에서 우리는 자바 기술의 초창기, 그것의 동기 부여, 인기, 커뮤니티의 노력들과 몇 가지 중대 사건들을 살펴보게 될 것이다.

The Present : 자바 기술은 어디에서나..
오늘날 전세계적으로 약 200만이 되는 자바 개발자들이 활동하고 있고 그 수는 점점 늘어나는 추세이다. 자바는 작은 자바 카드 어플리케이션뿐만 아니라 미션 크리티컬한 서버 중심의 어플리케이션을 실행시키며, 소규모 J2ME 장치에서부터 데스크탑, 대규모 데이터 센터를 막론하고 어디에서나 작동한다. 웹 서비스를 위한 J2EE플랫폼, 모바일 장치를 위한 J2ME, J2SE 1.5, 개발의 용이성을 보장하는 자바 플랫폼은 새롭게 강화된 자바 언어의 기능, 라이브러리 그리고 API를 제공한다.

The Future : 모든 이들을 위한 자바...
개발자들과 엔드 유저를 위해 개발의 용이성을 보장하는 자바 플랫폼, 새로운 IDE 툴, J2EE 1.5, J2SE의 다음 버전, 이머징 쿨 자바 기술 그리고 그 이상의 자바 기술들을 소개한다.


 
 

Future of Java: Power and Simplicity!

“개발용이성(Ease of Development)” 테마는 Tiger 이후에도 계속된다. Java 언어는 강력함과 단순성을 위해 계속 변화하고 있다.

Tiger라는 이름의 Java 최신 버전인 J2SE 5 는 "개발 용이성"이라는 테마로 다양한 기능들을 갖추고있다. Tiger는 2004년 10월 출시 예정이며, Mustang과 Dolphin이라고 불리는 Tiger 이후의 두가지 버전이 18개월 후 출시를 위해 이미 준비 중에 있다. 우리는 Java 고객, 파트너사들과 함께 필요와 요구사항에 대해 토론하고, JCP를 통한 JSR을 준비하고 있다. 개발자들은 온라인 투표에 참가하여 차기 Java 계획에 기여하기 바란다.(http://java.sun.com/j2se/survey/index.jsp)

Tiger버전부터는 "개발용이성"이 메인 테마를 이루고 있다. 이 "개발용이성"은 일반 태스크들을 구현하기 쉽게 만들어준다. generics, enums, for loop, varargs, annotations, autoboxing, static import 등 J2SE5에 새로 추가된 Java 언어들을 통해 Java 코드를 안정적이고 쉽게 작성할 수 있으며 간단하게 Java 소스 코드를 유지할 수 있다.

기존에는 x.doThis(), y.doThat()등의 명령형 표현형식을 사용하던 반면에 J2SE 5에서는 JSR-175 Metadata 를 통해 선언형 표현형식을 구사한다. JSR-175 Metadata에서 '@' 표시는 annotation을 의미한다. 예를 들어 @Persistent int x; annotation 선언문은 일반적인 @interface Persistent {} 정의로 교체된다. annotation은 데코레이션, 클래스, 인터페이스, 필드에 적용되어 툴과 라이브러리를 활용할 수 있게함으로써, 코드에 명시적 프로그래밍을 줄이고 좀 더 많은 선언문을 제공한다. Annotation Processing 툴은 Java Source 파일에서 동작하여, annotation이 발견되면 써드 파티 회사가 쉽게 제작하여 교체할 수 있는 간단한 서비스 프로바이더 API로 작성된 적절한 annotation 프로세서를 찾아 실행시켜, 소스, 바이너리, XML를 생성한다. 그리하여 Java 소스는 이와같은 결과물을 모두 함께 컴파일하여 Java 바이트 코드를 생성한다.

Java 언어는 거대한 소스 코드를 개발하고 유지하는 멀티 라인 애플리케이션을 지원할 수 있도록 단순성(simplicity)과 강력함(power)사이의 균형을 맞추기 위해 계속해서 변화할 것이다. 유지보수성(manageability)은 코딩용이성(writability)과 함께 새로운 Java 언어의 중요한 면이다. Java 언어의 새로운 속성은 Java 전문가 그룹과 Java 커뮤니티의 도움으로 많은 고려 끝에 선택될 것이다.

하지만 Java 언어가 모든 요구사항을 충족시킬 수 있는 것은 아니다. 따라서 Java 플랫폼에 다른 언어를 활용할 수 있도록 하려고 한다. “Groovy” 언어(JSR 241)는 좀더 동적이며 좀더 언어와 같은 스크팁트이기에 매우 훌륭하다. 또한 작은 애플리케이션에 이용하기도 좋은 것으로 보인다. 특히 PHP와 같은 스크립팅을 지원하는 JSR 223 과 같은 스크립트 언어들이 많다.


웹서비스와 XML의 Core J2SE 플랫폼 지원

현재의 Java는 stateless session EJB나 JSP 컴포넌트에 의한 J2EE 플랫폼을 매개로 JAX-RPC 기반 웹서비스를 지원하고 있다. 현재 J2EE 1.4 platform이나 Java Web Service Developer Pack 로 Java 웹 서비스를 개발할 수 있다. J2SE 플랫폼을 지원하는 core Java Web service와 JAX-RPC 2.0 클라이언트, JAXB 2.0 데이타 바인딩, 가벼운 JAX-RPC 서버를 추가할 계획이다. 또한 XML 암호와 XML 디지탈 서명, JAXP.next를 추가할 것이다.


미래 J2EE 플랫폼은 단순성에 주력한다.

J2EE는 안정된 기업 애플리케이션을 위한 산업 표준이며, 강력한 기능을 자랑한다. 그러나, 이 강력한 기능을 배우기 어렵고, 심지어는 간단한 애플리케이션에서도 필요없이 반복되는 코드가 많다는 단점이 있다. 미래의 J2EE는 강력한 기능을 유지하면서도 일반적 개발 태스크를 간단하게 만드는 것이 관건이라고 하겠다.

"개발용이성" 에 대한 노력은 J2EE5 이후 출시에서도 계속될 것이며, 필요없이 반복되는 코드 제거, 가능gk면 디폴트값 이용, 디플로이먼트 디스크립터의 과감한 제거 등을 통해 다음 예제와 같은 일반적인 시나리오를 간단하게 만드려고 한다. 또한 좀 더 많은 유틸리티 클래스와 헬퍼 클래스를 추가하고 JSR 175 Metadata등의 새로운 J2SE 5 Tiger 기능을 개발할 것이다.

예제 Code 1: EJB 변경 전

public class AreaCalculatorBean implements SessionBean {

private SessionContext ctx;

public void setSessionContext(SessionContext s) {

ctx = s;

}

public void ejbCreate() {}

public void ejbActivate() {}

public void ejbPassivate() {}

public void ejbRemove() {}

 

public double ellipse(double a, double b)

throws RemoteException {

return Math.PI * a * b;

}

}

public interface AreaCalculator extends EJBObject {

public double ellipse(double a, double b)

throws RemoteException;

}

public interface AreaCalculatorHome

extends EJBHome {

public AreaCalculator create()

throws CreateException, RemoteException;

}

}


예제 Code 2: EJB 변경 후

@Session public class AreaCalculatorBean {

public double ellipse(double a, double b) {

return Math.PI * a * b;

}

}

Code 2 예제를 보면, 인터페이스를 확장할 필요가 없으며, 비어있는 라이프싸이클 메서드들을 구현할 필요도 없다. 또한 원격 메서드에서 Remote Exception을 발생시킬 필요가 없다. 디플로이먼트 디스크립터도 필요 없어졌는데, 디플로이먼트 디스크립터를 이용해서 디플로이어들이 컴포넌트를 제어하기 위해서는 유용하지만 이 디플로이어들은 대량으로 사용하기에는 불편하다는 단점이 있었다. 또한 디플로이먼트 디스크립터는 소스코드에서 분리되어 있으며 모호한 XML 디플로이먼트 디스크립터는 유지하기 힘들었다. 앞으로는 필요하다면 인터페이스와 디플로이먼트 디스크립터를 자동으로 생성하는 툴이 제작될 것이고 이번 예제에서와 같이 일반적 케이스에 디폴트를 사용하는 annotation이 필요하다. 이를 통해 작성하고 디버깅 해야하는 코드 라인이 줄어들 것이며, 유지해야하는 클래스들도 거의 없어진다는 이점이 생길 것이다. J2EE 코드들을 기존 Java 오브젝트와 같이 간단하게 만듦으로써 J2EE 개발이 훨씬 더 쉬워질 것이다.

이 외에도 단순성을 위한 J2EE 기능들이 훨씬 더 많이 있다. 몇 가지만 언급하자면, 1. Universal context :모든 컨테이너에서 같은 방식으로 타입별, 이름별, 작업별 리소스 검색 가능 2. 인젝션 기반 필드 : 필드에 리소스들을 축적하고 리소스들을 저장한 필드를 표시 3. 세터(setter) 기반 인젝션: 메서스 이름, 타입 식별 리소스 등과 같은 리소스 초기화 메서드를 호출하고 메서드들을 표시하는 annotation을 이용하는 컨테이너

차세대 버전인 J2EE5는 2005년 후반기에 출시 예정이며, 향상된 지속성, 간편성을 갖춘 EJB 3.0과 새로운 J2EE 개발자들을 끌어들이기에 충분한 단순하면서도 향상된 많은 개선점들을 포함하고 있다.


Java in Emerging Technology: RFID

Java의 앞으로의 성장은 RFID 같은 최근 급속도로 성장하는 테크놀로지들에서 이뤄질 것이다. RFID와 EPC(Electronic Product Codes)의 연동을 통해 컴퓨터들이 일상적 오브젝트들을 자동적으로 또 독자적으로 식별하게 할 것이다. 컴퓨터가 일상적 오브젝트들을 자동식별하게 되면 순서대로 오브젝트들을 감지, 추적하고 이벤트를 발생시키며, 오브젝트 자체에서 특정 작업을 수행할 수 있다는 것을 의미한다. 사업적으로는 작업 효율성 증가, 서플라이 체인을 통한 목록 관리 향상, 생산물 결점 감소 등의 수많은 이익이 있다.

Java가 RFID와 같은 고속 정장 테크놀로지를 구현하는 데 유용할 것이라는 예가 여기 있다. 독자적인 RFID 미들웨어 플랫폼을 위한 썬사의 Java Syetem RFID 소프트웨어가 바로 그것이다. 이 소프트웨어는 컴퓨터의 EPC (Electronic Product Code) 네트워크를 설치하기위한 기반을 제공하여 서플라이 체인을 통해 자산의 추적, 안전, 통합성을 향상시킨다. Java System RFID 소프트웨어는 Java System RFID Event Manager 와 Java System RFID Information Server 두가지 소프트웨어 컴포넌트를 포함하며 이들은 모두 다운로드가 가능하다.>>다운로드 받기


조인영님의 'The Past, Present and Future of Java'는 이번 달을 마지막으로 연재가 종료됩니다.
기고해주신 조인영님께 감사의 말씀을 드리며 다음달에는 새로운 자바 에반젤리스트의 이야기가 게재됩니다.
앞으로도 꾸준히 자바 에반젤리스트들의 주옥같은 이야기를 기대해주시기바랍니다.

"에반젤리스트로부터" 카테고리의 다른 글

2006/01/01 20:26 2006/01/01 20:26

TRACKBACK :: http://blog.sdnkorea.com/blog/trackback/20

  1. 자바의 과거,현재 미래 - Part 1. 미래

    Tracked from 나를 위해.. 그리고..  삭제

    자바에 대해서는 아직 잘 모르겠지만.... 읽어보면 도움이 될 듯하다. 자바의 과거,현재 미래 - Part 1. 미래 조인영님의 'The Past, Present and Future of Java' 연재 http://www.sdnkorea.com/blog/20

    2007/09/14 11:14
  2. 자바의 과거,현재 미래 - Part 1. 미래

    Tracked from deuk79님의 블로그  삭제

    자바의 과거,현재 미래 - Part 1. 미래 The Future : 모든 이들을 위한 자바...개발자들과 엔드 유저를 위해 개발의 용이성을 보장하는 자바 플랫폼, 새로운 IDE 툴, J2EE 1.5, J2SE의 다음 버전, 이머징 쿨 자바 기술 그리고 그 이상의 자바 기술들을 소개한다.

    2007/09/19 14:32

댓글을 달아 주세요

  1. 손영진  수정/삭제  댓글쓰기

    현재 자바스크립트 구현의 중요성을 많이 느끼는 유저입니다.
    웹구현을 원활하게 하기 위해 자바스크립트는 필수죠? ㅜㅜ너무어려워요..ㅋ

    2007/09/06 10:44
  2. 이우철  수정/삭제  댓글쓰기

    JAVA는 이미 우리 생활에 뗄레야 뗄 수 없죠..
    전 ACTIVE-X없인 살아도 JAVA없인 못살아요
    JAVA가 최고입니다.. 좋은 글 감사합니다

    2007/09/07 20:14
  3. 윤태호  수정/삭제  댓글쓰기

    Future of Java: Power and Simplicity!
    정말 생각만해도 좋을 것 같습니다. 구현될 날이 곧 오겠죠.

    2007/09/08 15:43
  4. 김문경  수정/삭제  댓글쓰기

    좋은 글 감사합니다^^

    2007/09/17 21:55
  5. 박정숙  수정/삭제  댓글쓰기

    좋은 정보 감사해요~

    2007/09/19 04:52
  6. 황종생  수정/삭제  댓글쓰기

    자바 없이는 불편함이 말도 못할것 같은 세상이죠. 자바에대해 여러모로 배울수 있어서 좋았습니다. 조금 날짜가 지난 글이지만 제겐 좋을 글, 정보였습니다.
    감사드립니다.^^

    2007/09/19 14:28
[로그인][오픈아이디란?]

◀ Prev 1  ... 450 451 452 453 454 455 456 457 458  ... 626  Next ▶