반응형
🚀 Java 11 vs 17 vs 21: 주요 변화와 코드로 살펴보기
자바(Java)는 지속적으로 새로운 기능과 성능 개선을 선보이며 발전하고 있습니다. 이번 글에서는 Java 11, Java 17, 그리고 최신 버전 Java 21의 핵심 기능을 간단한 코드 예제와 함께 비교해보겠습니다.
📌 Java 11 (LTS)
Java 11은 현재 가장 널리 쓰이는 LTS(Long-Term Support) 버전입니다.
🔑 주요 특징
- var 키워드 활용 확장
- HttpClient API 정식 도입
- Lambda 표현식의 간결화
📗 코드 예시: HttpClient 사용하기
import java.net.http.*;
import java.net.URI;
public class Java11HttpClientExample {
public static void main(String[] args) throws Exception {
var client = HttpClient.newHttpClient();
var request = HttpRequest.newBuilder()
.uri(URI.create("https://example.com"))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
✅ Java 11의 좋은 점
- 간단하고 명료한 HTTP 요청 코드 작성 가능
- 별도의 외부 라이브러리 없이 표준 라이브러리로 웹 요청 수행 가능
📌 Java 17 (LTS)
Java 17은 생산성과 유지보수성을 크게 높인 최신 LTS입니다.
🔑 주요 특징
- Switch 표현식(Switch Expressions)
- 텍스트 블록(Text Blocks)
- Record 클래스(불변 데이터 클래스) 추가
📗 코드 예시: Switch 표현식과 Record 클래스 활용하기
public class Java17Example {
record Person(String name, int age) {}
public static void main(String[] args) {
Person person = new Person("John", 30);
String description = switch (person.age()) {
case 20 -> "Young";
case 30 -> "Adult";
default -> "Unknown";
};
System.out.printf("%s is %s.\n", person.name(), description);
}
}
✅ Java 17의 좋은 점
- Switch 문이 더욱 간결하고 표현력이 높아짐
- Record 클래스 덕분에 간단한 데이터 객체를 쉽게 정의 가능
- 텍스트 블록을 통해 다중 라인 문자열을 보다 편리하게 처리 가능
📌 Java 21 (LTS)
Java 21은 최신 LTS 버전으로서, 가상 스레드(Virtual Threads)와 같은 혁신적인 기능을 제공합니다.
🔑 주요 특징
- 가상 스레드(Virtual Threads) 도입
- 패턴 매칭 기능의 확장(Pattern Matching for switch)
- 순서가 보장되는 컬렉션(Sequenced Collections) 제공
📗 코드 예시: 가상 스레드와 패턴 매칭 활용하기
public class Java21Example {
public static void main(String[] args) throws InterruptedException {
// 가상 스레드 사용 예시
Thread thread = Thread.ofVirtual().start(() -> {
System.out.println("Hello from Virtual Thread!");
});
thread.join();
// 패턴 매칭 사용 예시
Object obj = "Hello, Java 21";
String result = switch (obj) {
case String s when s.length() > 5 -> "긴 문자열입니다.";
case Integer i -> "숫자: " + i;
default -> "알 수 없는 타입입니다.";
};
System.out.println(result);
}
}
✅ Java 21의 좋은 점
- 가상 스레드를 통해 훨씬 효율적인 병렬 처리가 가능해짐
- 패턴 매칭이 더 강력해지고, 직관적인 코드 작성 가능
🎯 간단한 기능 비교표
기능Java 11Java 17Java 21
HttpClient API | ✅ | ✅ | ✅ |
var 키워드 | ✅ | ✅ | ✅ |
Switch Expressions | ❌ | ✅ | ✅ |
Record 클래스 | ❌ | ✅ | ✅ |
Text Blocks | ❌ | ✅ | ✅ |
가상 스레드(Virtual Threads) | ❌ | ❌ | ✅ |
패턴 매칭 (Pattern Matching) | ❌ | ❌ | ✅ |
✨ 결론
- Java 11은 안정적인 환경과 기존 시스템의 호환성에 적합합니다.
- Java 17은 코드 가독성과 유지 보수성을 극대화하고자 하는 개발자에게 유용합니다.
- Java 21은 최신 기술과 높은 성능을 중시하는 프로젝트에 가장 이상적인 선택입니다.
반응형
'Java > Basic' 카테고리의 다른 글
Filter(필터)란? (0) | 2025.03.24 |
---|---|
HttpServletResponse와 getOutputStream() 정리 (0) | 2025.03.24 |
Spring boot vs Nestjs (0) | 2023.07.25 |
Spring Cloud MSA(Microservices Architecture)에서 Eureka 장/단점 (0) | 2023.07.25 |
Excel download java spring (0) | 2023.07.25 |