[Java 기본 원리] 권장하는 자바, 스프링 버전은?
자바8, 자바17, 스프링3.0 버전의 특징을 집중적으로 다루려고 한다.
Java 8, 17의 주요 특징 💡
Java 8
- 함수형 프로그래밍 지원 위해 함수형 인터페이스, 람다식, Stream API 등 추가
- Null-safe한 작업을 위한 Optional API
- Date와 Time을 함께 처리하기 위한 LocalDateTime API 등이 추가
- LTS(Long Term Support) 버전 : 8년간 보안 업데이트와 버그 수정을 지원
Java 17
-
최신 LTS 버전 (현재 JDK 21 출시)
-
Spring Boot 3.0 이상 지원
- 텍스트 블록 기능 (
"""문자열"""
)- Python처럼 여러 줄 작성할 때 편리
- Record Data Class 지원불변 객체 생성
- immutable(불변) 객체 생성하는 새로운 유형의 클래스로 toString 이나 equals 비교 메소드 구현을 자동 제공 + 생성자도 당연히 제공
Java 17 선택 이유?
- LTS(Long Term Support) 버전 : 8년간 보안 업데이트와 버그 수정을 지원
- 마이그레이션 용이성 (높은 버전일수록 수월. 따라서 발전할 수록 마이그레이션 하기 수월)
- Spring boot 3.0 지원 -> 제일 큰 이유
- 텍스트 블록 기능
Spring Boot 3.0 특징 💡
핵심 변경사항
-
javax → jakarta 패키지 변경 (상표권)
-
Java 17 이상 지원
-
Spring Native 지원
특징
-
GraalVM 기반 Native Binary 지원
-
클라우드 환경 최적화
-
실행시간과 메모리 사용량 개선
-
AOT(Ahead-of-Time) 컴파일러 사용
-
JVM 없이 동작 가능 -> 큰 특징
-
Spring Boot 3.0 선택 이유?
-
마이그레이션 용이성 (높은 버전일수록 수월. 따라서 발전할 수록 마이그레이션 하기 수월) -> 제일 큰 이유
-
배포를 클라우드에 최적화 해보고 싶었기 때문(AOT 컴파일러 사용 목적) → Spring Native
댓글남기기