• J2SE ( Standard Edition )
    일반 자바 프로그램 개발을 위한 용도로 이용되는 개발도구이며 각종 자료구조, 기본 유틸리티, 스윙이나 AWT와 같은 GUI도구등의 기본기능을 포함하고 있다.

 

  • J2EE ( Enterprise Edition)  -
    엔터프라이즈 환경을 위한 도구로 EJB, JSP, Servlet, JNDI같은 기능을 지원하며 웹 애플리케이션 서버를 이용하는 프로그램 개발시 많이 사용한다.
    J2EE는 웹기반의 엔터프라이즈 애플리케이션을 구축하기 위한 썬의 플랫폼이다. J2EE 서비스는 사용자의 브라우저와, 엔터프라이즈 데이터베이스 및 레거시 정보시스템 사이의 중간계층에서 수행된다. J2EE의 핵심요소는, JSP와 자바 서블릿, 그리고 기업내의 정보자원을 하나로 묶기 위한 다양한 인터페이스들의 뒤를 이은 EJB이다. J2EE 인터페이스는 데이터베이스를 위해 JDBC를, 디렉토리를 위해서는 JNDI를, 트랜잭션을 위해서는 JTA를, 메시징을 위해서는 JMS를, 전자우편시스템을 위해서는 JavaMail을, 그리고 CORBA와의 접속을 위해서는 JavaIDL을 각각 포함한다. 1999년 12월에, 최초의 공식적인 버전으로는 최초로 J2EE 버전 1.2가 발표되었으며, 다양한 레거시 애플리케이션과의 인터페이스를 위한 자바커넥터는 2000년 중에 발표될 것으로 예상된다.

출처 : http://www.ibm.com/developerworks/kr/library/os-ag-simple1/index.html

J2EE는 엔터프라이용 웹 기반 애플리케이션을 개발 및 전개할 수 있는 플랫폼 독립의 환경이다. 이 플랫폼은 메타 언어나 언어 상위 세트로 연결되었다. 하지만, J2EE는 근본적으로 자바 프로그래밍 언어이고, 특정한 자바 클래스의 최소 세트이다. (참고자료)

J2EE 는 멀티 티어, 웹 기반 애플리케이션들을 개발하는 애플리케이션 프로그램 인터페이스(API), 서비스, 프로토콜들로 구성된다. 이것은 복잡한 표준이고, 이를 단순화하는 것과 관련된 글을 쓴다는 것은 마치 미국 세법을 단순화 하는 것과 관련된 글을 쓰는 것과 같다. 쉬운 작업이 아니라는 뜻이다. 하지만, 제 1의 원리부터, 많은 구현 상세들까지 다루다 보면, 깨달음이 올 것이다. 이제 안전 벨트를 단단히 매고 출발해보자.

제 1의 원리

J2EE멀티-티어 디자인의 클라이언트 레이어는 순수 HTML 프로토콜(JavaServer Pages (JSP)와 Java 서블릿으로 생성됨)로 표현되고, TCP/IP 전송 프로토콜로 자바 애플릿을 전개한다. 모든 표준 순응 웹 브라우저는 J2EE 시스템의 클라이언트처럼 잘 작동되어야 한다.

서버 레이어에는 엔터프라이즈 애플리케이션의 플랫폼 로직이 정의되는 Enterprise JavaBeans (EJB) 기술이 포함되어 있다. EJB 서버는 쓰레딩, 동시성, 메모리 관리, 보안 기능을 제공하고, 이러한 일들을 자동으로 수행하여 애플리케이션 프로그래머의 짐을 덜어준다. 바로 이것이 J2EE의 힘이다.

엔 터프라이즈의 가장 귀중한 데이터들은 가장 낮은 레이어에 있는데, 여기에서 IBM® DB2®, Oracle, MySQL 같은 표준 데이터베이스 툴이나 Structured Query Language (SQL) 기반 데이터베이스 엔진이 Java Database Connectivity (JDBC) 인터페이스를 통해 액세스 된다.

J2EE는 웹 서비스에 상당히 집중하고 있다. 웹 서비스야 말로 두 개 이상의 애플리케이션들이 표준 기반 방식으로 서로 데이터를 통합 및 교환할 수 있는 놀라운 방식이다. J2EE는 값진 기술들의 집합소라 할 수 있다. J2EE 환경에서 커리어를 쌓기 위해 이 모든 기술들을 마스터 할 필요는 없지만, 이것을 배워두면 프로그래머들은 커리어를 높일 수 있다.

* J2EE 기술

다음은 많은 J2EE 기술들의 일부이다. 이 모든 기술들을 마스터 한 프로그래머들은 오늘날 직업 시장에서 상당히 수요가 높다. 내가 중요하다고 생각하는 순서대로 나열했으며, 어디까지나 내 주관적인 생각이다.

내가 이 리스트를 공개하는 이유는 J2EE의 복잡성도 설명하고, 이러한 기술들을 배울 때 어떤 순서로 배워야 할 지에 대해서 대강의 개요를 제공하기 위해서이다. 중요한 기술들은 다음과 같다:

  • JSP: 실행 전에 서블릿으로 컴파일 된 인라인 자바 코드를 가진 HTML 템플릿으로 된 파일.
  • EJB: 엔터프라이즈 웹 애플리케이션의 플랫폼 로직을 나타낸다. 두 가지 유형의 EJB 기술로는 엔터티 빈(entity beans)세션 빈(session beans)이 있다.
  • JDBC: 자바 환경에서 데이터베이스로 연결하는 API. Open Database Connectivity (ODBC) 대신 자바 프로그래머가 대안으로 사용할 수 있다.
  • Java API for XML Processing (JAXP): XML 문서를 파싱 및 변형할 때 애플리케이션을 보조함.
  • Java Naming and Directory Interface (JNDI): 애트리뷰트를 사용하는 객체를 검색하고, 애트리뷰트를 객체들과 제휴시키는 등의 디렉토리 연산을 수행하는 메소드를 정의함.
  • Java API for XML-based Remote Procedure Call (JAX-RPC): 개발자가 Web Service Description Language (WSDL)에서 나타낸 클라이언트와 서비스를 만들 수 있도록 함. WSDL은 서비스를 메시지에 대해 연산을 수행하는 엔드포인트로서 기술하고, XML로 정의된다.
  • Java API for XML-based Web Services (JAX-WS): 개발자들이 WSDL에 의해 기술되는 클라이언트와 서비스를 구현할 수 있다는 점에서 JAX-RPC와 비슷하다. 하지만, JAX-WS는 웹 서비스 엔드포인트를 선언할 때 @WebService 같은 주석을 사용하기 때문에 전개 디스크립터가 필요 없다. JAX-WS를 사용하면, 전개 디스크립터를 사용하지 않고 웹 서비스를 전개할 수 있다.
  • Java Architecture for XML Binding (JAXB): 바인딩 컴파일러와 런타임 프레임웍을 제공하여 자바 객체들을 XML 문서로 매핑한다. 시스템이 유효한 메시지들만 수락하여 처리하는지를 확인하는 것이 가능하다. 컴파일러는 World Wide Web Consortium (W3C) XML 스키마를 자바 클래스로 자동 변형하기 때문에, 여러분이 복잡한 파싱 코드를 작성할 필요가 없다.
  • Java API for XML Messaging (JAXM): 애플리케이션들이 인터넷을 통해 XML 비즈니스 문서를 교환할 수 있다. 재고 리스트, 송장, 기타 수많은 비즈니스 문서 등이 예이다.
  • Java API for XML Registries (JAXR): 웹 서비스를 구현, 전개, 발견하는데 유용한 다양한 종류의 XML 레지스터에 액세스하는 표준 API를 제공한다.
  • Java Message Service (JMS): 많은 메시징 시스템 제품들의 일반 기능들에 액세스 하는 일관된 API로 메시지 기반 애플리케이션을 작성할 수 있도록 해준다.
  • Java Management Extensions (JMX): J2EE 애플리케이션 서비스를 모니터링 및 관리하기 위해 만들어진 자바 표준.

J2EE의 장점

J2EE 는 엔터프라이즈 레벨 애플리케이션을 위해 만들어졌기 때문에 서버 인프라스트럭처는 많은 태스크들을 자동으로 핸들한다. 태스크 중에는 컨테이너-관리(Container-managed) 트랜잭션, 확장, 패일오버 관리, 보안 컨트롤 등이 있다.

컨테이너 관리 관계는 엔터티 빈들 사이에 일대일 및 일대다 관계를 지원한다. (엔터티 빈은 영속 저장 메커니즘에 비즈니스 객체들을 나타내는 자바 클래스이다. 예를 들어, 하나의 데이터베이스에 특정 행(row)) 일대다 관계의 경우, 엔터티 빈은 자바 컬렉션을 사용하여 다(many) 측면을 나타낸다. 이 같은 관계를 관리하는 기능은 관계형 데이터베이스 기술에서 관계 모델링의 개념과 비슷하다.

EJB 컨테이너는 모든 엔터티 빈 관계들의 참조 무결성을 관리하는데 있어 중요하다. 일대일 관계에서, 관계의 한 측을 변경하면 컨테이너는 자동으로 오래된 관계를 대체한다.

컨테이너 관리 트랜잭션의 중요성은 아무리 강조해도 지나치지 않는다. Apache Geronimo는 J2EE 표준에 순응하는데, J2EE 표준이 지정하는 컨테이너 클래스를 관리하는 커널을 제공한다.

 

  • J2ME - 소형 전자기기들을 위해 개발된 도구로 핸드폰이나 기타 임베디드 시스템에서 자바로 프로그램을 개발할때 이용하는 도구이다.

 

 

 

이 글은 스프링노트에서 작성되었습니다.


+ Recent posts