gpffh1011

[자바 상식] J2EE, JDK, JRE, J2SE 차이 본문

자바/관련상식

[자바 상식] J2EE, JDK, JRE, J2SE 차이

gpffh1011 2020. 5. 14. 00:27

1. JRE : JVM이 실행될 수 있도록 도와주는 역할을 하는 파일로 주로 "사용자"가 사용한다.

            그리고 JDK와 별도로 설치가 가능하다.

 

2. JDK : "개발자"를 위한 파일로 자바 소스코드를 직접 입력할 수 있다.

           JDK를 설치하면 JRE와 JVM가 함께 설치되어 직접 입력한 자바 소스 코드를 실행시킬 수 있다.

 

3. J2SE(Java 2 Standard Edition)

 [ 기본적인 Java의 개발/실행 환경으로 Java언어를 이용하여 어플리케이션(Application), 애플릿(Applet) 그리고 컴포넌E트(Component) 등을 개발하고 실행할 수 있는 환경을 제공하는 플랫폼이다. ]

어떠한 Java프로그램을 개발하더라도 J2SE설치는 필수이며 SDK, RE, Plugin 기술등으로
구성된다.

- J2SE의 SDK는 기존의 JDK와 동일한 기술로서 Java프로그래밍의 개발환경이다.
  SDK에는 RE가 포함되어 있다.
- J2SE의 RE는 Java 프로그램의 수행환경이다.
- J2SE의 Plugin은 Web브라우저의 동적 모듈 프로그램으로서 Java Applet프로그램의
수행환경이다.

 

 

4. J2EE(Java 2 Enterprise Edition)

[ 전사적 차원(대규모의 동시 접속과 유지가 가능한 다양한 시스템의 연동 네트워크 기반 총칭)에서 필요로 하는 웹 어플리케이션 관련 기술 등으로 자바 개발을 할 수 있는 라이브러리들이 포함되어 있다. ] 즉, J2SE외에 추가적으로 필요로 하는 것들은 EJB, Servlet, JSP 같은 것들이다. 여기에는 자체적으로 EJB 컨테이너와 배포 Tool, RDBMS, Web 컨테이너등이 모두 준비되어 있다.

 

추가 설명)

J2EE는 자바 기술로 기업환경의 어플리케이션을 만드는데 필요한 스펙들을 모아둔 스펙 집합입니다.
J2EE를 만든 것은 Sun Microsystems이고 SUN에서 J2EE 스펙을 시범적으로 구현해두기는 하지만,
IBM, BEA, Oracle, HP, Iona등 여러 벤더들도 그 스펙을 구현할 수 있으며 J2EE 호환성을 검증하
는 기구의 검증을 통과하기만 하면 J2EE 호환 제품으로 시장에 출시할 수 있습니다.
그리고 이런 벤더들은 J2EE 스펙을 개선하는 과정에도 활발히 참여하기 때문에, J2EE는 사실상
SUN의 독점적인 기술이라기 보다는 Java진영으로 불리는 여러 Vendor들과 개발자들이 같이 만들어
가고 공유하는 기술로 보는 것이 더 정확할 것입니다.

■ 기본 특징
-->  언어는 Java, 플랫폼은 자유
J2EE의 가장 큰 특징이라면, Java로 구현된 기술이기 때문에 Java가 갖는 기본적인 특징인 "플
랫폼 독립"성을 갖추고 있다는 것입니다. Java언어는 JVM(Java Virtual Machine)이라는 가상 머
신을 통해 각 OS에 맞게 바이트 코드로 변환되어 실행되기 때문에 JVM이 탑재된 플랫폼이라면
어떤 플랫폼이라도 동일한 자바 소스 코드를 실행시킬 수 있습니다.


--> 구성 요소
J2EE는 매우 방대한 범위를 다루는 스펙 집합이므로 대표적인 것들을 간단히 소개하도록 하겠습니다.

 

Servlet : 클라이언트가 보내는 HTTP 요청을 처리하는 서버측 자바 프로그램이며, Servlet 엔진이 있어야 합니다.

JSP(Java Server Pages): HTML이나 Java 코드를 써서 사용자에게 정보를 보여 줍니다. JSP가 처음 실행될 때 Servlet 엔진이 이것을 Servlet 으로 컴파일시켜서 내부적으로는 Servlet으로 동작합니다.

EJB(Enterprise Java Beans) : Java에서 제공하는 분산 컴포넌트 기술로 비즈니스 로직이나 데이터, 메시지를 처리할 수 있습니다.

Remote Method Invocation(RMI): 프록시를 써서 원격에 있는 Java 객체의 메소드를 실행시키기 위한기술입니다.

Java Naming DirectoryInterface (JNDI): 자바 기술로 만들어진 객체에 이름을 붙여 찾을 수 있도록 단일한인터페이스를 제공합니다.

Java Database Connector(JDBC): 여러 종류의 데이터베이스 시스템에 접근하는 단일한 인터페이스를 제공합니다.

                                                           각각의 데이터베이스에 맞는 JDBC 드라이버가 있어야 합니다.

Java Connector Architecture(JCA): 이기종 플랫폼을 통합할 수 있도록 플랫폼 독립적인 인터페이스를 제공합니다.

Java Message Service (JMS): 여러 가지 메시징 시스템에 대한 플랫폼 독립적인 인터페이스를 제공합니다.

 




 

[ 상세 자료 ]

 

 

JRE(Java Runtime Enviroment) : 컴파일된 자바 프로그램을 실행시킬 수 있는 자바 환경

 

  • JRE는 JVM이 자바 프로그램을 동작시킬 때 필요한 *라이브러리 파일들과 *기타 파일들을 가지고 있어 
    컴파일된 자바 프로그램을 실행시킬 수 있다.

  • JRE는 JVM의 실행환경을 구현했다고 할 수 있다.( 런타임 환경을 제공하는 데 사용되며, 물리적으로 존재하는 JVM을 구현을 도와준다)

  • 자바 프로그램을 실행(JVM)시키기 위해선 JRE를 반드시 설치해야 한다.

* 기본적으로 자바 클래스 라이브러리(Java class libraries)와 자바 클래스 로더(Java class loader), 자바 가상 머신(Java Virtual Machine) 포함) 

 

 

 

JDK(Java Development kit) : 자바 프로그래밍 시 필요한 컴파일러 등 포함

  • Java로 된 언어를 컴파일하고 개발할 수 있도록 해주는 개발 환경의 세트를 의미함

  • 개발자를 위한 JAVA라고 할 수 있음
  • 개발자만을 위한 컴파일러, 디버깅툴 등을 제공
  • 개발자 및 사용자를 위한 JAVA인 JRE(+JVM)을 포함한 종합 툴 (JDK를 설치하면 JRE도 함께 설치된다)

JDK = JRE + @

JRE : 읽기 전용

JDK : 읽기 / 쓰기 전용