Hello

Java 8, Java 11, Java17 자바 버전별 특징

by 볼빵빵오춘기

버전에 대해서 알아본 이유

기존에 https://start.spring.io/ 에서 스프링부트 프로젝트를 생성하여 open하여 시작하였었다.

프로젝트를 생성할려고 보니 기존에 공부했던건 java 11버전 으로 하였는데 java11버전으로는 생성할 수 가 없었던 것!

그러다 자바 버전별 무슨 차이가 있길래 라는 생각이 들어 자바 버전별 특징을 찾아보기로 했다.

 

어떤 기준으로 버전을 선택할까?

버전 별 특징을 알아보기 전 많이 쓰고 있는 버전은 무엇일까?

개발자 에코시스템 현황.png

 

JetBrains: Developer Tools for Professionals and TeamsJava 프로그래밍 - 2023년도 개발자 에코시스템 현황 인포그래픽 를 보면 제일 많이 사용하고 있는 버전은 java8, 17,11을 많이 사용하고 있다.

java8, 17, 11 버전이 많이 사용되는 이유는 각 버전의 특징과 릴리즈 주기, 그리고 장기 지원(LTS)과 관련이 있다.

java/releases

 

https://www.java.com/releases/ 에서 보면 버전별 시작 시점과 종료 시점을 알 수 있다. 

https://start.spring.io/ 에서 새 프로젝트 생성 시

java 22, 21, 17로 생성가능하기에 이렇게 버전 3개를 봤다가

지원 종료 시점을 보니 java21은 2031년, java 17은 2029년 java11은 2926년 java8은 2030년이다.

버전 별 지원종료 시점이 이렇게가 현재 제일 긴 것을 확인할 수 있다.

추가로 버전별 LTS가 붙은 것은 Long Term Support 로 장기 지원한다는 의미이다.

하지만 21버전도 길지만 그럼에도 17을 사용하는 이유는 아마 안정성에 대해 확신때문이지 않을까 싶다.

 

Java 8, Java 11, Java 17이 많이 사용되는 이유는 각 버전의 특징과 릴리즈 주기, 그리고 장기 지원(LTS)과 관련이 있다.

각각의 주요 포인트는 아래와 같다.

 

버전별 특징

Java 8

  • 주요 특징
    • 람다 표현식: 자바 8은 람다 표현식을 도입하여 함수형 프로그래밍 스타일을 지원.
    • 스트림 API: 대용량 데이터 컬렉션을 처리하는 데 유용한 스트림 API를 제공.
    • 새로운 날짜와 시간 API:  직관적인 날짜와 시간 API를 제공.
    • 기본 메소드: 인터페이스에 메소드를 정의할 수 있게 하여 인터페이스의 유연성을 높임.

 

  • 사용 이유
    • 오랜 시간 동안의 안정성: 자바 8은 2014년에 출시되어 오랜 기간 사용되어 왔으며, 기업들이 안정적이고 성숙한 버전으로 인식.
    • 풍부한 기능: 새로운 기능들이 많이 추가되었고, 이는 많은 개발자들이 자바 8로 이전하게 만든 주요 이유.
    • 장기 지원(LTS): 자바 8은 LTS 버전으로, 오랜 기간 동안 지원과 업데이트가 제공.

 

Java 11

  • 주요 특징
    • 새로운 API: String, File, HTTP Client 등에서 새로운 API가 추가.
    • 런타임 개선: 런타임의 성능이 개선되고 새로운 GC(Garbage Collector)가 도입.
    • 모듈 시스템 개선: 자바 9에서 도입된 모듈 시스템이 개선되고 안정화.
    • 간결한 코드: var를 이용한 지역 변수 타입 추론을 통해 코드가 간결해짐.

 

  • 사용 이유
    • LTS 버전: 자바 11도 LTS 버전으로, 기업 환경에서 안정적이고 장기간 지원을 받을 수 있음.
    • 최신 기능과 안정성: 자바 11은 자바 8 이후의 많은 개선 사항을 포함하며, 최신 기능과 안정성을 제공.
    • 오라클의 지원 정책: 자바 11 이후 오라클은 LTS 버전에 대한 상용 지원을 제공하며, 많은 기업들이 이를 채택함.

 

Java 17

  • 주요 특징
    • 패턴 매칭: instanceof에 대한 패턴 매칭이 도입.
    • 레코드 클래스: 레코드를 통해 불변 데이터 객체를 간단하게 정의할 수 있음.
    • 새로운 API: 새롭게 추가된 API와 개선된 기능들이 포함됨.
    • 벡터 API: 고성능 벡터 연산을 위한 API가 도입됨.

 

  • 사용 이유
    • LTS 버전: 자바 17은 최신 LTS 버전으로, 장기 지원이 보장되어 기업들이 새로운 프로젝트에 사용하기 적합.
    • 최신 기능과 성능: 최신 자바의 모든 기능과 성능 개선 사항을 포함하고 있어, 새로운 애플리케이션 개발에 적합.
    • 미래 대비: 장기적인 관점에서 최신 LTS 버전을 사용하는 것은 기술 부채를 줄이고, 최신 기술을 사용할 수 있게 해줌.

 

정리하자면

  • Java 8 : 오랜 시간 동안 검증된 안정성과 많은 혁신적인 기능 덕분에 많이 사용.
  • Java 11 : 최신 LTS 버전으로서 Java 8 이후의 많은 개선 사항과 새로운 기능을 제공하여 인기를 끌었음.
  • Java 17 : 최신 LTS 버전으로, 최신 기능과 향상된 성능을 제공하며, 장기 지원이 보장되므로 새로운 프로젝트에 적합.

⇒ 이 세 버전은 각기 다른 시점에서의 장기 지원(LTS) 버전으로, 안정성과 기능 개선, 그리고 기업 환경에서의 지원과 관련된 이유로 많이 사용되고 있음!!

 

 

 

블로그의 정보

Hello 춘기's world

볼빵빵오춘기

활동하기