Offcanvas

JDK

자바가 더 좋아지는 방법··· 발전 프로세스와 최신 JDK 살펴보기

자바는 널리 사용되며 많은 요소가 자바에 의존하는 만큼 소프트웨어 인프라의 중요한 한 부분이다. 이 때문에 자바 플랫폼은 안정성을 중시하지만, 한편으로는 변화하는 환경에 적극적으로 대응하고 있다. 자바를 사용하는 사람들의 창의성도 이런 변화에 한몫한다. 이때문에 자바에는 높은 수준의 안정성을 달성하면서 변화를 수용하기 위해 공식적인 프로세스가 있다. 여기서는 자바 플랫폼이 어떤 방식으로 향상되는지를 대략적으로 알아보고, 앞으로 적용될 가장 중요한 새로운 기능에 대해서도 살펴본다.      자바 커뮤니티 프로세스  오랜 경력의 자바 개발자라 해도 자바 플랫폼이 개발, 유지되는 방식에 대해서는 잘 모를 수 있다. 큰 그림으로 들어가기 전에 자바 프로세스가 어떻게 동작하는지부터 알아보자. 핵심은 자바가 실질적으로 오픈소스라는 데 있다. 즉, 마음만 먹으면 자바에 기여할 수 있다. 기여자에게 말하고 그룹에 가입하고 제안을 제출하고 버그를 수정하면 된다.  자바 개발의 뿌리는 자바 커뮤니티 프로세스(Java Community Process, JCP)다. JCP는 수정 사항을 자바 플랫폼에 적용하는 방법을 정의하고, 이 프로세스 자체의 수정도 허용하는 일종의 자기인식적 문서라고 할 수 있다. JCP 최신 버전은 2019년에 채택된 2.11이다.  JCP는 사람들이 맡을 수 있는 다양한 역할에 대한 정의를 포함해서 자바의 새로운 기능과 변경(즉, 기술 사양)을 제안, 검토, 승인하는 방식을 공식화한다. 이와 같은 역할은 자바 사용자 커뮤니티가 플랫폼 관리에 참여할 수 있는 환경을 제공하는 데 도움이 된다.    자바 사양 요청  JCP는 새로운 기능과 변경 제안을 위해 자바 사양 요청(Java Specification Request, JSR)을 사용한다. JSR은 표준화된 양식을 통해 만들 수 있으며, 양식을 사용하려면 무료 JCP 계정을 만들어야 한다.  짐작할 수 있겠지...

자바 JDK 오픈소스 커뮤니티 프로세스

2022.06.09

자바는 널리 사용되며 많은 요소가 자바에 의존하는 만큼 소프트웨어 인프라의 중요한 한 부분이다. 이 때문에 자바 플랫폼은 안정성을 중시하지만, 한편으로는 변화하는 환경에 적극적으로 대응하고 있다. 자바를 사용하는 사람들의 창의성도 이런 변화에 한몫한다. 이때문에 자바에는 높은 수준의 안정성을 달성하면서 변화를 수용하기 위해 공식적인 프로세스가 있다. 여기서는 자바 플랫폼이 어떤 방식으로 향상되는지를 대략적으로 알아보고, 앞으로 적용될 가장 중요한 새로운 기능에 대해서도 살펴본다.      자바 커뮤니티 프로세스  오랜 경력의 자바 개발자라 해도 자바 플랫폼이 개발, 유지되는 방식에 대해서는 잘 모를 수 있다. 큰 그림으로 들어가기 전에 자바 프로세스가 어떻게 동작하는지부터 알아보자. 핵심은 자바가 실질적으로 오픈소스라는 데 있다. 즉, 마음만 먹으면 자바에 기여할 수 있다. 기여자에게 말하고 그룹에 가입하고 제안을 제출하고 버그를 수정하면 된다.  자바 개발의 뿌리는 자바 커뮤니티 프로세스(Java Community Process, JCP)다. JCP는 수정 사항을 자바 플랫폼에 적용하는 방법을 정의하고, 이 프로세스 자체의 수정도 허용하는 일종의 자기인식적 문서라고 할 수 있다. JCP 최신 버전은 2019년에 채택된 2.11이다.  JCP는 사람들이 맡을 수 있는 다양한 역할에 대한 정의를 포함해서 자바의 새로운 기능과 변경(즉, 기술 사양)을 제안, 검토, 승인하는 방식을 공식화한다. 이와 같은 역할은 자바 사용자 커뮤니티가 플랫폼 관리에 참여할 수 있는 환경을 제공하는 데 도움이 된다.    자바 사양 요청  JCP는 새로운 기능과 변경 제안을 위해 자바 사양 요청(Java Specification Request, JSR)을 사용한다. JSR은 표준화된 양식을 통해 만들 수 있으며, 양식을 사용하려면 무료 JCP 계정을 만들어야 한다.  짐작할 수 있겠지...

2022.06.09

“자바 플랫폼에 정적 이미지 도입” 프로젝트 레이든(Project Leyden) 시작

‘프로젝트 레이든(Project Leyden)’은 자바 플랫폼에 정적 이미지를 도입하여 느린 시작 및 성능 문제를 완화하고자 한다.  느린 시작, 최대 성능 도달까지 걸리는 시간, 큰 설치 공간 등 자바의 문제점을 해결하기 위한 프로젝트가 현재 진행 중이다. 2년 넘게 논의된 ‘프로젝트 레이든’은 JDK 및 자바 플랫폼에 정적 이미지를 도입하여 이러한 문제점을 해결할 계획이다.    지난 5월 20일(현지 시각) 오픈JDK 커뮤니티에서 오라클의 자바 플랫폼 그룹 수석 아키텍트 마크 라인홀드는 이 프로젝트를 시작한다고 밝혔다.  그에 따르면 정적 이미지는 애플리케이션에서 파생된 독립 실행형 프로그램으로, 해당 애플리케이션만 실행한다. 정적 이미지는 로드할 수 있는 클래스와 관련하여 폐쇄된 환경(closed world)이다. 런타임 시 이미지 외부에서 클래스를 로드할 수 없으며, 클래스를 동적으로 생성할 수도 없다. 이 폐쇄된 환경의 제약 조건은 특히 기존의 자바 프레임워크 및 라이브러리가 기반으로 하는 런타임 리플렉션과 클래스 로딩 기능에서 자바의 자연적 역동성을 엄격하게 제한한다.  라인홀드는 “모든 애플리케이션이 이 제약 조건에 적합한 것은 아니며, 모든 개발자가 이 제약 조건을 기꺼이 받아들이는 것도 아니다”라면서, “처음부터 폐쇄된 환경의 제약 조건을 채택하는 대신, 제약 조건의 스펙트럼을 탐색하고 이것이 어떤 최적화를 가능하게 하는지 알아내는 점진적인 접근 방식을 추진할 것”이라고 말했다.  그 결과 최적화는 폐쇄된 환경의 제약 조건보다 약할 수 있다. 하지만 (제약 조건이 약해) 최적화는 더 넓은 범위의 기존 코드에 적용될 수 있어 유용할 것이라고 그는 덧붙였다. 아울러 이 프로젝트는 핫스팟 JVM(HotSpot JVM), C2 컴파일러(C2 compiler), 애플리케이션 클래스-데이터 공유(application class-data sharing), 제이링크 코드 도구(jlink cod...

자바 플랫폼 정적 이미지 JDK 오픈JDK 프로젝트 레이든

2022.05.24

‘프로젝트 레이든(Project Leyden)’은 자바 플랫폼에 정적 이미지를 도입하여 느린 시작 및 성능 문제를 완화하고자 한다.  느린 시작, 최대 성능 도달까지 걸리는 시간, 큰 설치 공간 등 자바의 문제점을 해결하기 위한 프로젝트가 현재 진행 중이다. 2년 넘게 논의된 ‘프로젝트 레이든’은 JDK 및 자바 플랫폼에 정적 이미지를 도입하여 이러한 문제점을 해결할 계획이다.    지난 5월 20일(현지 시각) 오픈JDK 커뮤니티에서 오라클의 자바 플랫폼 그룹 수석 아키텍트 마크 라인홀드는 이 프로젝트를 시작한다고 밝혔다.  그에 따르면 정적 이미지는 애플리케이션에서 파생된 독립 실행형 프로그램으로, 해당 애플리케이션만 실행한다. 정적 이미지는 로드할 수 있는 클래스와 관련하여 폐쇄된 환경(closed world)이다. 런타임 시 이미지 외부에서 클래스를 로드할 수 없으며, 클래스를 동적으로 생성할 수도 없다. 이 폐쇄된 환경의 제약 조건은 특히 기존의 자바 프레임워크 및 라이브러리가 기반으로 하는 런타임 리플렉션과 클래스 로딩 기능에서 자바의 자연적 역동성을 엄격하게 제한한다.  라인홀드는 “모든 애플리케이션이 이 제약 조건에 적합한 것은 아니며, 모든 개발자가 이 제약 조건을 기꺼이 받아들이는 것도 아니다”라면서, “처음부터 폐쇄된 환경의 제약 조건을 채택하는 대신, 제약 조건의 스펙트럼을 탐색하고 이것이 어떤 최적화를 가능하게 하는지 알아내는 점진적인 접근 방식을 추진할 것”이라고 말했다.  그 결과 최적화는 폐쇄된 환경의 제약 조건보다 약할 수 있다. 하지만 (제약 조건이 약해) 최적화는 더 넓은 범위의 기존 코드에 적용될 수 있어 유용할 것이라고 그는 덧붙였다. 아울러 이 프로젝트는 핫스팟 JVM(HotSpot JVM), C2 컴파일러(C2 compiler), 애플리케이션 클래스-데이터 공유(application class-data sharing), 제이링크 코드 도구(jlink cod...

2022.05.24

“‘자바 8’이 여전히 우세하지만 ‘자바 17’의 물결이 오고 있다”

제이레벨(JRebel)의 설문조사 결과에 따르면 전문 자바 개발자의 3분의 1 이상이 메인 애플리케이션에 8년 된 자바 버전을 사용하고 있는 것으로 나타났다.  8년 전 출시된 자바 8이 여전히 가장 많이 사용되는 자바 버전인 것으로 조사됐다. 하지만 설문 조사 결과 자바 17로 업그레이드할 계획인 기업도 많은 것으로 드러났다.     ‘메인 애플리케이션에 어떤 JDK(Java Development Kit) 프로그래밍 언어를 사용하는가?’라는 질문에 전체 응답자의 37%가 자바 8이라고 밝혔다. 2위는 자바 11(29%)이었다. 그다음으로는 자바 12 이상(12%), 코틀린(8%), 그루비(6%), 자바 7 이상(5%), 스칼라(3%) 순이었다.  ‘2022 자바 개발자 생산성 보고서(2022 Java Developer Productivity Report)’는 지난 2012년 10월부터 2022년 1월까지 전문 자바 개발자 876명을 대상으로 실시한 설문조사 결과를 담았다.  자바 8(2014년 3월 출시)과 자바 11(2018년 9월 출시)은 모두 수년간 오라클의 지원을 받는 LTS(Long-Term Support) 릴리즈다. 비 LTS 릴리즈(자바 9, 자바 10, 자바 12, 자바 15 등)는 6개월 동안만 지원을 받는다.  한편 소속 기업의 업그레이드 계획을 알고 있다고 밝힌 응답자 가운데 37%는 향후 6개월 안에 작년 9월 출시된 LTS 릴리즈인 ‘JDK 17’로 업데이트할 계획이라고 언급했다. 아울러 향후 6개월에서 12개월 안에 JDK 17로 업그레이드할 예정이라고 지목한 비율도 25%에 달했다. ‘JDK 18’은 비 LTS 릴리즈이며, 오는 3월 22일 공개된다.  회사에 따르면 ‘2022 자바 개발자 생산성 보고서’는 자바 기술과 자바 애플리케이션 개발에 관한 현 접근 방식에 초점을 맞추고 있다. 제이레벨(JRebel)은 퍼포스에서 만든 자바 개발 도구다. 이 밖에 다...

소프트웨어 개발 자바 오라클 JDK 자바 8 자바 17 프로그래밍 언어 개발 언어

2022.03.04

제이레벨(JRebel)의 설문조사 결과에 따르면 전문 자바 개발자의 3분의 1 이상이 메인 애플리케이션에 8년 된 자바 버전을 사용하고 있는 것으로 나타났다.  8년 전 출시된 자바 8이 여전히 가장 많이 사용되는 자바 버전인 것으로 조사됐다. 하지만 설문 조사 결과 자바 17로 업그레이드할 계획인 기업도 많은 것으로 드러났다.     ‘메인 애플리케이션에 어떤 JDK(Java Development Kit) 프로그래밍 언어를 사용하는가?’라는 질문에 전체 응답자의 37%가 자바 8이라고 밝혔다. 2위는 자바 11(29%)이었다. 그다음으로는 자바 12 이상(12%), 코틀린(8%), 그루비(6%), 자바 7 이상(5%), 스칼라(3%) 순이었다.  ‘2022 자바 개발자 생산성 보고서(2022 Java Developer Productivity Report)’는 지난 2012년 10월부터 2022년 1월까지 전문 자바 개발자 876명을 대상으로 실시한 설문조사 결과를 담았다.  자바 8(2014년 3월 출시)과 자바 11(2018년 9월 출시)은 모두 수년간 오라클의 지원을 받는 LTS(Long-Term Support) 릴리즈다. 비 LTS 릴리즈(자바 9, 자바 10, 자바 12, 자바 15 등)는 6개월 동안만 지원을 받는다.  한편 소속 기업의 업그레이드 계획을 알고 있다고 밝힌 응답자 가운데 37%는 향후 6개월 안에 작년 9월 출시된 LTS 릴리즈인 ‘JDK 17’로 업데이트할 계획이라고 언급했다. 아울러 향후 6개월에서 12개월 안에 JDK 17로 업그레이드할 예정이라고 지목한 비율도 25%에 달했다. ‘JDK 18’은 비 LTS 릴리즈이며, 오는 3월 22일 공개된다.  회사에 따르면 ‘2022 자바 개발자 생산성 보고서’는 자바 기술과 자바 애플리케이션 개발에 관한 현 접근 방식에 초점을 맞추고 있다. 제이레벨(JRebel)은 퍼포스에서 만든 자바 개발 도구다. 이 밖에 다...

2022.03.04

“단일 창으로 자바 배포 관리”··· 오라클, JMS 출시

오라클이 온프레미스 또는 클라우드에서 자바 런타임 및 애플리케이션 관리를 지원하는 엔터프라이즈 서비스를 공개했다.    오라클 클라우드 인프라스트럭쳐(OCI)의 새로운 기본 서비스 ‘자바 매니지먼트 서비스(Java Management Service; JMS)’가 지난 6월 9일 GA 버전으로 출시됐다. 오라클 자바 스탠더드 에디션(Oracle Java Standard Edition) 고객을 위한 기능으로 포함된 관리 서비스는 엔터프라이즈 전체에서 자바 배포를 관리할 수 있는 ‘단일 창’을 제공해 다음과 같은 문제를 해결한다.   • 기업 환경에 설치된 모든 자바 버전은 무엇인가? • 개발 및 프로덕션에서 실행 중인 자바 버전은 무엇인가?  • 어떤 JDK(Java Development Kit) 배포가 사용되고 있는가?  • 권한 없는 자바 애플리케이션이 실행되고 있는가? • 설치된 모든 자바 버전이 최신 보안 패치로 업데이트돼 있는가?  회사에 따르면 JMS는 JVM의 원격 측정 데이터를 기반으로 지속적인 인사이트를 제공해 컴플라이언스, 효율성, 성능, 보안 지표를 분석한다. 예를 들어 일반적으로 암호 사용은 블랙박스이며, 만료된 인증서나 비활성화된 알고리즘은 무언가가 손상되거나 악의적 공격이 발생한 후에 발견되는 경우가 많다고 오라클은 설명했다.  또 JMS를 사용하면 OCI, 온프레미스 데스크톱, 노트북, 서버, 서드파티 클라우드 서비스에서 실행되는 자바 사용량을 추적할 수 있다고 회사 측은 전했다. JDK, JRE(Java Runtime Environment), GraalVM도 모니터링한다. 이 밖에 매니지드 인스턴스에 설치된 JMS 에이전트를 통해 자바 사용 원격 측정 데이터를 수집한다.  JMS는 오라클 자바 SE(Oracle Java SE)에 포함된 기능이다. 해당되는 고객이라면 추가 구독 비용은 들지 않지만 이를 실행하는 경우 수억 개의 데이터 포인트를 지원하는 OC...

오라클 자바 오라클 클라우드 인프라스트럭쳐 클라우드 온프레미스 JDK JVM JRE

2021.06.14

오라클이 온프레미스 또는 클라우드에서 자바 런타임 및 애플리케이션 관리를 지원하는 엔터프라이즈 서비스를 공개했다.    오라클 클라우드 인프라스트럭쳐(OCI)의 새로운 기본 서비스 ‘자바 매니지먼트 서비스(Java Management Service; JMS)’가 지난 6월 9일 GA 버전으로 출시됐다. 오라클 자바 스탠더드 에디션(Oracle Java Standard Edition) 고객을 위한 기능으로 포함된 관리 서비스는 엔터프라이즈 전체에서 자바 배포를 관리할 수 있는 ‘단일 창’을 제공해 다음과 같은 문제를 해결한다.   • 기업 환경에 설치된 모든 자바 버전은 무엇인가? • 개발 및 프로덕션에서 실행 중인 자바 버전은 무엇인가?  • 어떤 JDK(Java Development Kit) 배포가 사용되고 있는가?  • 권한 없는 자바 애플리케이션이 실행되고 있는가? • 설치된 모든 자바 버전이 최신 보안 패치로 업데이트돼 있는가?  회사에 따르면 JMS는 JVM의 원격 측정 데이터를 기반으로 지속적인 인사이트를 제공해 컴플라이언스, 효율성, 성능, 보안 지표를 분석한다. 예를 들어 일반적으로 암호 사용은 블랙박스이며, 만료된 인증서나 비활성화된 알고리즘은 무언가가 손상되거나 악의적 공격이 발생한 후에 발견되는 경우가 많다고 오라클은 설명했다.  또 JMS를 사용하면 OCI, 온프레미스 데스크톱, 노트북, 서버, 서드파티 클라우드 서비스에서 실행되는 자바 사용량을 추적할 수 있다고 회사 측은 전했다. JDK, JRE(Java Runtime Environment), GraalVM도 모니터링한다. 이 밖에 매니지드 인스턴스에 설치된 JMS 에이전트를 통해 자바 사용 원격 측정 데이터를 수집한다.  JMS는 오라클 자바 SE(Oracle Java SE)에 포함된 기능이다. 해당되는 고객이라면 추가 구독 비용은 들지 않지만 이를 실행하는 경우 수억 개의 데이터 포인트를 지원하는 OC...

2021.06.14

MS, 자체 오픈 JDK 프리뷰 릴리즈 공개

MS가 MS 빌드 오브 오픈 JDK를 출시해 자바 생태계에서 오라클과 경쟁할 태세를 갖추고 있다.  MS가 오픈소스인 자바의 배포를 무료로 지원하는 개발 키트인 MS JDK의 프리뷰 릴리즈를 발표했다. 오라클에게는 위협이 될 수 있는 행보로 풀이된다.    윈도우, 리눅스, 맥 OS용으로 등장한 자바11 바이너리의 공식 명칭은 마이크로소프트 빌드 오브 오픈 JDK(이하 MS JDK)이며 microsoft.com에서 다운로드받을 수 있다. 또 MS는 ARM 기반 윈도우용으로 개발된 최신 자바 에디션인 자바16의 초기 액세스 바이너리도 제공하고 있다. MS 애저 클라우드 사용자는 애저 클라우드 셸을 통해 빌드를 이용해볼 수 있다.  (MS가 발표한) 자바11용 빌드는 오픈 JDK 소스코드를 기반으로 한다. 과거 어답트 오픈 JDK(AdoptOpenJDK)로 알려진 이클립스 어답티움(Eclipse Adoptium) 프로젝트에 사용된 것과 동일한 빌드 스크립트를 따른다. MS의 (이번) 바이너리는 자바11용 기술 호환성 도구(TCK) 테스트를 통과했다.  6일(현지시간) 발표된 MS JDK는 자바 생태계에 존재하는 여타 오픈 JDK의 대안이다. MS는 적어도 2024년까지 자바11을 지원하겠다고 약속했다. 자바17용 오픈 JDK 바이너리는 올해 말까지 출시될 예정이다. MS는 애저 관리 서비스에서 자바8을 타깃 런타임 옵션으로 제공하며 이클립스 어답티움의 자바8 바이너리를 지원할 예정이다.  MS는 이번 빌드를 통해 인기 JDK를 갖춘 오라클을 따라잡을 방침이다. MS는 자바를 두고 오늘날 가장 중요한 프로그래밍 언어라고 말한 바 있다. 중요 기업 애플리케이션부터 취미용 로봇까지 모든 곳에 사용되기 때문이다. MS는 자사 클라우드 서비스 및 개발 도구 전반에 걸쳐 고객들의 자바 사용률이 점차 증가하는 것을 주목해왔다.  MS는 오픈 JDK 생태계에 참여해 유의미한 방식으로 기...

MS JDK 오픈 JDK 오라클 자바 MS 빌드

2021.04.07

MS가 MS 빌드 오브 오픈 JDK를 출시해 자바 생태계에서 오라클과 경쟁할 태세를 갖추고 있다.  MS가 오픈소스인 자바의 배포를 무료로 지원하는 개발 키트인 MS JDK의 프리뷰 릴리즈를 발표했다. 오라클에게는 위협이 될 수 있는 행보로 풀이된다.    윈도우, 리눅스, 맥 OS용으로 등장한 자바11 바이너리의 공식 명칭은 마이크로소프트 빌드 오브 오픈 JDK(이하 MS JDK)이며 microsoft.com에서 다운로드받을 수 있다. 또 MS는 ARM 기반 윈도우용으로 개발된 최신 자바 에디션인 자바16의 초기 액세스 바이너리도 제공하고 있다. MS 애저 클라우드 사용자는 애저 클라우드 셸을 통해 빌드를 이용해볼 수 있다.  (MS가 발표한) 자바11용 빌드는 오픈 JDK 소스코드를 기반으로 한다. 과거 어답트 오픈 JDK(AdoptOpenJDK)로 알려진 이클립스 어답티움(Eclipse Adoptium) 프로젝트에 사용된 것과 동일한 빌드 스크립트를 따른다. MS의 (이번) 바이너리는 자바11용 기술 호환성 도구(TCK) 테스트를 통과했다.  6일(현지시간) 발표된 MS JDK는 자바 생태계에 존재하는 여타 오픈 JDK의 대안이다. MS는 적어도 2024년까지 자바11을 지원하겠다고 약속했다. 자바17용 오픈 JDK 바이너리는 올해 말까지 출시될 예정이다. MS는 애저 관리 서비스에서 자바8을 타깃 런타임 옵션으로 제공하며 이클립스 어답티움의 자바8 바이너리를 지원할 예정이다.  MS는 이번 빌드를 통해 인기 JDK를 갖춘 오라클을 따라잡을 방침이다. MS는 자바를 두고 오늘날 가장 중요한 프로그래밍 언어라고 말한 바 있다. 중요 기업 애플리케이션부터 취미용 로봇까지 모든 곳에 사용되기 때문이다. MS는 자사 클라우드 서비스 및 개발 도구 전반에 걸쳐 고객들의 자바 사용률이 점차 증가하는 것을 주목해왔다.  MS는 오픈 JDK 생태계에 참여해 유의미한 방식으로 기...

2021.04.07

C++ 14 기능 지원부터 벡터 API까지··· JDK 16, 기능 구체화

다음 자바(Java) 업그레이드는 새로운 메타스페이스 메모리 할당자, JDK 소스 코드의 C++ 14 언어 기능 지원, 벡터 API 등을 목표로 한다.    JDK C++ 소스 코드의 C++ 14 기능 지원부터 벡터 API, 사용하지 않는 클래스 메타데이터 메모리를 OS에 빠르게 반환할 수 있는 ‘탄력적인’ 메타스페이스 기능까지 자바 개발 키트(JDK) 버전 16이 구체화되기 시작했다.     JDK 16은 지난 9월 15일 출시된 JDK 15를 따르는 표준 자바 버전의 참조구현이 될 것이다. 또한 표준 자바의 6개월 출시 간격에 따라 JDK 16은 2021년 3월 정식 배포될 예정이다. 현재까지 제안된 JDK 16의 새로운 기능은 다음과 같다.  • 탄력적인 메타스페이스 기능(elastic metaspace capability): 사용하지 않는 핫스팟 VM(HotSpot VM) 클래스 메타데이터(메타스페이스) 메모리를 OS에 신속하게 반환한다. 메타스페이스 풋프린트를 줄이고 메타스페이스 코드를 단순화해 유지관리 비용을 절감한다.  메타스페이스에는 오프-힙 메모리(off-heap memory) 사용량이 많다는 문제가 있었다. 새로 제안된 계획에서는 기존 메모리 할당자를 버디 기반 할당 체계로 대체해 메모리를 파티션으로 분할하여 메모리 요청을 처리할 수 있는 알고리즘을 제공한다.  해당 접근법은 리눅스 커널(Linux kernel) 등에서 사용돼 왔으며, 클래스-로더 오버헤드를 줄이기 위해 더 작은 청크(chunks)로 메모리를 할당한다는 점에서 실용적이다. 메모리 단편화 또한 줄어든다.  게다가 OS에서 메모리 관리 영역으로 메모리를 할당하는 작업은 필요에 따라 수행된다. 대규모 영역에서 시작하지만 즉시 사용하지 않거나 전체 범위를 사용하지 않는 로더의 풋프린트를 줄인다.  버디 할당이 제공하는 탄력성을 최대한 활용하고자 메타스페이스 메모리는 서로 독립적으로 커밋하거나...

자바 자바 개발 키트 JDK JDK 16 메타스페이스 메모리 C++ 벡터 API 리눅스 핫스팟 VM 머큐리얼 기트허브

2020.09.21

다음 자바(Java) 업그레이드는 새로운 메타스페이스 메모리 할당자, JDK 소스 코드의 C++ 14 언어 기능 지원, 벡터 API 등을 목표로 한다.    JDK C++ 소스 코드의 C++ 14 기능 지원부터 벡터 API, 사용하지 않는 클래스 메타데이터 메모리를 OS에 빠르게 반환할 수 있는 ‘탄력적인’ 메타스페이스 기능까지 자바 개발 키트(JDK) 버전 16이 구체화되기 시작했다.     JDK 16은 지난 9월 15일 출시된 JDK 15를 따르는 표준 자바 버전의 참조구현이 될 것이다. 또한 표준 자바의 6개월 출시 간격에 따라 JDK 16은 2021년 3월 정식 배포될 예정이다. 현재까지 제안된 JDK 16의 새로운 기능은 다음과 같다.  • 탄력적인 메타스페이스 기능(elastic metaspace capability): 사용하지 않는 핫스팟 VM(HotSpot VM) 클래스 메타데이터(메타스페이스) 메모리를 OS에 신속하게 반환한다. 메타스페이스 풋프린트를 줄이고 메타스페이스 코드를 단순화해 유지관리 비용을 절감한다.  메타스페이스에는 오프-힙 메모리(off-heap memory) 사용량이 많다는 문제가 있었다. 새로 제안된 계획에서는 기존 메모리 할당자를 버디 기반 할당 체계로 대체해 메모리를 파티션으로 분할하여 메모리 요청을 처리할 수 있는 알고리즘을 제공한다.  해당 접근법은 리눅스 커널(Linux kernel) 등에서 사용돼 왔으며, 클래스-로더 오버헤드를 줄이기 위해 더 작은 청크(chunks)로 메모리를 할당한다는 점에서 실용적이다. 메모리 단편화 또한 줄어든다.  게다가 OS에서 메모리 관리 영역으로 메모리를 할당하는 작업은 필요에 따라 수행된다. 대규모 영역에서 시작하지만 즉시 사용하지 않거나 전체 범위를 사용하지 않는 로더의 풋프린트를 줄인다.  버디 할당이 제공하는 탄력성을 최대한 활용하고자 메타스페이스 메모리는 서로 독립적으로 커밋하거나...

2020.09.21

오라클, 자바 8에 대한 새로운 연장 지원 날짜 발표

여전히 가장 널리 사용되는 자바 버전인 자바 8이 2030년까지 오라클의 유료 지원을 받을 수 있게 됐다. 자바 8은 6년 전에 발표됐으며 이후 여러 자바 버전이 계속 나왔다.   그런데도 자바 개발 키트(JDK) 8이라고도 하는 자바 8은 오늘날 가장 많이 사용되는 자바 버전일 가능성이 높다고 오라클 관계자는 3월 12일에 공식적으로 언급했다. 오라클의 자바 플랫폼 그룹 소프트웨어 개발 부사장인 조지 사브는 자바 사용자의 30~40%가 현재 프로덕션 환경에서 자바 11 이상을 사용하고 있다고 믿고 있지만, 더 많은 사용자가 자바 8을 사용하고 있다고 말했다. 이러한 이유로 오라클은 최근 2030년 12월까지 추가 유지 보수 및 업그레이드 기능을 갖춘 자바 8에 대한 유료 기반 확장 레벨 지원을 제공하기로 했다. 자바 8에 대한 확장 레벨 지원은 2025년에 끝날 예정이었지만 그동안 고객은 확장을 요구했다. 사브는 자바 8의 지속적인 명성에 대한 그의 평가에서 한가지 사례를 인용했다. 지난달에 발표된 Snyk JVM 에코시스템 2020 보고서에 따르면 사브의 평가 결과, 설문조사에 응한 자바 사용자의 64%가 프로덕션 환경의 주요 애플리케이션에 자바 SE(Standard Edition) 8을 사용하고 있으며 3%는 이전 버전을 사용하는 것으로 파악됐다.  1/4은 자바 11을 사용했다. 이 보고서는 2019년 하반기에 실시된 설문 조사에서 2,000건의 응답을 기반으로 했다. JDK 8 및 JDK 11은 장기 지원(LTS) 릴리스로 개발됐으며, 오라클은 몇 년 동안 지원할 것이다. JDK 9, JDK 10, JDK 12, 다음 JDK 14는 6개월간 지원되는 기능 릴리스다. JDK 11은 2026년 9월까지 확장 지원을 받게 된다.  오라클의 JDK 릴리스는 현재 6개월 릴리스 케이던스에 있다. 스위치 익스프레션 및 외부 메모리 액세스 API 같은 기능을 갖춘 JDK 14는 3월 17일에 출시될 예정이다. 2021년...

자바 자바 8 JDK JDK 11 JDK 17 Snyk JVM 에코시스템 2020 싼마이크로시스템즈 자바 개발 키트

2020.03.17

여전히 가장 널리 사용되는 자바 버전인 자바 8이 2030년까지 오라클의 유료 지원을 받을 수 있게 됐다. 자바 8은 6년 전에 발표됐으며 이후 여러 자바 버전이 계속 나왔다.   그런데도 자바 개발 키트(JDK) 8이라고도 하는 자바 8은 오늘날 가장 많이 사용되는 자바 버전일 가능성이 높다고 오라클 관계자는 3월 12일에 공식적으로 언급했다. 오라클의 자바 플랫폼 그룹 소프트웨어 개발 부사장인 조지 사브는 자바 사용자의 30~40%가 현재 프로덕션 환경에서 자바 11 이상을 사용하고 있다고 믿고 있지만, 더 많은 사용자가 자바 8을 사용하고 있다고 말했다. 이러한 이유로 오라클은 최근 2030년 12월까지 추가 유지 보수 및 업그레이드 기능을 갖춘 자바 8에 대한 유료 기반 확장 레벨 지원을 제공하기로 했다. 자바 8에 대한 확장 레벨 지원은 2025년에 끝날 예정이었지만 그동안 고객은 확장을 요구했다. 사브는 자바 8의 지속적인 명성에 대한 그의 평가에서 한가지 사례를 인용했다. 지난달에 발표된 Snyk JVM 에코시스템 2020 보고서에 따르면 사브의 평가 결과, 설문조사에 응한 자바 사용자의 64%가 프로덕션 환경의 주요 애플리케이션에 자바 SE(Standard Edition) 8을 사용하고 있으며 3%는 이전 버전을 사용하는 것으로 파악됐다.  1/4은 자바 11을 사용했다. 이 보고서는 2019년 하반기에 실시된 설문 조사에서 2,000건의 응답을 기반으로 했다. JDK 8 및 JDK 11은 장기 지원(LTS) 릴리스로 개발됐으며, 오라클은 몇 년 동안 지원할 것이다. JDK 9, JDK 10, JDK 12, 다음 JDK 14는 6개월간 지원되는 기능 릴리스다. JDK 11은 2026년 9월까지 확장 지원을 받게 된다.  오라클의 JDK 릴리스는 현재 6개월 릴리스 케이던스에 있다. 스위치 익스프레션 및 외부 메모리 액세스 API 같은 기능을 갖춘 JDK 14는 3월 17일에 출시될 예정이다. 2021년...

2020.03.17

티맥스, “JDK 지원 강화··· 고객 부담 최소화”

티맥스소프트가 티맥스 제품을 사용하는 고객의 선택 폭을 넓히기 위해 오픈JDK와 자사 제품간의 호환성 테스트 및 커뮤니티 패치 기술지원을 제공한다고 밝혔다. 미들웨어 ‘제우스’ 등 티맥스의 제품은 제품별로 상이할 수 있으나 오픈JDK 7/8을 권장하며, 이들에 대해 연동 테스트를 완료했다. 세부 내용은 홈페이지(https://kr.tmaxsoft.com) 및 테크넷(https://technet.tmaxsoft.com) 등을 통해 공개할 예정이다. 또한 JDK 기술지원은 티맥스소프트와 관계사인 티맥스데이터, 티맥스오에스 등의 제품별 담당 엔지니어를 통해 진행하며, 오픈JDK 커뮤니티 버전의 패치 설치를 제공하는 형태로 지원한다. 티맥스소프트는 티맥스 제품의 보증기간이 남아있거나 유지보수 계약 중인 경우 오픈JDK로 전환을 원할 시 무상으로 기술지원을 제공한다. 타사 제품을 사용하는 고객은 티맥스 제품과 오픈JDK로 최적화한 시스템 환경분석 서비스를 제공할 예정이라고 밝혔다. 만약 오픈JDK가 적용이 불가능한 버전의 티맥스 제품을 사용하고 있는 고객은 티맥스 담당 영업대표를 통해 상황에 맞게 기술지원을 받으면 된다. 서비스종료일(EOS)이 지난 티맥스 제품을 사용하는 경우 오픈JDK 1.7 또는 1.8 등 지원할 수 있는 버전으로 업그레이드를 권장할 방침이다. 한편, 티맥스의 SW 제품은 특정 JDK 기능에 종속돼 있지 않다는 강점이 있어 고객이 원하는 JDK를 선택할 수 있다. 따라서 고객들이 오픈JDK를 사용하더라도 티맥스의 기술지원으로 무리 없이 시스템 운영이 가능해 자바 유료화에 대한 걱정을 덜 수 있을 것으로 예상된다. 티맥스소프트 김동철 대표는 “관련 업계의 혼란을 티맥스가 JDK에 대한 기술지원을 강화함으로써 어느정도 해소할 수 있을 것으로 예상한다”며, “이번 기술지원 강화를 통해 JDK 사용에 대한 고객의 비용 부담을 최소화하고, 티맥스 제품을 사용하는 고객의 신뢰와 만족을 극대화할 ...

JDK 티맥스

2018.11.29

티맥스소프트가 티맥스 제품을 사용하는 고객의 선택 폭을 넓히기 위해 오픈JDK와 자사 제품간의 호환성 테스트 및 커뮤니티 패치 기술지원을 제공한다고 밝혔다. 미들웨어 ‘제우스’ 등 티맥스의 제품은 제품별로 상이할 수 있으나 오픈JDK 7/8을 권장하며, 이들에 대해 연동 테스트를 완료했다. 세부 내용은 홈페이지(https://kr.tmaxsoft.com) 및 테크넷(https://technet.tmaxsoft.com) 등을 통해 공개할 예정이다. 또한 JDK 기술지원은 티맥스소프트와 관계사인 티맥스데이터, 티맥스오에스 등의 제품별 담당 엔지니어를 통해 진행하며, 오픈JDK 커뮤니티 버전의 패치 설치를 제공하는 형태로 지원한다. 티맥스소프트는 티맥스 제품의 보증기간이 남아있거나 유지보수 계약 중인 경우 오픈JDK로 전환을 원할 시 무상으로 기술지원을 제공한다. 타사 제품을 사용하는 고객은 티맥스 제품과 오픈JDK로 최적화한 시스템 환경분석 서비스를 제공할 예정이라고 밝혔다. 만약 오픈JDK가 적용이 불가능한 버전의 티맥스 제품을 사용하고 있는 고객은 티맥스 담당 영업대표를 통해 상황에 맞게 기술지원을 받으면 된다. 서비스종료일(EOS)이 지난 티맥스 제품을 사용하는 경우 오픈JDK 1.7 또는 1.8 등 지원할 수 있는 버전으로 업그레이드를 권장할 방침이다. 한편, 티맥스의 SW 제품은 특정 JDK 기능에 종속돼 있지 않다는 강점이 있어 고객이 원하는 JDK를 선택할 수 있다. 따라서 고객들이 오픈JDK를 사용하더라도 티맥스의 기술지원으로 무리 없이 시스템 운영이 가능해 자바 유료화에 대한 걱정을 덜 수 있을 것으로 예상된다. 티맥스소프트 김동철 대표는 “관련 업계의 혼란을 티맥스가 JDK에 대한 기술지원을 강화함으로써 어느정도 해소할 수 있을 것으로 예상한다”며, “이번 기술지원 강화를 통해 JDK 사용에 대한 고객의 비용 부담을 최소화하고, 티맥스 제품을 사용하는 고객의 신뢰와 만족을 극대화할 ...

2018.11.29

자바 프로그래밍의 핵심··· 'JDK'의 이해와 설치방법

자바 개발 키트(Java Development Kit, JDK)는 자바 애플리케이션을 구축하기 위한 핵심 플랫폼 구성요소다. 이 중심에는 자바 컴파일러(Compiler)가 있다. Credit: Nic McPhee (CC BY-SA 2.0) JDK는 자바 가상 머신(Java Virtual Machine, JVM), 그리고 자바 런타임 환경(Java Runtime Environment, JRE)과 함께 자바 프로그래밍에 사용되는 3대 핵심 기술 패키지 가운데 하나다. 이 3가지 기술이 어떻게 연결되어 있는지, 또한 어떻게 다른지 구별하는 것이 중요하다. - JVM은 프로그램을 실행하는 자바 플랫폼 구성요소다. - JRE는 JVM을 생성하는 디스크 상의 부분이다. - JDK는 개발자들이 JVM과 JRE에 의해 실행되고 구동될 수 있는 자바 프로그램을 생성할 수 있게 해준다. 자바를 처음 접하는 개발자는 JDK와 JRE를 혼동하는 경우가 종종 있다. 다른 점은 JDK가 자바 기반 소프트웨어를 개발하기 위한 도구들로 이뤄진 패키지인 반면, JRE는 자바 코드를 실행하기 위한 도구들로 구성된 패키지라는 점이다. JRE는 단지 자바 프로그램을 구동하기 위한 독립형 구성요소로써 사용될 수도 있지만, 동시에 JDK의 일부이기도 하다. 자바 프로그램을 구동하는 것이 자바 프로그램 개발의 일환이기 때문에 JDK는 JRE를 필요로 한다. 다음 그림은 JDK가 자바 애플리케이션 개발 라이프사이클에서 어디에 속하는 지를 보여준다. Credit: Matthew Tyson DK에 대한 기술적 정의와 일반적 정의는 다음과 같다. - 기술적 정의: JDK는 컴파일러와 클래스 라이브러리(Class Library)를 포함하는, 자바 플랫폼 사양서의 구현이다. - 일반적인 정의: JDK는 개발자가 자바 기반 애플리케이션 개발을 위해 다운로드하는 소프트웨어 패키지다. JDK와 자바 컴파일러 모든 JDK는 자바 애플리케이션 구동에 이...

자바 Java JDK Java Development Kit

2018.09.19

자바 개발 키트(Java Development Kit, JDK)는 자바 애플리케이션을 구축하기 위한 핵심 플랫폼 구성요소다. 이 중심에는 자바 컴파일러(Compiler)가 있다. Credit: Nic McPhee (CC BY-SA 2.0) JDK는 자바 가상 머신(Java Virtual Machine, JVM), 그리고 자바 런타임 환경(Java Runtime Environment, JRE)과 함께 자바 프로그래밍에 사용되는 3대 핵심 기술 패키지 가운데 하나다. 이 3가지 기술이 어떻게 연결되어 있는지, 또한 어떻게 다른지 구별하는 것이 중요하다. - JVM은 프로그램을 실행하는 자바 플랫폼 구성요소다. - JRE는 JVM을 생성하는 디스크 상의 부분이다. - JDK는 개발자들이 JVM과 JRE에 의해 실행되고 구동될 수 있는 자바 프로그램을 생성할 수 있게 해준다. 자바를 처음 접하는 개발자는 JDK와 JRE를 혼동하는 경우가 종종 있다. 다른 점은 JDK가 자바 기반 소프트웨어를 개발하기 위한 도구들로 이뤄진 패키지인 반면, JRE는 자바 코드를 실행하기 위한 도구들로 구성된 패키지라는 점이다. JRE는 단지 자바 프로그램을 구동하기 위한 독립형 구성요소로써 사용될 수도 있지만, 동시에 JDK의 일부이기도 하다. 자바 프로그램을 구동하는 것이 자바 프로그램 개발의 일환이기 때문에 JDK는 JRE를 필요로 한다. 다음 그림은 JDK가 자바 애플리케이션 개발 라이프사이클에서 어디에 속하는 지를 보여준다. Credit: Matthew Tyson DK에 대한 기술적 정의와 일반적 정의는 다음과 같다. - 기술적 정의: JDK는 컴파일러와 클래스 라이브러리(Class Library)를 포함하는, 자바 플랫폼 사양서의 구현이다. - 일반적인 정의: JDK는 개발자가 자바 기반 애플리케이션 개발을 위해 다운로드하는 소프트웨어 패키지다. JDK와 자바 컴파일러 모든 JDK는 자바 애플리케이션 구동에 이...

2018.09.19

오라클, JDK 8 업데이트 2019년까지 연장

오라클이 JDK 8(Java Development Kit 8)에 대한 퍼블릭 업데이트 기간을 2019년 1월까지 연장했다. 본래 2018년 9월에 종료할 예정이었다. 이번 조치로 JDK 8 버전에 대한 2018년 10월 업데이트와 2019년 1월 업데이트가 추가로 나온다. 이들 업데이트는 자바 SE 8(Java Standard Edition 8)을 기반으로 하며, 일반 사용자용 컴퓨터에서 무료로 사용할 수 있다. 이와 함께 오라클은 다른 자바 관련 기술지원 종료 시점도 발표했다. 먼저, 현재 점점 사용자가 줄고 있는 브라우저 플러그인 모델 기반의 애플릿은 자바 SE 8 내에서 최소한 2019년 3월까지 지원한다. 이 기간은 브라우저의 지원 여부에 따라 영향을 받는다. 오라클은 상용으로 쓰이는 자바 SE 8의 웹 스타트(Java Web Star)에 대한 유료 기술지원 기간도 최소 2025년 3월까지 연장했다. 웹 스타트에 의존성을 가진 오라클 제품에 대한 지원도 마찬가지다. 애초에 이들 기술지원은 2019년 3월에 종료될 예정이었다. JDK 8은 2014년 3월에, 후속 버전인 JDK 9는 2017년 9월에 공개됐다. 이번 조치로 JDK 8은 JDK 9이나 JDK 10보다 더 오래 업데이트가 제공되게 됐다. 오라클은 JDK 9의 퍼블릭 업데이트를 2018년 3월까지만 제공할 예정이다. 이후에는 2018년 3월에 공개되는 JDK 10으로 업그레이드할 것을 권장하고 있다. JDK 8과 JDK 9는 오라클 테크놀로지 네트워크 웹사이트에서 다운로드할 수 있다. ciokr@idg.co.kr  

오라클 자바 업데이트 JDK

2018.02.02

오라클이 JDK 8(Java Development Kit 8)에 대한 퍼블릭 업데이트 기간을 2019년 1월까지 연장했다. 본래 2018년 9월에 종료할 예정이었다. 이번 조치로 JDK 8 버전에 대한 2018년 10월 업데이트와 2019년 1월 업데이트가 추가로 나온다. 이들 업데이트는 자바 SE 8(Java Standard Edition 8)을 기반으로 하며, 일반 사용자용 컴퓨터에서 무료로 사용할 수 있다. 이와 함께 오라클은 다른 자바 관련 기술지원 종료 시점도 발표했다. 먼저, 현재 점점 사용자가 줄고 있는 브라우저 플러그인 모델 기반의 애플릿은 자바 SE 8 내에서 최소한 2019년 3월까지 지원한다. 이 기간은 브라우저의 지원 여부에 따라 영향을 받는다. 오라클은 상용으로 쓰이는 자바 SE 8의 웹 스타트(Java Web Star)에 대한 유료 기술지원 기간도 최소 2025년 3월까지 연장했다. 웹 스타트에 의존성을 가진 오라클 제품에 대한 지원도 마찬가지다. 애초에 이들 기술지원은 2019년 3월에 종료될 예정이었다. JDK 8은 2014년 3월에, 후속 버전인 JDK 9는 2017년 9월에 공개됐다. 이번 조치로 JDK 8은 JDK 9이나 JDK 10보다 더 오래 업데이트가 제공되게 됐다. 오라클은 JDK 9의 퍼블릭 업데이트를 2018년 3월까지만 제공할 예정이다. 이후에는 2018년 3월에 공개되는 JDK 10으로 업그레이드할 것을 권장하고 있다. JDK 8과 JDK 9는 오라클 테크놀로지 네트워크 웹사이트에서 다운로드할 수 있다. ciokr@idg.co.kr  

2018.02.02

오라클, 자바 9 수용 촉진을 위한 신규 제안 제시

7월 출시 예정인 자바 9 릴리즈에 맞춰 코드를 이전하는 작업이 한층 쉬워질 가능성이 커졌다. 자바 9의 핵심 기능인 모듈성(modularity)을 좀더 잘 수용하기 위해 오라클이 새로운 제안을 제시했기 때문이다. 지난 18일 발표한 제안문에서 오라클의 최고 자바 아키텍트 마크 레인홀드는 JDK-인터널 APIs의 강력한 응축적 특성으로 인해 JDK 8 상에서 작업된 코드가 JDK 9에서 동작하지 않을 것이라는 우려가 발생했다고 진단했다.  그는 "생태계 전체가 모듈러 자바 플랫폼으로 적절히 이전하는 작업에 일조하고자 한다. 이를 위해 나는 JDK 9 내 기본값으로 클래스 패스 상의 코드로부터 불법적 리플렉티드 접근을 허용하는 제안을 제시한다. 그리고 미래 릴리즈에서는 이를 불허하는 것을 제안한다"라고 말했다. 이 제안에 따르면 '—permit-illegal-access' 옵션의 기존 '빅 킬 스위치'는 JDK 9 런타임 시스템의 기본 행동으로 설정되게 된다. 레인홀드는 "현재의 JDK 9 기본 행동은 클래스 패스 상 코드로부터의 불법적 리플렉티브-접근 동작이 허용되지 않는다"라며, "미래에는 다시 기본값화 될 것이다. 컴파일 시간은 변화하지 않는다"라고 말했다.  그는 이러한 기본 설정값 변화가 JDK 9 채택 문제 모두를 마법처럼 해소시킬 수 있을 것이라고 표현했다. ciokr@idg.co.kr 

오라클 JDK 자바 9

2017.05.22

7월 출시 예정인 자바 9 릴리즈에 맞춰 코드를 이전하는 작업이 한층 쉬워질 가능성이 커졌다. 자바 9의 핵심 기능인 모듈성(modularity)을 좀더 잘 수용하기 위해 오라클이 새로운 제안을 제시했기 때문이다. 지난 18일 발표한 제안문에서 오라클의 최고 자바 아키텍트 마크 레인홀드는 JDK-인터널 APIs의 강력한 응축적 특성으로 인해 JDK 8 상에서 작업된 코드가 JDK 9에서 동작하지 않을 것이라는 우려가 발생했다고 진단했다.  그는 "생태계 전체가 모듈러 자바 플랫폼으로 적절히 이전하는 작업에 일조하고자 한다. 이를 위해 나는 JDK 9 내 기본값으로 클래스 패스 상의 코드로부터 불법적 리플렉티드 접근을 허용하는 제안을 제시한다. 그리고 미래 릴리즈에서는 이를 불허하는 것을 제안한다"라고 말했다. 이 제안에 따르면 '—permit-illegal-access' 옵션의 기존 '빅 킬 스위치'는 JDK 9 런타임 시스템의 기본 행동으로 설정되게 된다. 레인홀드는 "현재의 JDK 9 기본 행동은 클래스 패스 상 코드로부터의 불법적 리플렉티브-접근 동작이 허용되지 않는다"라며, "미래에는 다시 기본값화 될 것이다. 컴파일 시간은 변화하지 않는다"라고 말했다.  그는 이러한 기본 설정값 변화가 JDK 9 채택 문제 모두를 마법처럼 해소시킬 수 있을 것이라고 표현했다. ciokr@idg.co.kr 

2017.05.22

공개 후 10년, 오픈소스 자바는 여전히 '논란 중'

자바가 오픈소스화 행보를 보인지 10년이 지났다. 자바 설립자 제임스 고슬링이 오픈소스화가 옳은 결정이었다고 회고했다. 그러나 썬(그리고 썬을 인수한 오라클)이 충분한 진전을 보이지 않았다는 관점도 있다. Credit: Omer Wazir 자바(Java)의 오픈소스화는 10여 년이 현재에도 여전히 논쟁의 중심에 있다. 많은 이들이 오픈 자바의 가치를 인정하고 있지만 다른 한 편에서는 비판적인 자세를 견지하고 있다. 이를테면 썬 마이크로시스템즈(Sun Microsystems)가 제대로 성숙시키지 못 했다는 비판도 그 중 하나다. 썬 마이크로시스템즈는 2006년 11월 13일 업계의 오랜 열망에 부응해 자바를 공식적으로 오픈소스화 했다. 최근 자바의 설립자 제임스 고슬링은 자바의 코드가 그 이전에 이미 제공되고 있었다고 전하며, 오픈소스화 행보는 자바 플랫폼이 초기에 탄력받을 수 있었던 이유 중 하나라고 말했다. 현재 리퀴드 로보틱스(Liquid Robotics)의 새로운 수석 아키텍트로 근무 중인 고슬링은 "자바의 소스 코드는 1995년에 출시된 첫날부터 공개됐다. 우리는 이를 통해 커뮤니티가 보안 분석, 버그 보고, 성능 향상, 코너 케이스(Corner Case) 파악 등의 과제를 지원할 수 있기를 바랬다. 이 전략은 매우 성공적이었다"라고 말했다. 고슬링에 따르면 자바의 당초 라이선스 정책은 소스 코드를 내부적으로 사용할 수 있도록 허용하되 재배포는 금지하는 것이었다. 그는 "즉 오픈소스 대중에게 충분히 '공개된' 것이 아니었다"라고 전했다. 썬의 결정 당시 IBM은 자바가 ASF(Apache Software Foundation)에 기여되기를 바랬다. 만약 그랬다면 아파치 라이선스에 따라 배포됐을 것이다. 그러나 썬은 자바에 대해 GNU GPL(General Public License)를 선택했다. 당시 썬의 CEO였던 조나단 슈와츠는 이를 “중차대한 변화&rd...

라이선스 오라클 자바 오픈소스 고슬링 GPL JDK 썬 마이크로시스템즈

2016.11.15

자바가 오픈소스화 행보를 보인지 10년이 지났다. 자바 설립자 제임스 고슬링이 오픈소스화가 옳은 결정이었다고 회고했다. 그러나 썬(그리고 썬을 인수한 오라클)이 충분한 진전을 보이지 않았다는 관점도 있다. Credit: Omer Wazir 자바(Java)의 오픈소스화는 10여 년이 현재에도 여전히 논쟁의 중심에 있다. 많은 이들이 오픈 자바의 가치를 인정하고 있지만 다른 한 편에서는 비판적인 자세를 견지하고 있다. 이를테면 썬 마이크로시스템즈(Sun Microsystems)가 제대로 성숙시키지 못 했다는 비판도 그 중 하나다. 썬 마이크로시스템즈는 2006년 11월 13일 업계의 오랜 열망에 부응해 자바를 공식적으로 오픈소스화 했다. 최근 자바의 설립자 제임스 고슬링은 자바의 코드가 그 이전에 이미 제공되고 있었다고 전하며, 오픈소스화 행보는 자바 플랫폼이 초기에 탄력받을 수 있었던 이유 중 하나라고 말했다. 현재 리퀴드 로보틱스(Liquid Robotics)의 새로운 수석 아키텍트로 근무 중인 고슬링은 "자바의 소스 코드는 1995년에 출시된 첫날부터 공개됐다. 우리는 이를 통해 커뮤니티가 보안 분석, 버그 보고, 성능 향상, 코너 케이스(Corner Case) 파악 등의 과제를 지원할 수 있기를 바랬다. 이 전략은 매우 성공적이었다"라고 말했다. 고슬링에 따르면 자바의 당초 라이선스 정책은 소스 코드를 내부적으로 사용할 수 있도록 허용하되 재배포는 금지하는 것이었다. 그는 "즉 오픈소스 대중에게 충분히 '공개된' 것이 아니었다"라고 전했다. 썬의 결정 당시 IBM은 자바가 ASF(Apache Software Foundation)에 기여되기를 바랬다. 만약 그랬다면 아파치 라이선스에 따라 배포됐을 것이다. 그러나 썬은 자바에 대해 GNU GPL(General Public License)를 선택했다. 당시 썬의 CEO였던 조나단 슈와츠는 이를 “중차대한 변화&rd...

2016.11.15

자바 8 공식 출시…람다식 수용으로 획기적인 변화

오라클이 마침내 JDK 8(Java Development Kit)을 공식 발표했다. 자바 8은 람다식을 수용하는 등 개발자들이 자바에 접근하는 방식을 바꾸는 등 자바 프로그래머에게는 중요한 분수령이 될 것으로 기대되고 있다. 자바 플랫폼 스탠더드 에디션 8 사양을 기반으로 하는 JDK 8은 현재 오라클 웹 사이트에서 다운로드할 수 있으며, 프로젝트 람다 지원으로 함수형 프로그래밍이 가능하다는 것이 특징이다. 애플리케이션을 실제로 실행하는 자바 SE 8 런타임 환경 역시 이용할 수 있다. 자바 개발자이자 JFrog의 CTO인 요아브 랜드맨은 “자바 8을 이용하면 코딩하는 방식이 크게 바뀐다”고 평가했다.  JDK 8의 람다식과 메소드 레퍼런스를 사용하면, API가 지금까지 자바가 사용해 왔던 것과는 상당히 다른 함수형 패러다임으로 이전하게 된다. 랜드맨은 “함수형 언어를 사용하면 개발자는 문제를 서로 다른 함수값으로 분해하고 이들 함수 간에 값을 전달하게 된다”며, 따라서 한층 디버깅하기 쉬워진다고 설명했다. IDC의 애널리스트 알 힐와 역시 JDK 8의 람다식 지원은 커다란 변화이며, 병렬 프로그래밍에도 큰 이점이 될 것이라고 평가했다. 힐와는 “람다식과 관련된 신택스의 변화는 자바에서 가장 큰 변화임에 분명하며, 향후에도 큰 영향을 미칠 것으로 보인다. 하지만 람다식은 병렬화를 특징으로 하는 현대적인 아키텍처를 수용하기 위해 자바의 역량을 강화한 여러 기능의 일부로 봐야 한다”고 지적했다. 예를 들어, 스트림 API는 대규모 데이터 세트의 병렬 처리에 중점을 두고 있으며, 프로젝트 내시혼의 더 빠른 자바스크립트 엔진은 서버 워크로드의 성능에 대한 것이다. 지난 해 9월로 예정되었던 JDK 8의 출시가 연기되면서 최근 들어 자바의 약점 중 하나로 지적되는 보안 역시 개선된 것으로 알려졌다. 하지만 모듈화를 제공하는 프로젝트 직소는 이번 릴리즈에서는 빠졌으며, 자...

오라클 자바 JDK 람다식

2014.03.19

오라클이 마침내 JDK 8(Java Development Kit)을 공식 발표했다. 자바 8은 람다식을 수용하는 등 개발자들이 자바에 접근하는 방식을 바꾸는 등 자바 프로그래머에게는 중요한 분수령이 될 것으로 기대되고 있다. 자바 플랫폼 스탠더드 에디션 8 사양을 기반으로 하는 JDK 8은 현재 오라클 웹 사이트에서 다운로드할 수 있으며, 프로젝트 람다 지원으로 함수형 프로그래밍이 가능하다는 것이 특징이다. 애플리케이션을 실제로 실행하는 자바 SE 8 런타임 환경 역시 이용할 수 있다. 자바 개발자이자 JFrog의 CTO인 요아브 랜드맨은 “자바 8을 이용하면 코딩하는 방식이 크게 바뀐다”고 평가했다.  JDK 8의 람다식과 메소드 레퍼런스를 사용하면, API가 지금까지 자바가 사용해 왔던 것과는 상당히 다른 함수형 패러다임으로 이전하게 된다. 랜드맨은 “함수형 언어를 사용하면 개발자는 문제를 서로 다른 함수값으로 분해하고 이들 함수 간에 값을 전달하게 된다”며, 따라서 한층 디버깅하기 쉬워진다고 설명했다. IDC의 애널리스트 알 힐와 역시 JDK 8의 람다식 지원은 커다란 변화이며, 병렬 프로그래밍에도 큰 이점이 될 것이라고 평가했다. 힐와는 “람다식과 관련된 신택스의 변화는 자바에서 가장 큰 변화임에 분명하며, 향후에도 큰 영향을 미칠 것으로 보인다. 하지만 람다식은 병렬화를 특징으로 하는 현대적인 아키텍처를 수용하기 위해 자바의 역량을 강화한 여러 기능의 일부로 봐야 한다”고 지적했다. 예를 들어, 스트림 API는 대규모 데이터 세트의 병렬 처리에 중점을 두고 있으며, 프로젝트 내시혼의 더 빠른 자바스크립트 엔진은 서버 워크로드의 성능에 대한 것이다. 지난 해 9월로 예정되었던 JDK 8의 출시가 연기되면서 최근 들어 자바의 약점 중 하나로 지적되는 보안 역시 개선된 것으로 알려졌다. 하지만 모듈화를 제공하는 프로젝트 직소는 이번 릴리즈에서는 빠졌으며, 자...

2014.03.19

회사명:한국IDG 제호: ITWorld 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아00743 등록일자 : 2009년 01월 19일

발행인 : 박형미 편집인 : 박재곤 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2022 International Data Group. All rights reserved.

10.4.0.31