본문 바로가기

소개

오라클 JDK 21 LTS 릴리스에는 다양한 기능 추가됐습니다. 오라클의 최신 Java 개발 키트(JDK)를 구현한 Java 21이 출시되었습니다. 성능 개선, 안정성 향상 및 보안 업그레이드에 중점을 둔 장기 지원 릴리스(LTS)입니다. LTS 릴리스인 JDK 21은 오라클로부터 8년간 지원을 받게 됩니다. 또한 오라클은 "최소" 2032년 1월까지 Java 11에 대한 지원을 제공할 것이라고 발표했습니다. 오라클의 Java SE 제품 관리 디렉터인 샤랏 찬더는 블로그 게시물에서 8년 연장은 "Java 에코시스템의 고객 피드백"에 대한 응답이라고 말했습니다. 오라클은 라스베가스에서 열린 오라클 클라우드 월드 컨퍼런스에서 이 릴리스를 발표했습니다.

 

상세내용

이번 릴리스에는 프로젝트 앰버(문자열 템플릿, 레코드 패턴, 스위치 패턴 매칭, 명명되지 않은 패턴 및 변수, 명명되지 않은 클래스 및 인스턴스 메인 메서드), 프로젝트 파나마(외부 함수 및 메모리 API, 벡터 API), 프로젝트 룸(가상 스레드, 범위 지정 값, 구조적 동시성), 세대 ZGC(Z 가비지 컬렉션 확장을 통한 앱 성능 개선) 등 현재 진행 중인 4개의 OpenJDK 작업의 기능이 구현되어 있습니다. 이 릴리스에는 유지 관리 및 사용 중단 기능(32비트 x86 포트 제거, 에이전트의 동적 로딩 비활성화 준비)도 포함되어 있습니다. 2017년에 오라클 Java 플랫폼 그룹의 수석 아키텍트인 마크 라인홀드가 제안한 6개월 릴리스 주기를 통해 제공되는 12번째 기능 릴리스입니다. "이러한 수준의 예측 가능성을 통해 개발자는 예상되는 개선 사항이 꾸준히 제공되므로 혁신 도입을 쉽게 관리할 수 있습니다."라고 챈더는 포스팅에서 언급했습니다. 

"Java는 전 세계 조직과 수백만 명의 개인이 사용하는 강력하고 확장 가능하며 안전한 애플리케이션 개발을 위해 계속해서 선택되는 언어이자 플랫폼입니다."라고 오라클 Java 플랫폼 수석 부사장이자 OpenJDK 관리위원회 의장인 조지 사브는 성명에서 말했습니다. "Java 21의 새로운 개선 사항을 통해 개발자는 이전보다 훨씬 더 빠르게 더 나은 애플리케이션을 구축할 수 있습니다. 또한 고객이 자신의 속도에 맞춰 마이그레이션할 수 있도록 최소 8년간 상용 지원이 제공될 것입니다."

오라클은 거의 모든 발표, 블로그 게시물, 보도 자료에서 Java를 "세계 최고의 프로그래밍 언어 및 개발 플랫폼"이라고 부릅니다. 개발자 중심 분석 회사인 RedMonk의 수석 애널리스트이자 공동 설립자인 스티븐 오그래디에 따르면 여기에는 그럴 만한 이유가 있습니다.

"수많은 언어가 유통되고 있음에도 불구하고 오늘날 자바는 여전히 어디에나 존재합니다."라고 오그래디는 성명서에서 말합니다. "세상이 진화함에 따라 Java의 적응 능력은 개발자에게 가치를 제공하는 데 계속해서 핵심적인 역할을 할 수 있도록 도울 것입니다."

이번 릴리스에는 15개의 JEP(JDK 개선 제안)가 구현되어 있는데, 대부분의 ADTmag 독자가 알고 있듯이 이 제안은 JSR(Java 커뮤니티 프로세스)의 공식 사양 요청인 JSR(Java 사양 요청)과 유사합니다. JEP는 무료 오픈 소스 구현에 기여하는 OpenJDK 커미터가 Java 플랫폼, 표준 버전(Java SE)을 보다 비공식적으로 작업할 수 있도록 지원합니다. 오라클은 "Java 21 릴리스는 오라클 엔지니어와 전 세계 Java 개발자 커뮤니티의 다른 구성원들이 OpenJDK 및 Java 커뮤니티 프로세스를 통해 광범위하게 협업한 결과물"이라고 설명합니다.

 

대표적 기능

- 가상 스레드: Java 플랫폼에 경량 가상 스레드를 도입하여 처리량이 많은 동시 애플리케이션을 작성, 유지 관리 및 관찰하는 프로세스를 대폭 간소화합니다. 개발자는 가상 스레드를 통해 동시 애플리케이션의 문제를 쉽게 해결하고, 디버그하고, 프로파일링할 수 있으며, 기존 JDK 도구 및 기술을 사용하여 확장할 수 있으므로 애플리케이션 개발 속도를 높일 수 있습니다.
- 범위 지정 값(미리 보기): 스레드 내에서 또는 스레드 간에 변경 불가능한 데이터를 공유할 수 있습니다. 이는 개발자의 프로젝트의 사용 편의성, 이해도, 견고성 및 성능을 향상시키는 데 도움이 됩니다.
- 구조적 동시성(프리뷰): 구조적 동시성을 위한 API를 도입하여 동시 프로그래밍을 간소화함으로써 스레드 누수 및 취소 지연과 같이 취소 및 종료로 인해 발생하는 일반적인 위험을 제거하고 동시 코드의 가관측성을 개선할 수 있는 동시 프로그래밍 스타일을 촉진합니다. 이를 통해 개발자는 오류 처리 및 취소를 간소화하고, 안정성을 개선하며, 통합 가시성을 강화할 수 있습니다.

 

Java 프로그래밍에서 인코딩 및 디코딩 이야기

Java 프로그래밍에서 인코딩 및 디코딩은 데이터를 한 형식에서 다른 형식으로 변환하는 프로세스를 나타냅니다. 이러한 프로세스는 텍스트, 이진 데이터 또는 개체를 처리할 때

code.who494.com

 

 

자바 DATA TYPE의 BYTE 크기 및 범위

JAVA 기본적인 데이터 타입별 byte size 및 숫자 범위를 확인해 봐야 할 필요가 있습니다. 외부에서 들어오는 byte형식의 데이터는 자바 기본 타입으로 형변환이 필요한데 원천이되는 byte가 시스템별

code.who494.com

 

 

JAVA 스트림에 관한 이야기

자바에서 가장 기본적인 스트림은 InputStream과 OutputStream 입니다. 스트림의 목적은 데이터 이동 입니다. 원하는 목적지로 이동시키기위해 스트림을 구현한 객체를 사용합니다. 모든 프로그램의

code.who494.com