본문 바로가기

IT/JAVA 자바

자바와 WORA (Write Once Run Anywhere)

WORA (Write Once Run Anywhere)

 

 

안녕하세요. 지토우에요.

오늘 이 시간에는 자바와 WORA (Write Once Run Anywhere) 에 대해서 공부해봐요.

별로 어려운 개념도 아니고, 쉽게 읽으시면 될 듯 합니다.

그럼 오늘도 힘차게 열공 ! 해봅시다 ~

 

 

1. 자바와 WORA (Write Once Run Anywhere)

 

 지난 시간에 플랫폼 종속성(platform dependence)에 대해 잠깐 설명드렸었죠?

간단히 설명하자면,

Intel CPU를 가진 리눅스 환경에서 개발한 C 혹은 C++ 응용 프로그램으로는 Intel CPU + 리눅스만 실행이 가능합니다.

애플의 맥이나 Intel CPU + 윈도우 노트북에서는 실행되지 않는다는 뜻이지요.

그렇다면 왜일까요?

 

프로그램의 플랫폼이 호환성이 없는 이유

* 기계어가 CPU 마다 다르기 때문

* 운영체제마다 API가 서로 다르기 때문

* 운영체제마다 실행파일 형식이 다르기 때문

 

이러한 특징을 플랫폼 종속성이라고 합니다.

 

 

 자바는 개발 단계에서부터 플랫폼에 독립적으로 설계되었다고 지난 시간에 말씀드렸습니다.

이는 운영체제나 하드웨어에 상관없이 자바 가상 기계(JVM)가 있으면

어디서나 자바로 작성된 프로그램에 동일한 실행환경을 제공하며 동일한 실행 결과를 기대하게 합니다.

 

 

2. 자바 실행 환경

 

 자바가 WORA의 특징을 가질 수 있는 것은 바이트 코드와 자바 가상 기계 때문이랍니다.

 

- 바이트 코드(byte code)

바이트 코드자바 컴파일러가 자바 소스 프로그램을 컴파일한 기계어입니다.

플랫폼에 대한 종속성이 없고 자바 가상 기계에서 실행되는 바이너리 코드입니다.

이 코드는 CPU에 의해 직접 실행되지는 않고, 인터프리터 방식으로 이 바이트 코드를 해석해서 해당 플랫폼에서 실행시킵니다.

 

- 자바 가상 기계

 자바 가상 기계는 서로 다른 플랫폼에서 동일한 자바 실행 환경을 제공합니다.

각 플랫폼에 맞게 포팅되어야 하므로 플랫폼 종속적이기도 합니다.

자바 가상 기계는 다양한 회사에서 제작되고 공급되어지는데, 한 번 작성된 자바 응용프로그램은 어떤 회사의 자바 가상 기계가 설치됐든지 정상적으로 실행됩니다.

자바 컴파일러는 자바 소스 프로그램을 바이트 코드로 컴파일 해 클래스 파일(class file)을 생성합니다.

그리고 클래스 파일에 들어 있는 바이트 코드를 하나씩 실행합니다.

실행 중 JDK 라이브러리의 다른 클래스 파일이나 사용자가 작성한 다른 클래스 파일이 필요하면,

그 때 필요한 클래스 파일을 로딩하고 실행합니다.

그러나 대부분 자바 가상 기계는 로딩으로 인한 시간 지연을 줄이기 위해 JDK 라이브러리를 미리 로딩하여 둡니다.

자바에서는 링크(link) 과정이 없습니다.

'IT > JAVA 자바' 카테고리의 다른 글

[자바] 이클립스 글씨 크기 변경하기  (0) 2017.08.21
자바(JAVA)의 출현  (0) 2017.07.21