Java 런타임 환경이란 무엇인가요?

Java 런타임 환경(JRE)은 Java 프로그램이 올바르게 실행되기 위해 필요한 소프트웨어입니다. Java는 여러 최신 웹 및 모바일 애플리케이션의 기반이 되는 컴퓨터 언어입니다. JRE는 Java 프로그램과 운영 체제 간의 통신을 위한 기본 기술입니다. JRE는 Java 소프트웨어 작성 시 추가 수정 없이 어떤 운영 체제에서도 실행되도록 모든 리소스를 제공하는 번역기 및 촉진자 역할을 합니다.

JRE는 왜 중요한가요?

소프트웨어 프로그램에는 프로그램 파일 및 종속성과 같은 시스템 리소스 및 메모리에 대한 액세스를 제공하는 런타임 환경이 필요합니다. 과거에는 대부분의 소프트웨어가 운영 체제를 런타임 환경으로 직접 사용했습니다. 그러나 이는 개발자가 애플리케이션을 실행하려는 각 운영 체제에 대해 서로 다른 코드를 작성해야 함을 의미했습니다. Java 런타임 환경(JRE) 기술은 이 문제에 대한 솔루션으로 만들어졌습니다.

 

JRE는 사실 모든 Java 프로그램이 성공적으로 실행되는 데 필요한 3가지 Java 플랫폼 구성 요소 중 하나입니다. 나머지 2가지 구성 요소는 Java 개발 키트(JDK)와 Java 가상 머신(JVM)입니다.

Java 개발 키트

JDK는 Java 애플리케이션 개발에 사용할 수 있는 소프트웨어 도구 모음입니다. JDK를 다운로드하고 설치하여 개발 환경에서 JDK를 설정할 수 있습니다. 사용하려는 Java 버전과 일치하는 JDK 소프트웨어 버전을 선택하세요. 예를 들어 Java Standard Edition(Java SE)에는 Java SE JDK가 필요합니다.

Java 가상 머신

JVM은 Java 프로그램을 한 줄씩 실행하는 소프트웨어입니다. 개발자는 Java 애플리케이션 실행 시 프로그램 리소스를 관리하기 위한 JVM 설정을 구성합니다. 예를 들어, JVM 메모리 설정을 변경하고 Java 애플리케이션이 런타임에 사용하는 내부 메모리 양을 확인할 수 있습니다.

Java 프로그래밍 언어에서 JRE의 역할

JRE는 JDK를 사용하여 생성한 Java 코드를 라이브러리라는 추가 내장 코드와 결합합니다. 그런 다음, 최종적으로 Java 프로그램을 실행하는 JVM 인스턴스나 로컬 복사본을 만듭니다. JVM은 여러 운영 체제에서 사용할 수 있으며, JRE는 모든 유형의 JVM에서 실행되는 단일 Java 코드 복사본을 생성합니다. 이러한 방식으로 JRE는 Java 애플리케이션의 플랫폼 독립성을 촉진합니다. 한 번 작성하면 어디에서나 실행할 수 있습니다.

JRE, JVM 및 JDK의 차이점

JDK는 컴파일러, 디버거, 그리고 모든 소프트웨어 개발 환경에서 일반적으로 볼 수 있는 기타 도구를 포함하는 JRE 상위의 소프트웨어 계층입니다. JDK에서는 영어와 유사한 구문으로 코드를 작성합니다. JDK는 이를 컴파일하고 바이트 코드를 JRE에 전달합니다. 이와 달리 JRE에는 클래스 라이브러리, 지원 파일 및 JVM이 포함됩니다. 이러한 소프트웨어 구성 요소를 사용하여 모든 디바이스에서 바이트코드를 실행합니다.

JRE는 어떻게 작동하나요?

Java 런타임 환경(JRE)은 운영 체제 외에 실행되어 추가적인 Java 관련 리소스를 제공합니다. Java 개발 키트(JDK)와 JRE는 상호 작용하여 모든 시스템에서 Java 프로그램 파일을 실행할 지속 가능한 런타임 환경을 만듭니다. JRE는 3가지 핵심 구성 요소를 사용하여 작동합니다.

ClassLoader

Java 클래스 라이브러리에는 필요에 따라 호출할 수 있는 미리 작성된 코드 모음이 있습니다. 사용자로부터 입력 받고 사용자에게 출력하는 것과 같은 일반적이고 중요하지 않은 작업에 대해 내장 메서드를 제공하여 Java 개발자의 작업을 단순화합니다. 모든 Java 프로그램은 여러 클래스 라이브러리를 참조합니다. Java ClassLoader는 요청 시 필요한 모든 클래스 파일을 Java 가상 머신(JVM)에 동적으로 로드합니다.

바이트코드 검증기

JDK에는 영어와 유사하게 작성된 코드를 Java 바이트코드라는 기계어 버전으로 변환하는 컴파일러가 있습니다. JRE의 바이트코드 검증기는 Java 코드를 JVM에 로드하기 전에 형식과 정확성을 확인합니다. 예를 들어 코드가 시스템 무결성 또는 액세스 권한을 위반하는 경우, JRE는 클래스 파일을 로드하지 않습니다.

인터프리터

바이트코드가 성공적으로 로드된 후, Java 인터프리터는 기본 시스템에서 Java 프로그램을 실행하는 JVM 인스턴스를 생성합니다.

JRE의 구성 요소는 무엇인가요?

Java 런타임 환경(JRE)에는 핵심 구성 요소 외에도 Java 프로그램을 효율적으로 실행하는 데 도움이 되는 몇 가지 기타 소프트웨어 구성 요소가 포함되어 있습니다. 다음은 일부 예입니다.

개발 도구

JRE에는 애플리케이션의 품질을 개선하는 데 사용할 수 있는 사용자 인터페이스 도구 키트와 같은 개발 도구가 포함되어 있습니다. 다음은 일부 예입니다.

Java 2D

Java 2D는 2차원 그래픽을 그리고 Java 언어로 풍부한 사용자 인터페이스, 게임, 애니메이션 및 특수 효과를 만드는 데 사용할 수 있는 애플리케이션 프로그래밍 인터페이스(API)입니다.

Swing

Swing은 유연하고 사용자 친화적인 사용자 지정 기능을 제공하는 가벼운 그래픽 사용자 인터페이스(GUI)입니다.

Abstract Window Toolkit

Abstract Window Toolkit(AWT)은 버튼, 창 및 스크롤 바와 같은 UI 객체를 만드는 데 사용할 수 있는 GUI입니다.

배포 솔루션

JRE에는 애플리케이션 사용자에게 소프트웨어 변경 사항을 릴리스하는 프로세스를 단순화하는 기술이 포함되어 있습니다. 이러한 기술은 애플리케이션의 업데이트에 대한 고급 지원도 제공합니다. Java Web Start 및 Java 플러그인과 같은 배포 기술은 JRE 설치에 포함됩니다. 이러한 기술은 애플리케이션 활성화를 단순화하고 JRE의 향후 업데이트에 대한 고급 지원도 제공합니다. 다음은 일부 예입니다.

Java Web Start

Java Web Start를 사용하면 웹 브라우저에서 클릭 한 번으로 모든 기능을 갖춘 애플리케이션을 시작할 수 있습니다.

Java 플러그인

데스크탑 브라우저 내에서 웹사이트 애플릿을 실행할 수 있도록, Java 플러그인은 널리 사용되는 브라우저와 Java 플랫폼 간의 연결을 설정합니다.

언어 및 유틸리티 라이브러리

Java 클래스 파일 모음을 Java 패키지라고 합니다. JRE에는 버저닝, 관리 및 모니터링을 지원하는 여러 Java 패키지가 포함되어 있습니다. 다음 패키지는 일부 예입니다.

컬렉션 프레임워크

컬렉션 프레임워크는 애플리케이션 데이터의 저장 및 처리를 개선하기 위한 인터페이스를 포함하는 통합 아키텍처입니다.

Preferences API

Preferences API를 사용하면 동일한 시스템에 있는 여러 사용자가 자신만의 애플리케이션 기본 설정 그룹을 정의할 수 있습니다.

로깅

로깅 패키지는 보안 실패, 성능 문제 및 구성 오류와 같은 문제를 해결하기 위한 로그 보고서를 생성합니다.

Java 아카이브

Java 아카이브(JAR)는 플랫폼 독립적인 파일 형식으로, 여러 파일을 번들로 묶어 애플리케이션의 파일 크기를 줄이고 다운로드 속도를 크게 향상시킬 수 있습니다.

통합 라이브러리

JRE에는 개발자가 서비스와 애플리케이션 사이에 원활하게 데이터 연결을 생성하는 데 도움이 되는 여러 통합 라이브러리가 포함되어 있습니다. 다음은 라이브러리의 일부 예입니다.

Java IDL

Common Object Request Broker Architecture(CORBA)를 기반으로 하는 Java Interface Definition Language(IDL)는 분산 데이터 객체, 즉 네트워크를 통해 서로 다른 플랫폼에서 상호 작용하는 객체를 지원합니다. 예를 들어, Java IDL을 사용하면 Java로 작성된 객체가 C, C++, COBOL 등의 다른 언어로 작성된 객체와 상호 작용할 수 있습니다.

Java Database Connectivity

개발자는 Java Database Connectivity(JDBC) API를 사용하여 원격 데이터베이스, 스프레드시트 및 파일에 액세스할 수 있는 애플리케이션을 작성합니다.

Java Naming and Directory Interface

Java Naming and Directory Interface(JNDI)는 클라이언트가 이름 지정 규칙을 사용하여 외부 데이터베이스에서 정보를 가져오는 호환 가능한 애플리케이션을 만들 수 있도록 하는 디렉터리 서비스입니다.

AWS SDK for Java란 무엇인가요?

Java용 AWS 소프트웨어 개발 키트(SDK)는 Java 개발자에게 일관되고 친숙한 라이브러리 세트를 제공하여 AWS 서비스 사용을 간소화합니다. AWS SDK for Java는 간소화된 개발을 위해 상위 수준의 추상화도 지원합니다. AWS 중심의 오픈 소스 Java 라이브러리는 코드 예제 및 Java API 참조 가이드와 함께 제공됩니다.

 

GitHub의 AWS SDK for Java 2.0 코드 예시에는 애플리케이션 개발을 가속화하는 데 도움이 되는 Java 코드 예시와 AWS 서비스에 대한 실제 사용 사례가 포함되어 있습니다. 또한 AWS SDK for Java API 참조 가이드에는 최신 버전의 AWS SDK for Java에 대한 API 작업이 설명되어 있습니다. 이 안내서에서는 지원되는 웹 서비스 프로토콜에 대한 샘플 요청, 응답 및 오류도 제공합니다.

 

AWS SDK for Java 개발자 안내서를 활용하여 AWS SDK for Java를 시작하거나 AWS Java 개발자 센터를 방문하세요.                                       

AWS의 다음 단계