메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

한빛랩스 - 지식에 가능성을 머지하다 / 강의 콘텐츠 무료로 수강하시고 피드백을 남겨주세요. ▶︎

IT/모바일

JDK1.4! 무엇이 달라졌나?

한빛미디어

|

2001-06-21

|

by HANBIT

8,976

by 최범균 최근 자바2 SDK 1.4 베타 버전이 발표되었다. 이것은 올해 안에 자바 2 SDK 1.4 정식 버전의 발표를 알리는 신호탄이다. JDK 1.4는 기존의 자바2 버전인 1.2와 1.3 버전보다 더욱 풍부해진 API로 무장하고 있다. 물론, 대부분의 API가 예전부터 존재해 왔던 것을 자바 코어에 포함시킨 것이지만, 로깅 API나 Preference API처럼 완전히 새로운 API도 포함되었다. 이 글에서는 JDK 1.4에 새롭게 추가된 API 중 필자 나름대로 중요하다고 생각되는 것들에 대해 정리한다. 참고로 필자는 자바2 SDK 1.4 Documentation에 포함되어 있는 "Summary of New Features"에 기반하여 이 글을 작성했다. 자바2 SDK 1.4 버전은 서버사이드를 제외한 클라이언트에서 필요로 하는 대부분의 API가 포함되어 있다고 해도 무리가 없을 정도로 그 크기가 방대해졌다. 또한, 서버사이드에서 기본적으로 필요한 기능 역시 추가되었다. 자바2 SDK 1.4 버전은 그야말로 완벽한 개발도구를 지향하고 있다고 할 수 있다. 이 글에서는 모든 새로 추가된 특징이나 향상된 점에 대해서는 다루기 힘들기 때문에 필자 나름대로 중요하다고 생각되는 것을 중점적으로 살펴보도록 하겠다. JAXP API 포함 가장 먼저 살펴볼 내용은 자바에서 XML 처리할 수 있도록 해 주는 API인 JAXP(Java API for XML Processing) API가 포함되었다는 점이다. 아직까지 XML을 응용한 제품이 극소수이긴 하지만, 이미 XML은 IT 업계의 중심에 자리잡을 기술로 인식되고 있다. 특히 대부분의 B2B 업체는 XML을 자신의 영역에 도입하기 위해 부단한 노력을 기울이고 있으며, 정부 차원에서 진행되는 프로젝트 역시 차기 프로젝트의 주요 모델로 XML을 선택하고 있다. 이러한 시점에서 발표되는 자바2 SDK 1.4에 XML을 처리할 수 있는 API인 JAXP가 추가된 것은 선택이 아닌 필수라고 볼 수 있다. 특히 JAXP API는 JAXP API 하부에 존재하는 DOM 파서나 SAX 파서를 교체할 수 있는 구조를 갖고 있어서 언제든지 원하는 파서를 사용할 수 있도록 하고 있다. 보안 관련 확장 API 추가 자바2 SDK 1.3 버전까지 J2SE(Java 2 Standard Edition)가 제공하는 보안 기능은 매우 빈약했다. 물론 간단한 암호화 정도는 프로그램할 수 있었으나 대규모 프로젝트에서 사용하기에는 부족했던 것이 사실이었다. 자바2 SDK 1.4는 이처럼 취약한 자바2의 보안 기능을 대폭 강화하기 위해 기존에 존재하던 확장 API인 JCE(Java Cryptography Extension), JSSE(Java Secure Socket Extension) 그리고 JAAS(JavaTM Authentication and Authorization Service) API를 J2SE에 포함시켰다. 이 API를 통해서 개발자들은 클라이언트 사이드에서도 강력한 보안 기능을 손쉽게 제공할 수 있게 되었으며 서버 사이드 역시 별다른 확장 없이 강력한 보안 기능을 구현할 수 있게 되었다. 이와 더불어 새로운 시큐리티 API인 Java GSS API와 Java Certification Path API를 제공하고 있다. 로깅API JDK 1.4 이전까지 JDK는 로깅과 관련된 어떤 기능도 제공하지 않았다. 이로 인해 개발자들은 늘 로깅 API를 직접 구현하거나 log4j와 같은 로깅 API를 사용해야만했었다. 1.4 버전은 새롭게 로깅 API를 추가하였으며, 따라서 개발자들은 이제 로깅과 관련된 부분을 걱정할 필요가 없게 되었다. 참고로, 1.4 버전에서 제공하는 로깅 API는 로깅 기능이 필요로 하는 대부분의 기능을 제공하고 있다. 네트워크 기능 강화 네트워크와 관련해서 가능 큰 변화는 역시 IPv6를 지원한다는 점이다. IPv6의 지원뿐만 아니라 Unconnected/Unbound 소켓 지원, 연결된 UDP 소켓 지원, java.net.URI 클래스를 통한 URI(Uniform Resource Indentifier) 지원을 비롯한 실제 네트워크 프로그래밍에서 필요한 다양한 기능이 추가되었다. 자바 웹 스타트 제품(Java Web Start Product) 자바가 클라이언트 영역에서 힘을 못내고 있는 주요 이유 중 하나는 클라이언트 프로그램을 배포하는 것이 불편하다는 점이었다. 자바 웹 스타트는 자바 애플리케이션을 간단하게 배치할 수 있도록 해 줌으로써, 클라이언트 영역에서 자바의 쓰임새가 증가할 수 있는 기반을 만들어주고 있다. 자바 웹 스타트를 이용하면, 간단히 웹 페이지에 있는 링크를 클릭함으로써 애플리케이션을 실행시킬 수 있다. 이 때, 클라이언트 머신에 애플리케이션이 설치되어 있지 않을 경우 자바 웹 스타트는 자동적으로 필요한 파일을 다운로드 받으며, 알맞게 파일들을 캐싱한다. 또한, 언제라도 애플리케이션을 다시 다운로드 받을 수 있도록 하고 있다. 즉, 실행시에 애플리케이션을 손쉽게 교체할 수 있는 기능을 제공하고 있는 것이다. 아직 자바 웹 스타트가 클라이언트 분야에서 맥을 못추고 있는 자바에 힘을 줄지는 모르지만, 자바 애플리케이션을 손쉽게 배포할 수 있는 방법이라는 것만은 확실하다. 새로운 I/O API NIO(New I/O) API는 기존의 I/O API에 비해 다음과 같은 특징을 제공하고 있다.
  • 기본 데이터 타입을 위한 버퍼
  • 캐릭터 셋 인코더와 디코더
  • 정규 표현식에 기반한 패턴 매칭 기능
  • 새로운 I/O 개념인 채널
  • 락(lock)과 메모리 매핑을 지원하는 파일 인터페이스
  • JDBC 3.0 API
JDBC 3.0 API가 추가되었다. 이제 개발자들은 JDBC 3.0 API를 사용하여 관계형 데이터베이스에서부터 스프레드시트 파일에 이르기까지 가상의 어떠한 데이터 자원에도 접근할 수 있게 되었다. Preferences API 자바를 사용하여 설정 API를 작성해본 사람이라면 java.util.Properties 클래스를 유용하게 사용했던 기억이 날 것이다. 1.4 버전에서는 Properties 클래스보다 한층 강화된 Preferences API를 제공하고 있다. Preferences API는 애플리케이션이 사용자별로 설정 정보를 관리할 수 있도록 해 주고 있다. 실제로 Preferences API는 java.util.Properties 클래스를 대체할 것으로 목적으로 하고 있으며, java.util.Properties 클래스의 단점은 개정하고 장점은 그대로 유지하고 있다. 정규 표현식(Regular Expressions) JDK1.4 버전에 새롭게 추가된 것 중에 흥미로운 것 중의 하나가 바로 정규 표현식을 처리할 수 있는 API가 추가되었다는 점이다. 정규 표현식을 사용할 경우 사용자가 입력한 값이 올바른지의 여부를 매우 간단하게 처리할 수 있게 된다. 예를 들어, 전화번호와 같이 그 값이 일정한 구조를 가져야 하는 값들을 검사할 때 기존에는 개발자가 일일이 검사해주어야 했지만, JDK1.4 부터는 java.util.regex 패키지에 제공되는 Pattern 클래스와 Matcher 클래스를 사용하여 매우 간단하게 검사할 수 있다. 엔터프라이즈 기능의 강화 앞에서 살펴본 JDBC 3.0의 지원을 비롯한 인터넷 DNS(Domain Naming System) 서비스 프로바이더가 1.4에 포함되었으며, LDAP(Lightweight Directory Access Protocol)의 보안 기능이 강화되었다. GUI 기능 강화 기존의 AWT와 Swing 사이에서 호환되지 못하던 부분을 포커스 관리와 같은 일부 기능을 개선했으며 새로운 API인 Full-Screen Exclusive Mode API를 지원하고 있다. Full-Screen Exclusive Mode API는 스크린에 직접 그릴 수 있는 기능을 제공함으로써 고성능의 그래픽 기능을 제공하고 있다. 또한 휠 마우스 역시 지원하고 있다. Swing 역시 형식에 맞춰 텍스트를 입력받을 수 있도록 하는 JFormattedTextField 컴포넌트를 비롯해 다양한 컴포넌트와 다양한 특징이 새로 추가되었다. 또한 두 애플리케이션 사이에서 데이터를 드래그 앤 드롭(drag and drop) 할 수 있는 기능이 추가되었다. 성능 향상 전체적으로 성능이 향상되었다. 자바 가상 머신, 입출력 스트림, 네트워크, 자바 2D를 비롯한 많은 부분에서 성능 향상이 이루어졌다. 결론 JDK 1.4는 많은 기업들이 공동으로 참여하여 완성된 것이다. 이는 다양한 기업들이 공동으로 필요로 하는 기능이 JDK 1.4에 포함되었다는 것을 의미하기도 한다. 아직 JDK 1.4가 베타 버전이고 또한 지금 상업용 제품에서 지원하고 있는 JDK 버전이 1.2.x이긴 하지만, 앞으로 JDK 1.4가 정식으로 출시되면 많은 기업들이 JDK 1.4를 지원하는 제품을 내 놓을 것이다.
TAG :
댓글 입력
자료실

최근 본 상품0