우리가 App을 만드는 이유와 JVM의 역할
우리는 App(애플리케이션)을 만드는 이유 중 하나는 하드웨어를 제어하기 위해서입니다.
하드웨어는 모니터, 키보드, 스피커 등 사용자와 컴퓨터가 상호작용할 수 있도록 해주는 중요한 구성 요소입니다.
하지만 이 하드웨어를 직접 제어하려면 2진수(기계어)를 사용해야 하는데, 일반 개발자 입장에서 2진수로 프로그램을 작성하는 것은 매우 어렵고 비효율적입니다.
그래서 우리는 운영체제(OS)를 통해 하드웨어를 제어합니다.
그리고 OS를 조작하려면 Shell(셸)이라는 명령어 해석기를 이용해야 합니다.
Shell의 종류
- Windows:
CMD
,PowerShell
- Linux:
sh
,bash
등
OS마다 사용하는 Shell이 다르고, 사용하는 명령어나 문법도 다르기 때문에
OS가 다르면 개발자가 각각 다른 명령 체계를 익혀야 하는 불편함이 생깁니다.
App과 OS 사이의 중재자, JVM
이러한 복잡함을 줄이기 위해, 우리는 App과 OS 사이에 JVM(Java Virtual Machine)이라는 중간 계층을 둡니다.
- JVM은 OS마다 다른 명령어 체계를 내부적으로 처리해 주며,
- 개발자는 하나의 공통된 Java 언어로만 개발하면 JVM이 각 OS에 맞게 자동으로 해석하고 실행해 줍니다.
즉, JVM 덕분에 우리는 OS의 종류에 관계없이 한 번 개발하고(OS마다 따로 수정하지 않고) 여러 플랫폼에서 실행할 수 있게 됩니다. 이것이 Java의 대표적인 장점인 "Write Once, Run Anywhere" 개념입니다.
Share article