자바에 대해 알아보자(기초 개념, 장점)
자바의 표준 스펙과 구현
먼저 자바란, 표준 스펙과 구현으로 나눌 수 있다.
자바 표준 스펙은..
* 자바는 이렇게 만들어야 한다는 설계도이며, 문서이다.
* 이 표준 스펙을 기반으로 여러 회사에서 실제 작동하는 자바를 만든다.
* 자바 표준 스펙은 자바 커뮤니티 프로세스(JCP)를 통해 관리된다.
구현은...
* 여러 회사에서 자바 표준 스펙에 맞추어 실제로 작동하는 자바 프로그램을 개발한다.
* 각각 장단점이 있다. 예를 들어 Amazon Corretto는 AWS에 최적화 되어 있다.
* 각 회사들은 대부분 윈도우, MAC, 리눅스 같이 다양한 OS에서 작동하는 버전의 자바도 함께 제공한다.
자바의 구현들은 모두 표준 스펙에 맞도록 개발되어 있기 때문에, 오라클 Open JDK를 사용하다가 Amazon Corretto 자바로 변경해도 대부분 문제 없이 동작한다.
컴파일과 실행
먼저 자바는 컴파일과 실행 두 과정을 거쳐서 작업을 수행한다.
자바 컴파일러(javac)는 개발자가 작성한 자바 소스 코드를 컴파일을 하게 되는데, 이 과정에서 .class 파일이 생성되며, 자바 코드를 바이트 코드로 변환해서 자바 가상 머신에서 더 빠르게 실행될 수 있게 최적화를 하고 문법 오류도 검출한다.
그리고 이제 JVM을 실행하며 프로그램이 작동하게 된다.
또한 일반적인 프로그램을 사용하면 한 운영체제에서 실행한 프로그램은 다른 운영체제에서 사용할 수가 없다. 윈도우에서 실행한 프로그램이 MAC이나 리눅스에서 돌아가지 않는 것과 마찬가지다! 이것은 윈도우에서 사용한 명령어들이 다른 운영체제에서 호환되지 않기 때문이다.
그렇지만 자바 프로그램은 자바가 설치가 되기만 했다면 모든 OS에서 실행 할 수 있다.
이렇기에 자바 개발자들은 특정 OS에 맞추어서 개발을 하지 않아도 된다는 이점을 가진다.
그래서 실제 자바 개발 환경에서의 개발자들은 개발의 편의를 위해서 윈도우나 MAC OS를 주로 사용하고, 서버는 주로 리눅스를 사용하지만 그냥 개발 환경에서 만든 java.class를 서버에 던져주기만 해도 호환이 된다는 건 참 큰 장점이다.