사실 별것도 아니지만 자바 개발을 위한 첫 단계로써 알아두어야 할 사항중에 하나가
JDK 와 JRE 의 차이점, 그리고 JVM 이란 무엇인지를 알아야 할 듯 해서 간단하게 용어를
정리해보려고 합니다.
JDK ( Java Development Kit )
Java 용 SDK ( Software Development Kit ) 라고 생각하면 쉽겠다.
-> 실제로 두가지 용어를 혼용해서 쓰므로 헷깔리기 쉽지만 다 같은 의미정도로 생각하자.
Java 개발자가 Java 기반 프로그램을 개발할 수 있도록 컴파일러, 툴 등을 제공한다.
개발자 용이기 때문에 사용자는 굳이 설치할 필요가 없다.
-> 다만 자바로 개발된 Application을 사용하기 위한 실행 환경은 있어야 한다. 그 역할을 JRE 가 한다.
JDK 는 다시 J2EE ( Enterprise Edition ) , J2SE ( Standard Edition ) , J2ME ( Micro Edition ) 등으로 분류한다.
-> EE는 기업용 대규모 개발 환경에서 적합한 버전이고
-> SE는 일반적인 개발 환경
-> ME는 PDA나 Embeded 환경에서의 개발환경을 제공합니다.
JRE ( Java Runtime Environment )
Java 프로그램을 실행시키기 위한 환경을 제공한다.
즉, Java 언어로 만들어져서 컴파일된 프로그램을 실행하려면 JRE 는 설치되어 있어야 한다.
JVM ( Java Virtual Machine )
Java 소스 코드로부터 만들어지는 Java byte code(자바파일이 컴파일된 코드) 를 실행할 수 있다.
"write once, run anywhere" 라는 Java 의 trade mark ( '슬로건' 이라는 단어정도로 해석하시면 쉬울듯)
는 JVM 이 많은 SW/HW 플랫폼에서 동작 할 수 있기때문에 가능한 이야기 이다.
-> 개발을 했으면, 어디서든 사용이 가능해야지 !! 라는 슬로건 아래에서 만들어진 개념이 JVM 입니다.
-> 다시 말해 윈도우에서 개발하고 리눅스에서도 실행이 가능하다는 말입니다.
-> 또한 윈도우에서 개발해도 다른 임베디드 시스템에서도 사용이 가능하게 된다는 뜻입니다.
* JDK 는 개발자 툴이므로 당연히 실행할수 있는 환경이 제공되어진다. 따라서
JDK = JRE + 개발툴 + Java 컴파일러
JRE = JVM, 라이브러리, 기타 애플릿이나 어플리케이션 구동 요소
로 생각하면 쉬울듯 하다.
* JRE 는 개발자용이 아니다 -> 따라서 Debuger 등의 유틸리티 역시 없다.
<기타> Java 를 별로 사용안하면 생각보다 해깔리는 경우가 많아서 ... 간단히 용어 정리 합니다.
JNI ( Java Native Interface )
JVM 에서 동작하는 Java code 가 다른언어(assem, c, c++) 에 의해 호출되고,
다른 언어를 호출 할 수 있도록 만들어진 interface 이다.
-> 위키백과를 참조하시면 더 좋을듯 합니다. ( http://en.wikipedia.org/wiki/JNI )
JSP ( Java Server Page )
HTML 내에 자바 코드를 삽입하여서 웹 서버 내에서 동적으로 웹 페이지를 생성하여 웹 브라우져에
돌려주는 언어입니다.
[출처]http://egloos.zum.com/folt/v/2353901
'자바 > JAVA' 카테고리의 다른 글
접근제어자 pulbic, protected, private (0) | 2015.11.06 |
---|---|
public , private , protected 구분 (0) | 2015.11.06 |
JAVA 클래스와 객체 - 캡슐화, 상속, 다형성 (0) | 2015.10.16 |
JAVA 클래스와 객체(class & object) - 객체(object), 클래스(class) (0) | 2015.10.16 |
JAVA 상속 - 부모(슈퍼)클래스와 자식(서브)클래스 (0) | 2015.10.16 |