JDK 개선 제안서 읽는 방법 - Inside Java 뉴스캐스트 #74
이번 Inside Java 뉴스캐스트 에피소드에서는 Java 프로그래밍 언어의 변경사항과 발전을 소통하기 위해 OpenJDK에서 사용하는 JDK 개선 제안서(JEPs) 읽는 방법을 설명합니다. JEP의 구조, 상태 변화, 그리고 중요한 내용들을 알아보세요!
JDK 개선 제안서 읽는 방법 - Inside Java 뉴스캐스트 #74
이번 Inside Java 뉴스캐스트 에피소드에서는 Java 프로그래밍 언어의 변경사항과 발전을 소통하기 위해 OpenJDK에서 사용하는 JDK 개선 제안서(JEPs) 읽는 방법을 설명합니다. JEP의 구조, 상태 변화, 그리고 중요한 내용들을 알아보세요!
데이터 소스를 스트림으로 변환하기
데이터 소스를 스트림으로 변환하는 방법을 알아보세요! 외부 리소스에서 데이터를 가져올 때, filter()와 map() 함수를 사용하여 데이터를 선택하고 변형할 수 있습니다. 이 기술은 데이터 처리를 효율적으로 만들어 줍니다.
JDK 23의 G1/병렬/직렬 GC 변경 사항
JDK 23에서는 G1, 병렬, 직렬 가비지 컬렉터의 성능 개선과 효율성 증가가 이루어졌습니다. 특히, 대용량 힙과 높은 할당률을 처리하는 능력이 향상되었으며, 미래 JDK 릴리스에서의 추가 개선 사항에 대한 흥미로운 전망도 제시됩니다.
Java Visual Studio Code 확장 프로그램 업데이트 발표
Java Visual Studio Code 확장 프로그램이 새로운 업데이트를 발표했습니다. 이번 업데이트에는 JDK 23 초기 접근 지원, JavaDoc 문서에 마크다운 사용 지원, 빌드 도구가 필요 없는 프로젝트의 의존성 관리 기능, 그리고 플러그인 캐시 데이터 삭제 옵션이 포함되어 있습니다. 이 업데이트로 개발자들의 작업 효율이 더욱 향상될 것입니다.
JDK 22에서 사용 중단된 메소드 호출을 감지하는 JFR 이벤트
JDK 22에서는 사용 중단된 메소드 호출을 감지하기 위해 JFR에 새로운 이벤트가 추가되었습니다. 이는 예를 들어, 보안 관리자와 관련된 메소드처럼 제거될 메소드에 의존하는 서드파티 라이브러리를 파악하는 데 주로 사용됩니다.
기본적으로 보장되는 무결성 - Inside Java Newscast #73
이 기사는 Java 플랫폼의 무결성이 얼마나 중요한지에 대해 설명합니다. 특히, deep reflection, Unsafe, 네이티브 코드, 에이전트와 같은 기능들이 Java의 약속을 깨뜨릴 수 있습니다. OpenJDK는 이러한 기능들을 기본적으로 제한하고, 필요한 경우 명령줄 옵션을 통해 활성화할 수 있도록 하여 보안과 성능을 보장합니다.
자바 개념을 활용한 클라우드 컴퓨트 인스턴스 구축
이 글에서는 자바와 Pulumi SDK를 사용하여 Oracle Cloud Infrastructure (OCI) 인스턴스를 프로그래밍 방식으로 구축하는 방법을 자세히 설명합니다. 필요한 설정, 구성 및 코딩 패턴을 통해 OCI 컴퓨트 인스턴스를 제공하는 과정을 배울 수 있습니다.
프로젝트 룸 - 구조화된 동시성
이 문서는 구조화된 동시성에 대해 설명하며, 이는 프로젝트 룸의 자바 가상 머신(JVM) 기능으로, 동시성과 확장성을 개선하는 것을 목표로 합니다. 관련 작업 그룹을 하나의 작업 단위로 취급하여 신뢰성을 높이고 관찰 가능성을 향상시킵니다.
JDK 23에서 유니코드 업데이트: COMPAT 로케일 제공자 제거 안내
JDK 23에서는 오래된 로케일 데이터를 제거하고, java.locale.providers 설정의 JRE 또는 COMPAT 옵션이 더 이상 작동하지 않습니다. 이전 데이터를 사용하는 프로젝트는 가능한 빨리 CLDR로 전환할 것을 권장합니다. 대체 방법으로는 사용자 정의 포맷터 생성 또는 로케일 데이터 제공자 구현이 있습니다.
적절한 JDK 버전 선택하기: 비공식 가이드
자바 사용자라면 보안과 성능 향상을 위해 항상 지원되는 버전을 사용하고 중요 보안 업데이트를 지체 없이 적용하는 것이 좋습니다. 자세한 정보는 링크를 통해 확인할 수 있습니다.
JDK23에서 재정의된 Subject.getSubject API에 대한 안내
JDK 17에서 보안 관리자가 폐지 예정으로 지정된 이후, Subject.getSubject API를 포함한 여러 API가 영향을 받았습니다. JDK 23에서는 보안 관리자의 최종 제거에 대비하여 Subject.getSubject의 동작이 변경되었으며, 이에 따라 새로운 API로의 전환을 강력히 권장합니다.
Inside Java 뉴스레터: 데이터 지향 프로그래밍 특집
2024년 6월호 Inside Java 뉴스레터에서는 데이터 지향 프로그래밍에 대한 종합적인 시리즈를 소개합니다. 또한 커뮤니티 이벤트와 수상 소식, 인도의 Oracle Java 품질 및 인프라 팀 프로필을 다루고 있어요. 이 뉴스레터는 아카이브 탐색, 친구에게 보내기 기능, 구독 옵션을 제공합니다.
자바와 인공지능? - Inside Java Newscast #72
자바가 인공지능(AI) 개발에서 어떤 역할을 하는지에 대해 다룬 기사입니다. 특히, 기계 학습 모델 개발, AI 중심 제품 개발, 대규모 프로젝트에 AI 기능 추가 등 세 가지 주요 분야에서 자바의 위치와 전망을 설명하고 있습니다. 자바는 특히 대규모 프로젝트에 AI 기능을 추가하는 데 강점을 보이며, 이 분야에서 더욱 강해질 것으로 기대됩니다.
2024년 봄, 자바 언어의 미래
이 기사에서는 자바 프로그래밍 언어의 최근 및 예정된 변화에 대해 살펴봅니다. 저자 개빈 비어만은 자바의 빠른 진화를 강조하며 내년 이후 개발자들이 사용하게 될 새로운 기능들에 대해 설명합니다. 자세한 내용과 자료는 쇼노트에서 확인하세요.
데이터 지향 프로그래밍을 버전 1.1로 업데이트하는 이유
데이터 지향 프로그래밍의 원칙을 버전 1.1로 업데이트한 이유는 데이터의 불변성, 투명성, 그리고 연산의 분리를 더 명확히 하기 위해서입니다. 새로운 버전에서는 데이터 모델링을 더 효과적으로 하여 불법 상태를 표현할 수 없게 만드는 것을 목표로 하고 있습니다. 이러한 변화는 프로그래밍의 효율성을 높이고, 더 나은 데이터 관리를 가능하게 할 것입니다.
퀄리티 아웃리치 소식 - 새로운 레이든 조기 접근 빌드
프로젝트 레이든이 첫 조기 접근 빌드(24-leyden+2-8 2024/6/20)를 발표했습니다. 이 초기 릴리스는 자바 애플리케이션의 시작 시간을 개선하는 데 중점을 두고 있으며, 향후 릴리스에서 다른 레이든 최적화를 탐구할 계획입니다. 레이든 기능을 사용하려면 레이든 조기 접근 릴리스의 java 프로그램을 -XX:CacheDataStore 플래그와 함께 사용하세요.
퀄리티 아웃리치 업데이트 - 새로운 Loom 조기 접근 빌드
OpenJDK 퀄리티 그룹이 FOSS 프로젝트의 테스트를 통해 릴리스의 전반적인 품질을 향상시키고자 합니다. 최근 Loom 프로젝트는 개선된 객체 모니터 구현을 포함한 새로운 조기 접근 빌드를 발표했습니다. 이는 가상 스레드가 특정 상황에서 캐리어 스레드를 고정하는 것을 방지할 수 있습니다.
Jlink를 활용한 맞춤형 자바 런타임 구축 방법
Jlink는 애플리케이션이 필요로 하는 모듈을 기반으로 맞춤형 런타임을 생성하는 JDK의 강력한 도구입니다. 이 글에서는 Jlink의 주요 개념과 이점을 소개하고, 맞춤형 런타임을 만드는 다섯 가지 주요 단계를 설명합니다. 모듈 식별, 의존성 해결, 런타임 이미지 사용자 정의, 최적화, 배포 등의 과정을 통해 효율적인 자바 런타임을 구축할 수 있습니다.
자바 뉴스캐스트 #71: 문자열 템플릿의 운명은?
자바에서 문자열 템플릿 기능이 JDK 21과 22에서 소개되었지만, JDK 23에서 예상치 못하게 제거되었습니다. 이 기사는 그 결정의 이유와 새로운 문자열 템플릿 제안이 어떻게 될지, 그리고 이것이 OpenJDK 개발 과정에 어떤 의미를 가지는지 탐구합니다. 커뮤니티의 피드백과 기술적 도전이 주요 고려 사항으로 보입니다.
ZGC에서 맞춤형 할당자를 통한 단편화 문제 해결
ZGC와 다른 가비지 수집기는 일반적으로 연속 할당에 효율적인 bump-pointer 할당을 사용하지만, 시간이 지남에 따라 단편화가 발생할 수 있습니다. 이 연구는 TLSF 할당자를 적용하여 ZGC 내에서 단편화된 메모리를 더 효과적으로 관리하고자 합니다. 이는 메모리 효율성을 높이고 비용이 많이 드는 객체의 재배치 필요성을 줄일 수 있습니다.