본문 바로가기
Language/Java

[Java] Java 버전별 특징 : Java 16~17

by 계범 2024. 10. 9.

Java 16

java 16에선 큰 변경사항 없이 기존에 나왔던 것들에 대한 개선 및 ZGC 개선, 수치 계산과 데이터 처리의 고성능 수행을 도와줄 Vector API 등이 나옴.

 

Java 17

LTS (Long-Term Support) 버전으로 장기적인 지원을 받는 버전입니다.

SpringBoot 3.x 버전부터는 Java17이상의 버전을 사용해야하기 때문에 8,11 -> 17로 올리는 경우가 많습니다.

 

macOS AArch64 지원 (JEP 391)

JEP 391은 Java 17에서 macOS의 AArch64 플랫폼을 지원하기 위한 기능으로, Apple의 Apple Silicon (M1, M2 등) 기반 ARM 아키텍처에서 Java 애플리케이션을 원활히 실행할 수 있도록 설계되었습니다. 이는 특히 Apple M1 칩이 탑재된 MacBook, Mac Mini 등 최신 Apple 기기에서 자바 애플리케이션을 최적화된 성능으로 실행하기 위해 도입된 중요한 업데이트입니다.

왜 중요한가?

기존 macOS는 x86_64 아키텍처를 사용했지만, Apple이 자체 ARM 기반 AArch64 아키텍처로 전환함에 따라 macOS에서 실행되는 자바 애플리케이션도 새로운 아키텍처에 맞게 최적화될 필요가 있었습니다. JEP 391은 이러한 요구에 맞춰 자바 개발 환경을 최신 하드웨어로 업데이트한 것입니다.

주요 내용:

  • macOS에서 AArch64 아키텍처를 정식 지원: Java 17은 x86_64뿐만 아니라 AArch64 아키텍처에서도 네이티브 성능을 제공하여 더 나은 성능과 효율성을 보장합니다.
  • 네이티브 코드와 호환성: AArch64는 ARM 아키텍처를 기반으로 하므로, 자바 애플리케이션과 네이티브 코드가 상호작용할 때 성능과 효율성이 크게 향상됩니다.
  • 호환성: 기존의 자바 애플리케이션은 별다른 수정 없이 Apple Silicon 기반의 기기에서 실행 가능하며, Apple의 Rosetta 2 에뮬레이션에 의존하지 않고 네이티브 ARM 성능을 활용할 수 있습니다.

장점:

  • Apple Silicon 기기에서 자바 애플리케이션의 성능이 크게 향상됩니다.
  • 배터리 효율성도 개선됩니다. ARM 아키텍처는 일반적으로 에너지 효율이 높기 때문에 더 나은 전력 효율성을 제공합니다.
  • 자바와 네이티브 라이브러리 간의 상호운용성이 강화됩니다.

Deprecate the Security Manager for Removal (JEP 411)

JEP 411은 자바의 오래된 보안 기능인 Security Manager가 제거될 예정임을 알리는 기능 폐지 제안입니다. Security Manager는 자바 애플리케이션의 보안 정책을 관리하기 위한 메커니즘으로, 특히 샌드박스 애플리케이션과 같은 환경에서 사용되었습니다. 그러나 현대적인 보안 요구사항에 부응하지 못하고, 거의 사용되지 않게 되었기 때문에 제거가 예정되어 있습니다.

주요 내용:

  • Security Manager 폐지: 자바 17에서는 Security Manager가 더 이상 추천되지 않으며, 향후 릴리스에서 완전히 제거될 예정입니다.
  • 대체 보안 메커니즘 사용 권장: Java는 현재 보안 강화 요구 사항을 충족하기 위해 JVM 외부의 컨테이너 보안, OS 수준의 보안 메커니즘, 클라우드 네이티브 보안 방식을 권장하고 있습니다.

왜 폐지되었는가?

  1. 현대적인 애플리케이션에서 거의 사용되지 않음: Security Manager는 더 이상 현대적인 자바 애플리케이션에서 자주 사용되지 않으며, 기존 시스템은 더 나은 보안 메커니즘으로 대체되었습니다.
  2. 복잡하고 유연성이 부족함: Security Manager는 사용하기 복잡하며, 세부적인 보안 정책을 설정하기 위해서는 많은 수동 설정이 필요합니다.
  3. 컨테이너 기반 보안: 클라우드 기반의 현대 애플리케이션에서는 컨테이너와 같은 환경에서 애플리케이션을 샌드박싱하는 데 더 나은 방식들이 있기 때문에 Security Manager는 필요하지 않게 되었습니다.

영향:

  • 보안 정책을 Security Manager에 의존한 시스템은 자바 17 이후의 릴리스로 업그레이드할 때 대체 보안 모델을 고려해야 합니다.
  • 기존 코드에서 Security Manager를 사용하는 경우, 폐지 예정 경고가 발생할 수 있으며, 향후 릴리스에서는 제거될 수 있으므로 보안 모델을 재설계하는 것이 필요합니다.

댓글