ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JAVA] JAVA 18 주요 변경점
    JAVA 2024. 9. 23. 22:05
    반응형

    Java 18의 주요 변경사항 총정리

    Java 18이 2022년 3월에 출시되었습니다. 이번 버전은 단기 지원 릴리스로, 다양한 새로운 기능과 개선사항을 포함하고 있습니다. 이번 포스트에서는 Java 18의 14가지 주요 변경사항을 자세히 살펴보겠습니다.

    1. UTF-8을 기본값으로 설정

    Java SE API에서 UTF-8이 기본 문자셋으로 설정되었습니다. 이는 플랫폼 간 일관성을 높이고 인코딩 관련 문제를 줄일 것으로 기대됩니다.

    2. 간단한 웹 서버

    정적 파일을 위한 최소한의 웹 서버를 시작할 수 있는 새로운 명령줄 도구 'jwebserver'가 도입되었습니다.

    jwebserver -p 8000

    3. Java API 문서의 코드 스니펫

    API 문서에 코드 스니펫을 포함할 수 있는 새로운 @snippet 태그가 추가되었습니다. 이를 통해 더 명확하고 실용적인 문서 작성이 가능해졌습니다.

    4. Method Handles를 사용한 Core Reflection 재구현

    반사 API의 유지보수성을 개선하고 개발 비용을 줄이기 위해 Core Reflection이 Method Handles를 사용하여 재구현되었습니다.

    5. Vector API (Third Incubator)

    벡터 연산을 표현하기 위한 Vector API가 세 번째 incubator 단계로 발전했습니다. 성능 개선과 추가 기능이 포함되었습니다.

    6. 인터넷 주소 해결 SPI

    호스트 이름과 주소 해결을 위한 새로운 서비스 제공자 인터페이스(SPI)가 도입되었습니다. 이를 통해 사용자 정의 이름 해결 메커니즘을 구현할 수 있게 되었습니다.

    7. Foreign Function & Memory API (Second Incubator)

    Java 런타임 외부의 코드 및 데이터와 상호 작용하기 위한 API가 두 번째 incubator 단계로 발전했습니다. 사용성과 성능이 개선되었습니다.

    8. Pattern Matching for switch (Second Preview)

    switch 표현식과 문에 패턴 매칭을 적용하는 기능이 두 번째 preview로 제공됩니다. 더 간결하고 안전한 코드 작성이 가능해졌습니다.

    static String formatter(Object obj) {
        return switch (obj) {
            case Integer i -> String.format("int %d", i);
            case Long l    -> String.format("long %d", l);
            case Double d  -> String.format("double %f", d);
            case String s  -> String.format("String %s", s);
            default        -> obj.toString();
        };
    }

    9. Finalization 제거를 위한 Deprecated 처리

    finalization의 문제점과 단점으로 인해 향후 제거를 위해 deprecated 처리되었습니다.

    10. Concurrent Mark Sweep (CMS) 가비지 컬렉터 제거

    CMS 가비지 컬렉터가 완전히 제거되었습니다. G1GC나 ZGC 등의 더 현대적인 가비지 컬렉터 사용을 권장합니다.

    11. Nashorn JavaScript 엔진 제거

    Nashorn JavaScript 엔진이 완전히 제거되었습니다. GraalVM의 JavaScript 엔진 사용을 고려해볼 수 있습니다.

    12. 실험적 AOT 및 JIT 컴파일러 제거

    실험적인 Ahead-of-Time (AOT) 및 Just-in-Time (JIT) 컴파일러가 제거되었습니다.

    13. RMI Activation 제거

    더 이상 사용되지 않는 RMI Activation 기능이 제거되었습니다.

    14. Security Manager 제거

    Java 17에서 deprecated 처리된 Security Manager가 이번 버전에서 제거되었습니다.

    결론

    Java 18은 단기 지원 버전임에도 불구하고 다양한 혁신적인 기능과 성능 개선을 도입했습니다. 특히 UTF-8을 기본값으로 설정한 것과 간단한 웹 서버의 도입은 개발자들의 생산성을 크게 향상시킬 것으로 기대됩니다.

    이러한 변경사항들은 Java 개발자들에게 더 나은 도구와 기능을 제공하여 개발 경험을 개선하고 있습니다. Java 18의 새로운 기능들을 실험해보고, 여러분의 프로젝트에 적용해 보시기 바랍니다!

    Java의 지속적인 발전은 개발자 커뮤니티와 기업들에게 큰 혜택을 제공하고 있으며, 앞으로의 버전에서도 더 많은 혁신적인 기능들이 도입될 것으로 기대됩니다. 특히 incubator와 preview 기능들이 어떻게 발전하고 정식 기능으로 채택될지 주목해볼 만합니다.

    반응형

    'JAVA' 카테고리의 다른 글

    [JAVA] JAVA 20 주요 변경점  (1) 2024.09.25
    [JAVA] JAVA 19 주요 변경점  (0) 2024.09.24
    [JAVA] JAVA 17 주요 변경점  (0) 2024.09.22
    [JAVA] JAVA 16 주요 변경점  (0) 2024.09.21
    [JAVA] JAVA 15 주요 변경점  (0) 2024.09.20
Designed by Tistory.