JAVA

[JAVA] JAVA 13 주요 변경점

민덕이 2024. 9. 18. 22:05
반응형

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

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

1. 텍스트 블록 (Preview 기능)

Java 13에서는 여러 줄의 문자열을 쉽게 작성할 수 있는 텍스트 블록 기능이 preview로 도입되었습니다.

주요 특징:

  • 삼중 따옴표(""")로 둘러싸인 형태로 사용
  • 문자열 내의 줄바꿈과 들여쓰기가 그대로 유지됨
  • 가독성 향상 및 이스케이프 문자 사용 감소

예시 코드:

String html = """
              <html>
                  <body>
                      <p>Hello, World!</p>
                  </body>
              </html>
              """;

2. Switch 표현식 개선 (Preview 기능)

Java 12에서 preview로 도입된 switch 표현식이 개선되었습니다.

주요 특징:

  • yield 키워드를 사용하여 값을 반환할 수 있음
  • 복잡한 로직을 포함하는 case에서 유용

예시 코드:

int result = switch (day) {
    case MONDAY, FRIDAY, SUNDAY -> 6;
    case TUESDAY                -> 7;
    case THURSDAY, SATURDAY     -> 8;
    case WEDNESDAY              -> 9;
    default -> {
        int lengthOfDay = day.toString().length();
        yield lengthOfDay;
    }
};

3. Socket API 재구현

java.net.Socket 및 java.net.ServerSocket API의 기본 구현이 개선되었습니다.

주요 특징:

  • 유지보수성과 디버깅 용이성 향상
  • 새로운 NioSocketImpl 클래스로 구현
  • 기존 코드와의 호환성 유지

4. 동적 CDS 아카이브

애플리케이션 클래스-데이터 공유(CDS) 기능이 확장되었습니다.

주요 특징:

  • 애플리케이션 실행 시 동적으로 CDS 아카이브 생성 가능
  • 애플리케이션 시작 시간 단축 및 메모리 사용량 감소

5. ZGC 개선

Z Garbage Collector(ZGC)가 개선되어 사용하지 않는 메모리를 운영체제에 반환할 수 있게 되었습니다.

주요 특징:

  • 메모리 사용량 최적화
  • 장기 실행 애플리케이션의 성능 향상

6. String 클래스에 새로운 메서드 추가

String 클래스에 몇 가지 유용한 메서드가 추가되었습니다.

새로운 메서드:

  • formatted(): 문자열 포맷팅
  • stripIndent(): 여러 줄 문자열의 들여쓰기 제거
  • translateEscapes(): 이스케이프 시퀀스 해석

예시 코드:

String message = "Hello, %s!".formatted("World");
String stripped = "    Hello\n    World    ".stripIndent();
String translated = "Hello\\nWorld".translateEscapes();

7. NioSocketImpl 도입

PlainSocketImpl을 대체하는 새로운 소켓 구현체인 NioSocketImpl이 도입되었습니다.

주요 특징:

  • 성능 향상 및 코드 유지보수성 개선
  • 기존 네트워킹 코드와의 호환성 유지

8. FileSystems.newFileSystem() 메서드 추가

새로운 FileSystems.newFileSystem() 메서드가 추가되어 파일 시스템 작업이 더욱 편리해졌습니다.

결론

Java 13은 단기 지원 버전임에도 불구하고 여러 흥미로운 기능과 성능 개선을 도입했습니다. 특히 텍스트 블록과 switch 표현식의 개선은 코드의 가독성과 표현력을 크게 향상시켰습니다.

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

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

반응형