[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 특징 💡

핵심 변경사항

  1. javax → jakarta 패키지 변경 (상표권)

  2. Java 17 이상 지원

  3. Spring Native 지원

    특징

    • GraalVM 기반 Native Binary 지원

    • 클라우드 환경 최적화

    • 실행시간과 메모리 사용량 개선

    • AOT(Ahead-of-Time) 컴파일러 사용

    • JVM 없이 동작 가능 -> 큰 특징



Spring Boot 3.0 선택 이유?

  • 마이그레이션 용이성 (높은 버전일수록 수월. 따라서 발전할 수록 마이그레이션 하기 수월) -> 제일 큰 이유

  • 배포를 클라우드에 최적화 해보고 싶었기 때문(AOT 컴파일러 사용 목적) → Spring Native

댓글남기기