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

바쁜 개방형 사무실에서 일하는 사람들

JRE란 무엇인가요?

Java 런타임 환경(JRE)은 컴퓨터의 운영 체제 소프트웨어 위에서 실행되는 소프트웨어 계층으로, 특정 Java 프로그램을 실행하는 데 필요한 클래스 라이브러리 및 기타 리소스를 제공합니다.

JRE는 Java 프로그램을 개발하고 실행하기 위한 세 가지 상호 연관된 구성 요소 중 하나입니다. 다른 두 가지 구성 요소는 다음과 같습니다.

  • Java 개발 키트(JDK)는 Java 애플리케이션을 개발하기 위한 도구 세트입니다. 개발자는 Java 버전 및 패키지 또는 에디션(Java Enterprise Edition(Java EE), Java Special Edition(Java SE) 또는 Java Mobile Edition(Java ME))별로 JDK를 선택합니다. Java 프로그램 실행은 Java 프로그램 개발 프로세스의 일부이기 때문에 모든 JDK에는 항상 호환되는 JRE가 포함되어 있습니다.

  • Java 가상 머신(JVM)은 라이브 Java 애플리케이션을 실행합니다. 모든 JRE에는 기본 JRE가 포함되어 있지만 개발자는 애플리케이션의 특정 리소스 요구 사항을 충족하는 다른 JRE를 선택할 수 있습니다.

JRE는 JDK를 사용하여 만든 Java 코드를 JVM에서 실행하는 데 필요한 라이브러리와 결합한 다음 결과 프로그램을 실행하는 JVM의 인스턴스를 생성합니다. JVM은 여러 운영 체제에서 사용할 수 있으며, JRE로 만든 프로그램은 모든 운영 체제에서 실행됩니다. 이러한 방식으로 Java 런타임 환경은 Java 프로그램을 수정 없이 모든 운영 체제에서 실행할 수 있게 해줍니다.

호환되는 JRE를 포함한 JDK는 Oracle에서 다운로드할 수 있습니다.

전문가의 인사이트를 바탕으로 한 최신 기술 뉴스

Think 뉴스레터를 통해 AI, 자동화, 데이터 등 가장 중요하고 흥미로운 업계 동향에 대한 최신 소식을 받아보세요. IBM 개인정보 보호정책을 참조하세요.

감사합니다! 구독이 완료되었습니다.

구독한 뉴스레터는 영어로 제공됩니다. 모든 뉴스레터에는 구독 취소 링크가 있습니다. 여기에서 구독을 관리하거나 취소할 수 있습니다. 자세한 정보는 IBM 개인정보 보호정책을 참조하세요.

JRE는 어떻게 작동하나요?

JDK와 JRE는 서로 상호 작용하여 거의 모든 운영 체제에서 Java 기반 애플리케이션을 원활하게 실행할 수 있는 지속 가능한 런타임 환경을 만듭니다. JRE 런타임 아키텍처를 구성하는 속성은 다음과 같습니다.

ClassLoader

Java ClassLoader는 Java 프로그램을 실행하는 데 필요한 모든 클래스를 동적으로 로드합니다. Java 클래스는 필요할 때만 메모리에 로드되므로 JRE는 필요에 따라 이 프로세스를 자동화하기 위해 ClassLoader를 사용합니다.

바이트코드 검증기

바이트코드 검증기는 인터프리터로 전달되기 전에 Java 코드의 형식과 정확성을 보장합니다. 코드가 시스템 무결성이나 액세스 권한을 위반하는 경우 클래스는 손상된 것으로 간주되어 로드되지 않습니다.

인터프리터

바이트코드가 성공적으로 로드되면 Java 인터프리터는 Java 프로그램이 기본 시스템에서 기본적으로 실행될 수 있도록 하는 JVM 인스턴스를 생성합니다.

애플리케이션 개발

시작하기: 클라우드에서 기업용 애플리케이션 개발

이 영상에서 Peter Haumer 박사는 IBM Z Open Editor, IBM Wazi 및 Zowe 등 다양한 구성 요소와 사례를 시연하며 오늘날 하이브리드 클라우드에서의 최신 기업용 애플리케이션 개발이 어떤 모습인지 설명합니다. 

JRE는 무엇으로 구성되어 있나요?

Java Virtual Machine 외에도 JRE는 Java 애플리케이션을 최대한 활용할 수 있는 다양한 기타 지원 소프트웨어 도구 및 기능으로 구성되어 있습니다.

배포 솔루션

애플리케이션 활성화를 간소화하고 향후 Java 업데이트를 위한 고급 지원을 제공하는 Java Web Start 및 Java 플러그인과 같은 배포 기술이 JRE 설치의 일부로 포함되어 있습니다.

개발 툴킷

또한 JRE에는 개발자가 사용자 인터페이스를 개선하는 데 도움이 되도록 설계된 툴킷도 포함되어 있습니다. 이러한 툴킷에는 다음이 포함됩니다.

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

  • 추상 창 툴킷(AWT): 개체, 버튼, 스크롤 막대 및 창을 만드는 데 사용되는 GUI(그래픽 사용자 인터페이스)입니다.

  • Swing: 다양한 위젯 세트를 사용하여 유연한 사용자 지정을 제공하는 또 다른 경량 GUI입니다.

통합 라이브러리

Java 런타임 환경은 개발자가 애플리케이션과 서비스 간에 원활한 데이터 연결을 생성할 수 있도록 지원하는 여러 통합 라이브러리를 제공합니다. 이러한 라이브러리 중 일부는 다음과 같습니다.

  • Java IDL(CORBA): 공통 오브젝트 요청 아키텍처를 사용하여 Java 프로그래밍 언어로 작성된 분산 오브젝트를 지원합니다.

  • Java 데이터베이스 연결(JDBC) API: 개발자가 원격 관계 데이터베이스, 플랫 파일 및 스프레드시트에 액세스하여 애플리케이션을 작성할 수 있는 도구를 제공합니다.

  • JNDI(Java Naming and Directory Interface): 클라이언트가 명명 규칙을 사용하여 데이터베이스에서 정보를 가져올 수 있는 이식 가능한 애플리케이션을 만들 수 있도록 지원하는 프로그래밍 인터페이스 및 디렉터리 서비스입니다.

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

JRE에는 Java 애플리케이션의 설계, 패키지 버전 관리, 관리 및 모니터링에 기본이 되는 java.lang. 및 java.util. 패키지가 포함되어 있습니다. 이러한 패키지 중 일부에는 다음이 포함됩니다.

  • 컬렉션 프레임워크: 애플리케이션 데이터의 스토리지 및 프로세스를 개선하도록 설계된 인터페이스 모음으로 구성된 통합 아키텍처입니다.

  • 동시성 유틸리티: 고성능 스레딩 유틸리티가 포함된 강력한 프레임워크 패키지입니다.

  • 환경 설정 API: 동일한 컴퓨터를 사용하는 여러 사용자가 자신만의 애플리케이션 환경 설정 그룹을 정의할 수 있도록 하는 가볍고 크로스 플랫폼 지속형 API입니다.

  • 로깅: 추가 분석을 위해 보안 오류, 구성 오류 및 성능 문제와 같은 로그 보고서를 생성하는 패키지입니다.

  • Java 아카이브(JAR): 플랫폼 독립적인 파일 형식으로, 여러 파일을 JAR 형식으로 번들로 제공하여 다운로드 속도를 크게 개선하고 파일 크기를 줄일 수 있습니다.
관련 솔루션
AI 기반 애플리케이션 개발

Watsonx.ai는 애플리케이션 개발 팀이 워크플로에 AI를 원활하게 통합할 수 있도록 지원합니다. 이 포괄적인 툴킷은 모델 생성에서 배포에 이르기까지 전체 AI 라이프사이클를 지원합니다.

watsonx.ai 살펴보기
IBM Z Development and Test Environment

x86 하드웨어에서 메인프레임 애플리케이션 개발, 테스트, 데모, 교육을 위한 플랫폼을 사용합니다.

Z 개발 환경 살펴보기
모바일 클라우드 컴퓨팅 솔루션

앱을 신속하게 설계하고 프로토타입을 제작하여 시장에 쉽게 출시할 수 있는 IBM의 모바일 앱 개발 플랫폼에 대해 알아보세요.

모바일 클라우드 살펴보기
다음 단계 안내

IBM Cloud Application Development Consulting Services는 클라우드 전략을 간소화하기 위한 전문가 지침과 혁신적인 솔루션을 제공합니다. IBM의 클라우드 및 개발 전문가와 협력해 애플리케이션을 현대화, 확장, 가속화하여 비즈니스에 혁신적인 결과를 제공하세요.

애플리케이션 개발 서비스 살펴보기 무료로 IBM Cloud에서 구축 시작하기