IT 이모저모

Java 지원은 이렇게 바뀐다! 강화 된 Docker 대응

exien 2018. 7. 9. 14:18

이전에는 주로 Java 10 기능상의 변경에 대해 설명했지만 이번에는 Java 8까지의 흐름과 크게 달라진 새로운 지원을 중심으로 소개합니다. 새로운 지원 정책에 관해서는 2017 년 9 월에 발표되고있었습니다 만, Java 10의 출시와 함께 Java 9 지원 종료를 알고 큰 관심을 보이고 분도있는 것은 아닐까요. 또한 Java 10에서 Docker에 대한 대응 강화에 대해서도 함께 소개합니다. 단순히 Docker에 변경 사항라는 의미가 아니라 Docker를 이용하는 것은 개발시 또는 운용시에있어서의 Java 버전에 대한 의존도 감소로 이어질 대응이 아닌가 생각합니다.

목차

짧은 기간의 버전 업 및 TLS 및 유상 지원

 Java 9의 출시와 함께 새로운 지원 로드맵이 공개되었습니다. 거기에서는 6 개월마다 메이저 업데이트가 이루어지는 것으로 나타났습니다, 그리고 2018 년 3 월에는 Java 10이 출시되었습니다.

 Java 9이 출시 된 초기에는 향후 대해 발표되었지만 실제로는 어떻게 될까과 모습을 엿볼 풍조도 있었지만 무사히 Java 10가 출시 된 현재 다음 Java 11 릴리스까지 앞으로 조금 상황입니다 .

 한편 Java 8까지의 지원과 Java 9에서 지원에서 차이가 있기 때문에 향후 Java의 이용에 대해 일부 걱정하는 목소리도 높아지고 있으며, 엔지니어도 이용하는 사용자도 이러한 차이를 이해하는 것이 중요합니다.

6 개월마다 메이저 업데이트

 Java 9에서 아래의 그림 1과 같이 6 개월마다 메이저 업데이트가 이루어집니다. 그리고 그 버전에 대한 업데이트도 다음 버전의 출시와 함께 종료됩니다. 따라서, Java 10이 출시되면 Java 9의 업데이트가 없어져 버려, Java 11이 출시되면 마찬가지로 Java 10의 업데이트는 거기서 종료됩니다.

 이것은 Java 8까지 버전 업이 긴 시간을 요하고 그동안의 트렌드를 따라 잡을 수 없었던 것에 대한 개선책으로 앞으로 이번 Java 10과 같이 비교적 작은 버전 업되어가는 생각합니다. 그러나 업데이트가 릴리스되지 않습니다 곧 새로운 버전으로 업데이트 해 나가지 않으면 같은 안장없는 것은 운용면에서 큰 일입니다. 따라서 다음과 같은 Java 11는 LTS 버전 (장기 지원) 버전입니다. 또한 LTS 버전은 3 년마다의 출시를 예정하고 있기 때문에 다음 Oracle 버전 Java는 Java 17 될 예정입니다.

그림 1 : 6 개월마다 메이저 업데이트
그림 1 : 6 개월마다 메이저 업데이트

 LTS 버전 만 이용해 나가는 것이 졌다면 Java 9 또는 Java 10은 안정 버전 이전의 미리보기 버전이라고 자리 매김되기 때문에, 그만큼 짧은주기 버전을 올리지 않아도 좋은 것이 생각 것입니다. 그러나 새로운 기술 분야에서 1 년 반이라는 시간이 너무 긴 경우가 있습니다. 다양한 용도를 고려하면서 계속 한 자료를 가기 위해 6 개월마다 출시 3 년마다 LTS 버전 등 2 종류의 대응은 좋은 흐름이되어 있다고 생각합니다.

Java 11에서 Oracle Java SE는 유상

 6 개월마다 메이저 버전 업이 있어도 LTS 버전도 준비되어 있기 때문에 그만큼 신경이되지 않을까 생각합니다. 그러나,이 Java 11의 Oracle JDK는 유상입니다.

 즉, Oracle에서 제공하는 무료 버전의 JDK는 Java 10이 마지막입니다. 따라서, Java 10 이상 무료 JDK를 이용하고 싶은 경우에는 Open JDK를 사용해야합니다. 이러한 지원 기간 나타낸 것이 그림 2이다.

그림 2 : Java SE 지원 기간
그림 2 : Java SE 지원 기간

 이 지원은 JDK 대신 Java SE에 관한 것이므로, 개발뿐만 아니라 운용에도 영향을줍니다.

 그러나 Java 버전 업하면 이전 버전의 바이너리가 움직이지 않게되는 것은 아니기 때문에, 일반적으로 일부 언어처럼 코드를 다시 작성하거나 컴파일을 다시 할 필요가 없을 것입니다. 따라서 개발하고있는 프로젝트에별로 영향은 없다고 생각됩니다.

 그러나 SI 등으로 납품 된 코드에서 계약의 사정에 따라 이용자가 Java 실행 환경에 대해 변경할 수없는 경우 등에는 매우 큰 영향이 발생합니다. 즉, 지원 면도 고려하여 현행 정책의 유지 운용하려고하면 Java 8을 이용하여 계속 선택이 가장 효과적입니다.

 Java 8의 지원 종료시기에는 두 가지가 2019 년 1 월 일반 지원이 종료 (그림 2의 (1)) 2020 년 12 월 개인 사용의 지원이 종료됩니다 (그림 2의 ( 2)).

 즉, 일반 소비자가 PC에 설치되어있는 Java의 이용을 전제로 한 응용 프로그램을 배포하는 경우에는 2020 년 12 월이 마감됩니다. 이 기간에 해당하는 줄임말 같은 경우에는 유상 지원이 필요 해지고 있습니다.

 또한 최근 Java 11 이후에 실행되는 경우, OpenJDK 용 Java 11 LTS 버전으로 유료 버전과 마찬가지로 장기 유지 보수 업데이트를 지원할 수 있는지 등 점이 주목됩니다.

 현재는 어떤 상황이 될지 미확정는 있지만, LTS 버전으로 지원하는 방향으로 움직이고있는 것으로 앞으로 눈을 뗄 수 없습니다.

Oracle의 가격 체계

 지금까지 「Java의 이용은 무료 '라는 이미지를 갖고 있던 사람은 유상되면 어느 정도 비용이 드는지 관심이있는 것은 아닐까요.

 그래서 정가표 를 보면 기존의 Java SE와 같은 서비스를 정렬하려면 다음 두 가지 제품이 필요한 것을 알 수 있습니다.

Java SE Advanced Desktop

 데스크탑 환경에서의 사용을 전제로 한, Java SE의 이용. 요금 체계 (사용자 당 4800 엔, 연간 지원 비용, 1056 엔)

Java SE Advanced

 일반적인 Java SE의 이용. 요금 체계 (사용자 당 1 만 2000 엔, 연간 지원 비용, 2640 엔. 또는 프로세서 당 60 만엔, 연간 지원 비용 13 만 2000 엔)

 그러나 이러한 제품은 Java SE 이외에 다른 도구도 포함되어 있습니다. 자세한 내용은 Oracle Java SE Advanced & Suite 제품 등을 참조하십시오.

 지금까지의 Java 사용에 이러한 비용을 들여 있던 사람은 거의 없을 것입니다 때문에, 향후 비용의 개념에 대해 괴로운 곳입니다.



출처 https://codezine.jp/article/detail/10939