Java 212023년 9월 19일 정식 출시최소 8년 간의 장기 지원Spring Boot 3.2.x, Spring Framework 6.0.x, 6.1.xJava 21 을 선택한 이유Spring Boot 3.0 버전부터는 java 17 이상을 지원합니다. Virtual Thread의 도입으로 인한 성능 비교를 위하여 선택하였습니다.추가된 기능1. Sequenced Collections- 일련의 순서를 갖는 collection에서 사용되는 연산들을 일관된 형식으로 제공하고자 새로운 interface를 도입하였습니다.- 정렬과 역정렬에 대한 표준화된 API를 제공합니다.SequencedCollection: 양쪽 끝에서 공통 작업을 지원하며, 정렬과 역정렬을 지원합니다.interface SequencedCo..
Java 172021년 릴리즈애플 M1 및 이후 프로세서 탐재 제품군에 대한 정식 지원2029년 9월까지 지원합니다.Spring Boot 3.2.x, Spring Framework 6.0.x, 6.1.xJava 17 을 선택한 이유Spring Boot 3.0 버전부터는 java 17 이상을 지원합니다. 가비지 컬렉션 알고리즘이 개선되어 메모리 관리 효율이 향상되었습니다. -> ZGC가 JDK15부터 정식으로 인정되어 반영되었습니다.패턴 매칭, 레코드, Sealed 클래스 등과 같은 새로운 언어 기능이 도입되어 개발자들의 생산성이 향상되었습니다.추가된 기능1. 향상된 의사 난수 생성기- 이전 버전의 JDK: 여러 클래스의 의사 난수 생성기가 있지만, 공통 인터페이스가 없어 다른 생성기 구현 클래스로 교체하..
Java 11 Open JDK와 Oracle JDK를 통합한 버전으로, Oracle JDK가 구독형 유료 모델로 전환되었습니다.2026년 9월까지 지원합니다.Spring Boot 2.7.x, Spring Framework 5.3.x추가된 기능1. 람다 지역변수 var 키워드- 데이터 유형을 지정하지 않고, 변수를 선언하고 정의할 수 있으며 컴파일러는 할당된 데이터 유형에 따라 데이터 유형을 결정하게 됩니다.(@NonNull var s1, @Nullable var s2) -> s1 + s2 2. 새로운 HTTPClient API- Java HttpClient API는 최신 HTTP 표준의 클라이언트를 구현하며, 동기 및 비동기 프로그래밍 모델인 HTTP/1.1 및 HTTP/2를 지원합니다.- 기본적으로 H..
LTS 버전LTS(Long Term Support) 버전이란, 장기간에 걸쳐 지원을 해주겠다는 뜻으로, 출시 이후 8년간 보안 업데이트와 버그 수정을 지원해줍니다.반면, non-LTS버전은 6개월 간격으로 출시되는데, 이러한 버전들은 짧은 기간만 해당 버전을 지원해줍니다.Java 8오라클이 java를 인수한 후 첫번째 LTS 출시 버전으로, 32비트를 지원하는 공식적인 마지막 버전입니다.유로버전(Oracle JDK)와 무료버전(Open JDK)로 나뉩니다.2025년에 지원을 종료할 예정이었지만, 아직까지도 많은 사용자가 java 8 버전을 사용하고 있기 때문에 2030년 12월까지 연장되었습니다.Spring Boot 2.7.x, Spring Framework 5.3.xJava 8을 선택하는 이유이미 많은..
스프링 부트에서 가상 스레드를 지원하기 위한 작업가상 스레드 사용 여부 프로퍼티 추가spring-boot-autoconfigure 모듈의 spring-configuration-metadata.json에 가상 스레드를 지원하기 위한 프로퍼티가 추가되었다.{ "name" : "spring.threads.virtual.enabled", "type" : "java.lang.Boolean", "description": "Whether to use virtual threads.", "defaultValue": false},따라서 해당 프로퍼티 값을 true로 설정하면 스프링 부트에서 가상 스레드를 사용할 수 있다.spring.threads.virtual.enabled=true 스레드 모델 Enum과 Conditio..
[Java] Virtual Thread우아한 테크 세미나 [Java의 미래, Virtual Thread]를 보고 정리한 내용입니다.2018년 Project Loom으로 시작된 경량 스레드 모델2023년 JDK 21에 정식 feature로 포함장점1. 스레드 생성 및 스케줄링 비용이 기존 스레드 보다 저렴기존 스레드기존 자바 스레드는 생성 비용이 크다스레드 풀: 자바의 스레드 생성과 스케줄링 비용이 크기 때문에 미리 여러 개의 스레드를 만들어 놓고 요청이 올 때마다 스레드를 사용사용 메모리 크기가 크다 - 최대 2MB까지OS에 의해 스케줄링스레드 생성/소멸시 항상 OS와 통신해야 하기 때문에 System Call 발생 ⇒ 시스템콜 오버헤드 발생virtual thread생성 비용이 작다스레드 풀 개념이 존재..