Java 8, Java 11, Java17 자바 버전별 특징
by 볼빵빵오춘기버전에 대해서 알아본 이유
기존에 https://start.spring.io/ 에서 스프링부트 프로젝트를 생성하여 open하여 시작하였었다.
프로젝트를 생성할려고 보니 기존에 공부했던건 java 11버전 으로 하였는데 java11버전으로는 생성할 수 가 없었던 것!
그러다 자바 버전별 무슨 차이가 있길래 라는 생각이 들어 자바 버전별 특징을 찾아보기로 했다.
어떤 기준으로 버전을 선택할까?
버전 별 특징을 알아보기 전 많이 쓰고 있는 버전은 무엇일까?
JetBrains: Developer Tools for Professionals and TeamsJava 프로그래밍 - 2023년도 개발자 에코시스템 현황 인포그래픽 를 보면 제일 많이 사용하고 있는 버전은 java8, 17,11을 많이 사용하고 있다.
java8, 17, 11 버전이 많이 사용되는 이유는 각 버전의 특징과 릴리즈 주기, 그리고 장기 지원(LTS)과 관련이 있다.
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) 버전으로, 안정성과 기능 개선, 그리고 기업 환경에서의 지원과 관련된 이유로 많이 사용되고 있음!!
'👩🏻💻 About 프로그래밍 > ect' 카테고리의 다른 글
@RestController vs @Controller (2) | 2024.07.15 |
---|---|
어노테이션 역할과 사용 용도 (0) | 2024.07.15 |
http 상태에러 401 Unauthorized vs 403 Forbidden (0) | 2024.07.13 |
HTTP 상태 코드의 구조와 종류 (0) | 2024.07.13 |
프레임워크 vs 라이브러리 vs API (0) | 2024.07.03 |
블로그의 정보
Hello 춘기's world
볼빵빵오춘기