런타임이란
원래 뜻은 어플리케이션이 돌아가는 시간이다. 근데 쓰임새가 좀 모호한 면이 있어서, 런타임 동안 실행되는 동작 또는 Runtime Environment을 뜻할 때도 런타임이라고 종종 말한다.
어플을 실행하려면, 실제로 컴을 쓸 수 있게 운영체제에서 메모리랑 자원할당을 받아야 하잖음? 그런 시스템 리소스에 접근할 수 있도록 해주는 게 Runtime Environment. 런타임이 돌아가기 위한 환경을 제공해주는 실행 환경이다. 런타임 환경은 운영체제에 속하는 경우도 있고, 운영체제 위에서 돌아가는 소프트웨어일 수도 있다. 후자의 예로 JRE(Java Runtime Environment)가 있다. 자바가 왜 꼭 JRE 위에서 돌아가야되냐? 걍 JRE를 응용프로그램이 같이 해버리면 안되냐?라고 물을 수 있는데, 이는 자바의 철학과 관련있다. 자바는 플랫폼에 관계없이 코드를 작성한다에 초점을 맞추고 있고, 운영체제마다 시스템리소스에 접근하는 방식이 다르기 때문에 JRE 종류가 다르다. JRE가 각 플랫폼의 시스템리소스에 접근하는 중간다리 역할을 해주는 것이다. 그렇다면 JVM은 무엇인가? Java Virtual Machine은 JRE의 핵심 기능으로, Java를 구동시키는 엔진이다. JVM이 이해할 수 있는 언어는 바이트코드이다. 개발자가 작성하는 .java를 컴파일했을 때 나오는 .class가 바이트코드로 되어 있다.
.jar는 .class들을 묶은 파일이다.
'개발' 카테고리의 다른 글
| Https, 클라이언트와 서버간 TLS 핸드셰이크 과정 (0) | 2024.12.10 |
|---|---|
| 콜백, 왜 써야 되는 건데? (1) | 2024.12.10 |
| 네트워크 - 라우팅, 게이트웨이 (1) | 2024.12.06 |
| 네트워크 - Dynamic DNS (DDNS) (0) | 2024.12.06 |
| 네트워크 - DHCP (0) | 2024.12.06 |