-
자바가 유료라서 코틀린이 대세라고요?카테고리 없음 2020. 10. 29. 09:22
자바가 유료라서 코틀린이 대세라고요?
java 유료화를 다루기 이전에, java가 무엇인지에 대해서 알 필요성이 있다. JVM이 뭔지 JDK가 뭔지 JRE가 뭔지에 대해서 학습해야 한다.
Java Virtual Machine (JVM)
JVM 자바 가상 머신으로, 자바 바이트 코드를 OS에 특화된 코드로 변환하여 실행한다. (특정 플랫폼에 종속적이게 된다.)
여러 벤더에 따라서 구현이 다르고 스펙은 Oracle 문서를 통해 확인할 수 있다.
즉, JVM 은 자바 가상 머신이며, 바이트 코드를 어떻게 실행시킬 수 있는가에 대한 스펙일 뿐이고 구현체는 다양하고, 플렛폼은 종속적이다.
> Native 코드로 바꿔서 실행해야하는데, 그 Native 코드도 OS에 따라 다르기 때문이다.
Java Runtime Environment (JRE)
JRE는 자바 애플리케이션을 실행할 수 있도록 구성된 배포판이다. 오라클에서 최소 배포단위를 JRE이지만, 11이상 버전 부터는 JRE를 따로 제공 하지않도록 바뀌었다.
>Java9 부터 모듈 시스템이 도입되었는데, JRE를 커스텀이 가능하다. 하지만 JRE를 커스텀 할 일은 극히 드물다.
JRE 컴파일이 포함되어있지 않기 때문에 컴파일이 불가하다. 실제로 JRE를 까보면 javac가 없다.
Java Development Kit (JDK)
이는 JRE과 더불어 개발에 필요한 툴들을 말한다. 개발에 필요한 툴들이라고 하면, (java, javac 등 등)
Java
자바를 JDK로 생각하시는 분들이 많다. 자바는 프로그래밍 언어이고, JDK에 들어가 있는 자바 컴파일러를 사용하여 바이트 코드를 컴파일 할 수 있다.
그럼 자바는 유료인가? >> ㄴㄴ JDK가 유료임
Oracle 에서 만든 Oracle JDK 11버전을 상용으로 사용할 때 유료 이다.
3가지 조건을 모두만족해야 유료인 것이다.
회사 : Oracle
JDK : Oracle JDK 11
(유료)
회사 : Oracle
JDK : Oracle Open JDK 11 (Open jdk 이고, 계속 업데이트도 진행 중)
(무료)
회사 : Amazon
JDK : Amazon Corrento 8, 11, 15
(무료)
그리고 JDK는 Oracle 에서만 만드는 것 도 아니고, 아마존에서도 만들고 있다. 아마존의 코렌토 가 있다.
코틀린도 JDK 를 기반으로 사용하고 있는데, 자바가 유료이니깐 코틀린으로 넘어간다는건 말도안되는 소리고, 코틀린이어도 Oracle Jdk 11 을 사용하면 유료로 사용해야한다 … 이말이다.
??? : 자바는 유료잖씀.. 코틀린 써야지
> 이말은 좀 모순이지 않을까 조심스럽게 생각해봅니다.
결론은 Oracle Jdk 11 이 유료인거고, 각 조건에 부합하지 않으면 싹 다 무료이므로, 자바 11은 무조건 유료이다. 라고 얘기하기에는 애매하다. 결국에는 Java가 아닌 Jdk 가 유료이고, 덕분에 Jdk, Jvm, Jre 에 대해서 더 알 수 있다.
더 자세한 내용은 세계 Java 전문가들이 Java가 여전히 무료인가에 대해서, 토론한 좋은 글이 있으므로 참고하면 좋다.