자바 9 - 초보자를 위한 종합 가이드: 새로운 기능

안녕하세요, 자바 개발자 꿈나이들! 자바 9의 새로운 기능을 탐험하는 흥미로운 여정에 함께할 수 있어 기쁩니다. 자바를 가르쳐온 지 벌써 많은 해가 지났지만, 이 버전은 정말로 게임 체인저적인 개선 사항을 가져왔습니다. 그럼 이 기능들을 함께 탐험해 보겠습니다!

Java 9 - New Features

자바 9 소개

새로운 기능에 들어가기 전에, 자바 9이 무엇인지 잠시 이해해 보겠습니다. 2017년 9월에 출시된 자바 9은 코딩을 더 효율적이고 즐겁게 만드는 여러 개선 사항을 도입했습니다. 마치 새로운 도구가 가득한 반짝이는 도구 상자를 얻은 것 같은 느낌입니다!

모듈 시스템

자바 9에서 가장 중요한 추가 사항 중 하나는 모듈 시스템입니다. 또는 프로젝트 Jigsaw라고도 합니다. 지금 당신이 생각할 것은 "모듈? 그게 복잡해 보이네!"하지만 걱정하지 마세요, 사실 코드를 더 잘 정리하는 훌륭한 방법입니다.

모듈이란?

모듈을 코드의 컨테이너로 생각해 보세요. 모든 것이 제자리에 있는 잘 정리된 옷장 같은 것입니다. 각 모듈은 다음을 포함합니다:

  1. 이름
  2. 패키지 세트
  3. 필요한 것들의 목록 (의존성)
  4. 다른 모듈에게 제공하는 것들의 목록

간단한 예를 보겠습니다:

module com.myapp {
requires java.sql;
exports com.myapp.api;
}

이 예제에서 우리는 com.myapp이라는 이름의 모듈을 만들고 있습니다. java.sql 모듈을 필요로 하며 (데이터베이스 기능이 필요하기 때문에) com.myapp.api 패키지를 내보내고 있습니다 (다른 모듈이 사용할 수 있게 하기 위해).

REPL (읽고-평가하고-출력하는 루프)

자바 9는 JShell이라는 REPL 도구를 도입했습니다. "REPL이 뭐죠?"라고 궁금해할 수도 있습니다. REPL은 코드 조각을 입력하고 즉각적인 응답을 받을 수 있는 자바와의 대화를 상상해 보세요!

JShell을 시작하려면 명령 프롬프트에 jshell을 입력하세요. 간단한 예를 시도해 보겠습니다:

jshell> System.out.println("Hello, Java 9!")
Hello, Java 9!

이렇게 코드를 전체 프로그램 없이 실행할 수 있네요! 아이디어를 테스트하거나 새로운 개념을 배우는 데 완벽합니다.

개선된 JavaDocs

문서화는 흥미롭지 않게 들릴 수 있지만, 좋은 문서화는 개발자의 최고의 친구입니다. 자바 9은 검색 기능과 HTML5 지원을 추가하여 JavaDocs를 더욱 개선했습니다.

컬렉션 팩토리 메서드

자바에서 컬렉션을 생성하는 것이 더 쉬워졌습니다! 자바 9은 컬렉션에 대한 새로운 팩토리 메서드를 도입했습니다. 불변 리스트를 생성하는 방법을 보겠습니다:

List<String> fruits = List.of("Apple", "Banana", "Cherry");
System.out.println(fruits);

출력:

[Apple, Banana, Cherry]

이렇게 하면 이전 방식보다 훨씬 깨끗하고 간결합니다. 긴장감 넘치는 ArrayList 생성과 요소를 하나씩 추가하는 일이 필요 없습니다!

인터페이스의 비밀 메서드

자바 9은 인터페이스에 비밀 메서드를 허용합니다. 이것은 약간 어렵게 들릴 수 있지만, 예제를 보면 이해가 됩니다:

public interface MyInterface {
private static void privateMethod() {
System.out.println("This is a private method");
}

default void publicMethod() {
privateMethod();
System.out.println("This is a public method");
}
}

이 예제에서 privateMethod()은 인터페이스 내에서만 사용할 수 있습니다. 인터페이스만 알고 있는 비밀적인 도우미처럼입니다!

스트림 API 개선

자바 8에서 도입된 스트림 API는 자바 9에서 더욱 개선되었습니다. takeWhile() 메서드는 하나의 새로운 추가 기능입니다. 그것을 어떻게 사용하는지 보겠습니다:

List<Integer> numbers = List.of(2, 4, 6, 8, 9, 10, 12);
List<Integer> evenNumbers = numbers.stream()
.takeWhile(n -> n % 2 == 0)
.collect(Collectors.toList());
System.out.println(evenNumbers);

출력:

[2, 4, 6, 8]

이 코드는 짝수가 나올 때까지 리스트에서 숫자를 가져옵니다. 홀수(9)가 나오면 중지합니다. 정말 멋지죠?

Try-With-Resources 개선

자바 7에서 도입된 try-with-resources는 자바 9에서 더욱 개선되었습니다. 이제 try-with-resources 문장에서 최종이나 효과적으로 최종 변수를 사용할 수 있습니다. 예제를 보겠습니다:

BufferedReader reader = new BufferedReader(new FileReader("file.txt"));
try (reader) {
// Use the reader
} catch (IOException e) {
e.printStackTrace();
}

이렇게 하면 코드가 더 깨끗하고 가독성이 높아집니다. 방이 정리되는 것처럼, 모든 것이 더 나아 보입니다!

결론

우리는 자바 9이 제공하는 것의 표면에 불과합니다. 프로세스 API 개선, 새로운 버전 관리 체계, HTTP/2 클라이언트와 같은 많은 다른 기능들이 있습니다. 자바 여정을 계속하면서 이러한 기능들이 코딩 생활을 더 쉽고 즐겁게 만드는 방법을 발견할 것입니다.

기억해 두세요, 배우는 최고의 방법은 행동하는 것입니다. IDE를 열고 JShell을 시작하여 이 새로운 기능들로 실험해 보세요. 실수를 두려워 말아요 - 우리는 그것을 통해 배우고 성장합니다.

행복한 코딩, 미래의 자바 전문가 여러분! ??‍??‍?

Credits: Image by storyset