JAVA

[JAVA] JAVA 10 주요 변경점

민덕이 2024. 9. 15. 22:06
반응형

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

Java 10은 2018년 3월에 출시된 단기 지원 버전으로, 여러 가지 새로운 기능과 개선사항을 도입했습니다. 이번 포스트에서는 Java 10의 주요 변경사항들을 자세히 살펴보겠습니다.

1. 지역 변수 타입 추론 (var 키워드)

Java 10의 가장 큰 변화는 'var' 키워드의 도입입니다. 이를 통해 지역 변수의 타입을 명시적으로 선언하지 않아도 컴파일러가 자동으로 추론할 수 있게 되었습니다.

주요 특징:

  • 지역 변수에만 사용 가능합니다.
  • 초기화가 필요합니다.
  • 가독성을 높이고 불필요한 타입 선언을 줄여줍니다.

예시 코드:

var list = new ArrayList<String>();  // ArrayList<String> 타입으로 추론
var number = 42;  // int 타입으로 추론
var text = "Hello, Java 10";  // String 타입으로 추론

2. 애플리케이션 클래스-데이터 공유

Java 10에서는 애플리케이션 클래스를 공유 아카이브에 배치할 수 있게 되었습니다.

주요 특징:

  • 애플리케이션의 시작 시간을 개선합니다.
  • 메모리 사용량을 줄입니다.
  • 여러 JVM 인스턴스 간에 클래스 데이터를 공유할 수 있습니다.

3. G1 가비지 컬렉터의 병렬 Full GC

G1 가비지 컬렉터의 성능이 개선되었습니다.

주요 특징:

  • Full GC를 병렬로 수행할 수 있게 되었습니다.
  • 최악의 경우 지연 시간이 개선되었습니다.
  • 대규모 힙을 사용하는 애플리케이션의 성능이 크게 향상됩니다.

4. 가비지 컬렉터 인터페이스

가비지 컬렉터 코드의 관리를 위한 새로운 인터페이스가 도입되었습니다.

주요 특징:

  • 다양한 가비지 컬렉터의 소스 코드 격리를 개선합니다.
  • 새로운 가비지 컬렉터의 개발과 유지보수가 용이해집니다.

5. 수정 불가능한 컬렉션 생성을 위한 API

컬렉션 API에 새로운 메서드들이 추가되었습니다.

주요 메서드:

  • List.copyOf(), Set.copyOf(), Map.copyOf()
  • Collectors.toUnmodifiableList(), toUnmodifiableSet(), toUnmodifiableMap()

예시 코드:

List<String> original = Arrays.asList("a", "b", "c");
List<String> copy = List.copyOf(original);

List<String> unmodifiable = Stream.of("x", "y", "z")
    .collect(Collectors.toUnmodifiableList());

6. Optional.orElseThrow() 메서드

Optional 클래스에 새로운 메서드가 추가되었습니다.

주요 특징:

  • get() 메서드의 새로운 대안으로 사용됩니다.
  • 값이 없을 때 NoSuchElementException을 발생시킵니다.

예시 코드:

Optional<String> optional = Optional.empty();
String value = optional.orElseThrow();  // NoSuchElementException 발생

7. 시간 기반 릴리스 버전 관리

Java SE 플랫폼 및 JDK 릴리스를 위한 새로운 버전 문자열 체계가 도입되었습니다.

주요 특징:

  • 릴리스 주기와 버전 번호의 관계가 더욱 명확해졌습니다.
  • $FEATURE.$INTERIM.$UPDATE.$PATCH 형식을 따릅니다.

8. Docker 컨테이너 인식 개선

Java 10은 Docker 컨테이너 환경을 더 잘 인식하도록 개선되었습니다.

주요 특징:

  • 컨테이너의 CPU 및 메모리 제한을 인식합니다.
  • 컨테이너 내에서 실행될 때 더 나은 성능을 제공합니다.

결론

Java 10은 단기 지원 버전임에도 불구하고 개발자 생산성과 애플리케이션 성능 향상에 초점을 맞춘 여러 중요한 변경사항을 도입했습니다. 특히 var 키워드의 도입은 코드 작성 방식에 큰 변화를 가져왔습니다.

이러한 변경사항들은 Java 생태계를 더욱 강력하고 효율적으로 만들어주고 있습니다. Java 10의 새로운 기능들을 적극 활용하여 더 나은 코드를 작성하고, 더 효율적인 애플리케이션을 개발하시기 바랍니다!

반응형