요약: 이 글에서는 Java 11의 주요 변경 사항과 새로운 기능을 소개합니다. 개발자들이 일하다가 모르는 것이 있다면 이 글을 참고하여 Java 11을 더 효율적으로 사용할 수 있습니다.
Java 11은 2018년 9월에 출시된 LTS(Long Term Support) 버전으로, 다양한 새로운 기능과 개선사항이 도입되었습니다. 이 글에서는 Java 11의 주요 변경 사항과 새로운 기능을 살펴봅니다.
주요 변경 사항
- Java EE 및 CORBA 모듈 제거: Java 11에서는 Java EE 및 CORBA 관련 모듈이 제거되었습니다. 이들 모듈은 이전 버전에서 deprecated 되었으며, 이제는 별도의 라이브러리로 제공됩니다.
- Nashorn JavaScript 엔진 제거: Java 11에서는 Nashorn JavaScript 엔진이 deprecated 되었습니다. 대신 GraalVM의 JavaScript 엔진을 사용하거나 다른 JavaScript 엔진을 찾아야 합니다.
- JDK Flight Recorder: Java 11에서는 JDK Flight Recorder가 오픈소스로 공개되었습니다. 이 기능을 사용하면 애플리케이션의 성능 문제를 진단할 수 있습니다.
새로운 기능
- JEP 181: Nest-Based Access Control: Java 11에서는 중첩된 클래스에서의 접근 제어를 개선하기 위해 nest-based access control이 도입되었습니다. 이를 통해 중첩된 클래스에서의 private 멤버에 대한 접근이 가능해졌습니다.
- JEP 321: HTTP 클라이언트: Java 11에서는 새로운 HTTP 클라이언트 API가 추가되었습니다. 이 API는 HTTP/1.1 및 HTTP/2를 모두 지원하며, WebSocket도 지원합니다.
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://example.com"))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
- JEP 330: Launch Single-File Source-Code Programs: Java 11에서는 단일 파일 소스 코드 프로그램을 실행할 수 있는 기능이 추가되었습니다. 이 기능을 사용하면 자바 소스 코드를 컴파일하고 실행하는 과정 없이 바로 실행할 수 있습니다.
$ java HelloWorld.java
Hello, World!
JEP 335: Deprecate the Nashorn JavaScript Engine: 이미 언급한 대로, Java 11에서는 Nashorn JavaScript 엔진이 deprecated 되었습니다. GraalVM의 JavaScript 엔진이나 다른 JavaScript 엔진을 사용하는 것이 좋습니다.
JEP 309: Dynamic Class-File Constants: Java 11에서는 동적 클래스 파일 상수가 도입되었습니다. 이 기능은 클래스 파일에 상수 동적 값을 저장할 수 있는 지원을 제공합니다. 이를 통해 실행 시간에 생성된 상수 값을 참조할 수 있습니다.
JEP 315: Improve Aarch64 Intrinsics: Java 11에서는 ARM 64비트 아키텍처에 대한 개선이 이루어졌습니다. 이를 통해 ARM 기반 하드웨어에서의 성능이 향상되었습니다.
JEP 318: Epsilon: A No-Op Garbage Collector: Java 11에서는 Epsilon이라는 새로운 가비지 컬렉터가 도입되었습니다. Epsilon은 최소한의 오버헤드를 가지며, 메모리 관리에 거의 개입하지 않는 가비지 컬렉터입니다. 이 가비지 컬렉터는 성능 테스트와 벤치마킹에 유용하며, 가비지 컬렉션을 피해야 하는 특정한 경우에 사용될 수 있습니다.
JEP 333: ZGC: A Scalable Low-Latency Garbage Collector: Java 11에서는 Z Garbage Collector(ZGC)라는 새로운 가비지 컬렉터가 도입되었습니다. ZGC는 대규모 힙을 가진 애플리케이션에서 낮은 지연 시간을 제공하며, 멀티테라바이트 힙에서도 빠른 응답 시간을 유지할 수 있습니다.
JEP 336: Deprecate the Pack200 Tools and API: Java 11에서는 Pack200 도구와 API가 deprecated 되었습니다. 이 기능은 이전 버전의 Java에서 JAR 파일의 압축을 개선하기 위해 사용되었으나, 현재는 더 이상 필요하지 않습니다.
Java 11은 이 외에도 다양한 개선 사항과 변경이 도입되었습니다. 이 글에서 소개한 주요 변경 사항과 새로운 기능을 참고하여 Java 11을 더 효율적으로 사용하고, 자바 애플리케이션 개발에 도움이 되길 바랍니다. 개발자들이 일하다가 모르는 것이 있다면 이 글을 참고하여 Java 11에 대한 이해를 높일 수 있기를 바랍니다.
#Java11 #LTS #주요변경사항 #새로운기능 #NashornJavaScript엔진 #JDKFlightRecorder #JEP #HTTP클라이언트 #가비지컬렉터 #개발자가이드 #JavaEE #CORBA #ARM64비트
'자기개발 > 검색한 자료 정리' 카테고리의 다른 글
CSS 애니메이션 기법과 효과적인 사용법 (0) | 2023.04.20 |
---|---|
CSS Flexbox와 Grid를 활용한 반응형 웹 디자인 (0) | 2023.04.19 |
TypeScript에서 타입 별칭, 인터페이스, 제네릭 사용법 (1) | 2023.04.19 |
JavaScript의 비동기 프로그래밍: 콜백, 프로미스, async/await (0) | 2023.04.19 |
Java 8의 람다식과 스트림 API 기본 사용법 (0) | 2023.04.19 |