Offcanvas
Some text as placeholder. In real life you can have the elements you have chosen. Like, text, images, lists, etc.
Offcanvas
1111Some text as placeholder. In real life you can have the elements you have chosen. Like, text, images, lists, etc.

자바

파이썬, 티오베 지수 선정 2021년 '올해의 언어'

파이썬이 2년 연속으로 티오베 지수가 뽑은 2021년의 프로그래밍 언어로 선정되었다. 티오베 지수는 평점이나 선호도에 기반해 순위를 결정한다. 파이썬의 선호도는 2020년보다 1.86% 올라 2021년 연말 기준으로 티오베 인덱스 13.58%로 집계됐다. 아직 2001년 자바가 기록한 전체 최고 기록인 26.49%와는 거리가 있다. 티오베는 C#이 연중 내내 우세했지만 12월에 파이썬이 C#를 제쳤다고 밝혔다. 데이터 과학, 데브옵스, 웹 개발의 기본 요소가 된 파이썬은 현재도 티오베 순위 1위를 달리고 있다. 2021년 초에는 3위였다가 10월에 1위에 올랐다. 티오베 지수는 검색 엔진을 통해 전 세계의 숙련 엔지니어 수나 코스, 언어와 관련된 서드파티 업체를 기반으로 언어 인기도를 평가한다. 그 외 스위프트, 고, 러스트, 코틀린이 상승세에 있다고 발표했다. 2022년 1월 티오베 지수 상위 10개 언어는 다음과 같다. 1.    파이썬, 13.58% 2.    C, 12.44% 3.    자바, 10.66% 4.    C++, 8.29% 5.    C#, 5.68% 6.    비주얼 베이직, 4.74% 7.    자바스크립트, 2.09% 8.    어셈블리, 1.85% 9.    SQL, 1.8% 10.   스위프트, 1.41% 파이썬은 구글에서 언어 튜토리얼 검색 빈도를 분석하는 Pypl 프로그래밍 언어 선호도 지수에서도 1위를 차지했다. 2022년 Pypl 상위 10개 언어 순위는 다음과 같다. 1.    파이썬, 28.74% 2.    자바, 18.01% 3.    자바스크립트, 9.07% 4. ...

파이썬 스위프트 자바 2022.01.05

'실전 예제로 보는' 자바 개발에서의 도커 사용법

개발 중 도커(Docker)를 사용할 때 얻는 이점은 개발 기기와 다양한 환경(QA, 프로덕션 등)에 걸쳐 일관적인 테스트 환경을 제공할 수 있다는 것이다. 반면 어려운 점도 있다. 도커 컨테이너로 인해 개발자가 코딩 중 관리해야 하는 부가적인 추상화 계층이 발생한다.  도커를 이용하면 애플리케이션 코드를 시스템 요구사항 정의와 함께 여러 플랫폼에서 실행 가능한 패키지로 묶을 수 있다. 소프트웨어 런타임 배포와 관리에서 근본적으로 필요한 부분을 해결하는 효과적인 추상화지만, 대신 프로그래머가 대처해야 하는 부가적인 간접성 계층이 발생해 소프트웨어와 그 종속 항목의 내부 구조를 반복적으로 수정하고 테스트해야 한다. 이러한 개발 속도 저하는 개발자가 가장 피하고 싶어하는 일이다. 이를 둘러싼 다양한 찬반 양론이 있다.   개발 기기 전반에서 본격적으로 도커를 사용하지 않는다고 해도 컨테이너 내에서 실행되는 코드를 수정, 디버깅하는 다양한 사례가 있다. 예를 들어 개발자는 도커를 사용해 프로덕션 환경을 똑같이 만들어 오류 또는 기타 조건을 재현할 수 있다. 또한 도커화된 앱을 실행하는 호스트에 대한 원격 디버깅 기능은 QA와 같이 실행 중인 환경에 대한 직접적인 문제 해결을 가능하게 해준다.  여기서는 구글 클라우드 플랫폼(GCP)에서 VM에 간단한 자바 앱을 만들어서 도커화한 다음 원격으로 디버깅하고, 로컬 호스트의 비주얼 스튜디오 코드에서 앱 코드를 수정하는 과정을 살펴보자. 실행할 2가지 중요한 작업은 컨테이너를 재시작하지 않고 실행 중인 코드베이스 업데이트하기, 그리고 실행 중인 컨테이너화된 앱 디버깅하기다. 또한 이 프로세스를 원격으로 실행되는 컨테이너에서 수행한다. 즉, 로컬 개발 호스트 외에 QA 서버와 같은 서비스를 원격으로 디버깅하는 방법도 살펴본다.   자바와 스프링 부트 설정하기 시작 지점은 GCP 콘솔이다(계정이 없다면 무료 계정 가입). 컴퓨트 엔진(Compute Engine) 링크로 이동하면 VM...

자바 도커 docker 2021.11.10

프로그래밍 언어의 간단한 역사

프로그래밍 언어 개발은 컴퓨터의 기계어와 밀접하게 연관된다. 기계어는 이름에서 알 수 있듯이 기계가 실행할 수 있는 명령으로 된 언어다. 여기서 기계는 컴퓨터에 내장된 마이크로프로세서를 의미한다(CPU, 하드 디스크 컨트롤러 등). 프로세서는 특수한 기계 명령어에 따라 동작한다. 이와 같은 명령어가 결합되어 컴퓨터가 하나씩 명령을 실행할 수 있는 이진 기계 프로그램을 구성한다. 사람이 알아보기 어렵고, 개발하기는 더욱 어렵다.    어려운 개발을 용이하게 하기 위해 프로그래밍 언어와 텍스트 편집기, 변환 프로그램이 고안됐다. 첫 걸음은 1948년에 등장한 어셈블리(Assembly)이다. 프로그래머는 텍스트 편집기 안에서 어셈블리어 프로그램을 작성해서 텍스트 파일로 저장한다. 이 파일을 컴퓨터가 직접 실행할 수는 없으므로 중간에 어셈블러라는 보조 프로그램이 필요하다. 어셈블러는 이 파일, 즉 소스 코드를 기계 프로그램으로 변환한다(다음 그림 참조). 컴퓨터는 이렇게 해서 나온 이진수 기계 프로그램만 실행할 수 있다.  어셈블러 소스 코드는 기계어에 비해 이해하기 쉽다. 일련의 세부적인 명령으로 구성되기 때문에 명령의 수가 많고 장황하다. 따라서 간단한 hello world 프로그램도 파스칼과 같은 고수준 언어에 비하면 상당히 길다(다음 그림 참조). 큰 어셈블리어 프로그램을 작성하는 데는 오랜 시간이 걸린다. 또한 어셈블리어는 특정 프로세서에 연계되고 파스칼과 같은 고수준 언어에 비해 읽기가 어렵다. 장점은 잘 프로그램된 어셈블러 프로그램의 경우 실행 속도가 빠르고 메모리 및 하드 디스크 공간 사용량이 적다는 것이다.  이와 같은 확실한 장점이 있긴 하지만 열악한 가독성 및 유지보수 편의성, 낮은 개발자 생산성, 무엇보다 특정 하드웨어(마이크로프로세서)에 대한 의존성과 같은 단점이 너무 커서 불과 몇 년 후에 2세대 언어가 개발됐다. 가장 먼저 나온 고수준 언어는 포트란(Fortran)과 코볼(COBOL)이다. 포트란은...

프로그래밍 어셈블리 포트란 2021.11.02

'살아 움직이는 언어' 자바에 추가된 6가지 새로운 기능

자바는 2018년 새로운 릴리즈 주기를 도입하면서 개발 측면에서 가장 큰 변화를 단행했다. 이 과감한 새로운 계획의 결과로 자바 개발자들은 6개월마다 새로운 기능 릴리즈를 받고 있다.   자바를 신선하고 현 시점에 맞는 언어로 유지하는 데는 분명 좋지만, 대신 새로운 기능을 놓치기도 쉽다. 새로이 추가된  유용한 기능 6가지를 대략적으로 살펴본다.     Optional 클래스 널 포인터 예외는 가장 전통적인 오류 가운데 하나다. 익숙한 문제지만 방지하기가 쉽지 않기도 하다. 그러나 자바 8에서 처음 소개되어 자바 10에서 더 개선된 Optional 클래스를 사용하면 더 이상 골칫거리가 아니다. 기본적으로 Optional 클래스는 변수를 래핑한 다음 래퍼의 메서드를 사용해서 널을 더 간편히 다룰 수 있게 해준다.   예시 1에는 흔한 널 포인터 오류의 예가 나와 있다. 클래스 레퍼런스인 foo가 널이고, 여기서 메서드인 foo.getName()이 액세스된다. 예시 1. Optional이 없는 널 포인터 public class MyClass {     public static void main(String args[]) {       InnerClass foo = null;       System.out.println("foo = " + foo.getName());     } } class InnerClass {   String name = "";   public String getName(){       return this.name;   } } ...

자바 JAVA 2021.09.28

글로벌 칼럼 | '오라클-구글' 자바 소송으로 깨달은 SW 혁신의 본질

세계에서 가장 큰 IT 기업 간의 10년에 걸친 법정 다툼이 마침내 끝이 났다. 결과는 오픈소스 소프트웨어 커뮤니티의 승리였다.   오라클과 구글 간의 사건에 대해 간략히 정리해 보자. 2010년 오라클은 구글이 안드로이드 스마트폰 운영체제에서 오라클의 자바 API를 사용하는 것이 저작권 침해라며 구글을 고소했다. 미국 지방법원은 구글의 손을 들어줬지만, 항소심에서는 뒤집혔다. 이 사건은 결국 미국 대법원까지 올라갔으며, 올 4월 6대 2로 구글이 최종 승소했다. 판결 내용은 구글의 사용은 실제로 '공정한 사용'이었다는 것이다. 즉, 오픈소스의 승리였다.   저작권이 있는 API의 의미 이번 소송은 API가 저작권이 있는지, 그리고 법에 따라 API에 공정한 사용이 적용되는지를 둘러싼 논란을 촉발시켰다. 미국 대법원은 이 사건과 관련된 가장 광범위한 법적 문제, 즉 API가 저작권 보호를 받을 자격이 조금이라도 있는 경우에 대한 판결을 보류했지만, 이 평결은 지금 상태로도 소프트웨어 개발에 API를 사용하는 데 몇 가지 중요한 함의를 지닌다. 지난 10년 동안 많은 판사와 변호사가 자바 API를 자동차의 가속 페달과 쿼티 자판 배열, 즉 복잡한 시스템의 토대가 되는 범용 인터페이스와 비교했다. 현재 우리가 사용하는 대부분의 소프트웨어는 논란이 된 자바 API와 같이 재 구현된 API를 기반으로 구축된다. 만약 이 소송에서 오라클이 승리했다면 수십 년 동안 프로그래머가 사용해 온 소프트웨어 개발의 근본적인 측면을 변화시키면서 기술 산업 전반에 충격을 안겨주었을 것이다. 최종 사용자도 비용 상승과 애플리케이션 간 상호 호환성 저하를 포함한 여러 부작용을 겪을 것임도 분명했다. IT 업계 대부분은 이번 소송 결과를 소프트웨어 개발과 혁신의 승리로 보고 있다. 대법원의 결정은 저작권법에서 '공정한 사용'의 중요성을 재확인하고 소프트웨어 개발자가 새롭고 창의적인 기술의 기반 요소로 오픈소스 소프트웨어를 오랫동안 사용해 온 것을 지지했다. 그러나...

오픈소스 개발자 오라클 2021.09.28

마이크로소프트, 자바 GC툴킷 오픈소스로 공개…JVM 메모리 상태 고급 분석 가능

마이크로소프트 자바 엔지니어링 그룹이 GC툴킷을 오픈소스로 공개했다. GC툴킷은 자바 가비지 콜렉션(garbage collection, GC) 로그 파일을 분석하는 일련의 라이브러리를 말한다. 오픈소스로 공개된 GC툴킷은 깃허브에서 다운로드할 수 있고, MIT 라이선스로 제공되며, 로그 파일을 개별 이벤트로 구문 분석하고 그 이벤트에서 데이터를 집계하는 API를 포함한다. 사용자는 자바 GC 로그에 표시된 것처럼 JVM에서 관리하는 메모리 상태에 대한 임의적이고 복잡한 분석을 생성할 수 있다. 8월 초 공개된 GC툴킷은 API, GC 로그 파일 구문, JVM에서 반응형 애플리케이션 개발에 사용되는Vert.x 툴킷에 기반한 메시지 백플레인을 다루는 3가지 자바 모듈로 구성된다. API 모듈은 툴킷의 진입점 역할을 하면서 GC 로그 파일을 몇 가지 메소드 요청으로 분석할 때 Vert.x와 파서의 세부 활용 내역을 숨긴다. 파서 모듈은 강력한 GC 로그 파서로 개발된 정규표현과 코드의 집합이다. Vert.x 기반 메시징 백플레인은 2가지 메시지 버스를 사용한다. 첫 번째는 GC 파일에서 로그 라인을 스트리밍한다. 이 버스의 리스너는 데이터 소스를 GC 사이클이나 안전 지점으로 나타내는 이벤트로 전환하는 파서다. 분석 대상인 데이터는 개발자가 어떤 것을 원하는지에 따라 달라진다. GC툴킷에는 GC 로그 파일 데이터를 분석하고 캡처하는 어그리게이터/어그리게이션 프레임워크가 있다. 이벤트를 캡처하는 코드를 어그리게이터, 데이터를 분석하는 코드는 어그리게이션이라고 한다. GC툴킷 배포에 관심이 있는 개발자는 이번 프로젝트를 주제로 한 온라인 토론에 참가할 수 있다. 마이크로소프트 자바 GC 프로젝트 오픈소스는 지난 5월 마이크로소프트 자체 자바 배포판인 오픈JDK 빌드 이후 이루어진 것이다. 마이크로소프트는 애저 클라우드에서도 자바 개발을 지원하고 있다. editor@itworld.co.kr 

자바 깃허브 오픈소스 2021.09.07

자바 역직렬화 취약점의 이해와 방어 방법

자바 프로그래밍 언어는 매끄럽고 우아하게 데이터를 저장하고 불러오는 방법을 제공한다. 그러나 적절한 입력 검증과 안전 장치를 두지 않으면 애플리케이션이 안전하지 않은 역직렬화 취약점(deserialization vulnerabilities)에 노출될 수 있다.   역직렬화 취약점은 단순한 데이터 손상이나 애플리케이션 충돌을 야기하고 이것이 서비스 거부(DoS)로 이어질 수 있다. 많은 경우 원격 공격자는 이 버그를 트리거해서 취약한 시스템에서 임의 코드 실행 기능을 얻는다. 자바에서 직렬화란 무엇인가? 직렬화(Serialization)는 객체의 상태를 바이트 시퀀스로 저장하는 프로세스를 의미한다. 반대로 역직렬화는 이런 바이트를 객체로 다시 구축하는 프로세스다. 예를 들어 시스템에 있는 파일에서 로컬로 데이터를 읽고 쓰는 애플리케이션을 개발했다고 가정하자. 또는 네트워크를 통해 데이터를 송수신하는 애플리케이션을 만들었다. 데이터의 무결성을 보존하면서 이 작업을 수행하는 최선의 방법은 무엇일까? 스토리지에 관한 한, 파일 또는 데이터베이스 중 데이터 저장 위치를 선택하는 것은 개발자의 몫이다. 그렇다 해도 네트워크를 통해 데이터를 전송한다면 데이터를 '표준화(standardizes)'하고 가급적 플랫폼 독립적인, 적절한 데이터 형식과 인코딩 메커니즘을 선택해야 한다. 바이너리 또는 텍스트 데이터를 간단한 base63 ASCII 형식으로 수동 변환하는 방법을 포함해 많은 솔루션이 있다. 그러나 데이터 인코딩과 디코딩 메커니즘을 굳이 다시 구현할 필요가 있을까? 자바에 내장된 직렬화 개념이 애플리케이션에 의해 생성되어 아직 메모리에 있는 객체를 대상으로 그 모든 기능을 해준다. 자바 직렬화 API는 개발자에게 객체 직렬화를 다루기 위한 표준 메커니즘을 제공한다. 예를 들어 자바에 '이름', '이메일 주소', '전화번호' 및 '주소'와 같은 개인정보가 담긴 필드가 포함된 'Person'이라는 클래스가 있다고 가정하자. 사용자에게 '저장' 옵션을...

자바 역직렬화 취약점 2021.08.30

구글, 10년 자바 분쟁에서 승리…미 연방대법원 “공정 이용” 판결

안드로이드의 자바 코드 사용을 두고 벌어진 구글과 오라클의 10년 분쟁에서 미 연방 대법원이 구글의 손을 들어줬다. 구글이 자바 API의 작은 부분을 복사해 사용하는 것은 오라클의 저작권을 침해하지 않는 공정한 이용에 해당한다고 판결한 것이다.    미 연방 대법원은 4월 5일 구글의 자바 SE API 복제, 특히 프로그래머가 새롭고 변형된 프로그램에서 작업할 수 있도록 해주는 일련의 코드를 사용한 것은 해당 자원의 공정 이용에 해당한다고 판결했다. 법원은 판결문을 통해 “컴퓨터 프로그램은 원래부터 기능적이라는 사실 때문에 전통적인 저작권 개념을 적용하기 어렵다”고 설명했다. 법원은 판결을 통해 구글이 자바 SE, 특히 자바 API에서 약 1만 1,500줄의 코드를 복제해 안드로이드에 사용했다고 밝혔다. 하지만 이는 286만 줄이나 되는 전체 API의 0.4%에 불과하다는 것이 법원의 판단이다. 한편, 대법원의 판결에도 오라클은 구글이 자바를 남용하고, 심지어 훔쳤다는 강경한 입장을 바꾸지 않았다. editor@itworld.co.kr

구글 오라클 자바 2021.04.06

"자바스크립트, 새로운 자바인가" 자바스크립트의 자바 대체 논쟁

자바는 '한 번 쓰고 어디서나 실행(Write once, run anywhere)'하는 프로그래밍 언어의 대명사다. 이런 자바를 자바스크립트가 대체할까?   답은 보는 관점에 따라 다르다. 또한 웹어셈블리(WebAssembly)와 같은 기술이 등장하면서 새롭게 부상하는 “한 번 쓰고 어디서나 컴파일(write once, compile anywhere)”하는 패러다임이 자바에 새로운 힘을 부여할 수도 있다. 자바는 JVM이 동작하는 곳 어디서나 실행되면서 많은 운영체제와 모바일 및 임베디드 기기를 포함한 하드웨어 플랫폼 간에 이식성을 제공한다. 그러나 뉴트랄리노(Neutralino) 자바스크립트/타입스크립트 프레임워크의 저작자 샬리타 수랑가는 브라우저 내 애플리케이션의 중심이었던 자바스크립트는 이제 일렉트론(Electron) 프레임워크와 같은 기술을 통해 데스크톱 애플리케이션에서, 리액트 네이티브(React Native)와 같은 프레임워크를 통해 모바일 애플리케이션에서, 그리고 Node.js와 데노(Deno)를 통해 웹 백엔드에서도 동작한다고 강조했다. 또한 노드MCU(NodeMCU)와 같은 도구를 통해 IoT와 로봇 개발에서도 자바스크립트를 사용할 수 있다. 디지털 제품 제조업체인 99x의 소프트웨어 엔지니어이자 아파치 프로젝트 관리 위원이기도 한 수랑가는 “요즘은 자바로 할 수 있는 일은 무엇이든 자바스크립트로도 할 수 있다”라고 말했다. 수랑가는 최근 미디엄(Medium)에 “한 번 쓰고 어디서나 실행하는 언어라고 하면 이제 자바가 아닌 자바스크립트”라고 주장하는 글을 게시했다. 자바스크립트, 웹 브라우저에서 서버와 기기로 수랑가는 자바스크립트를 불멸의 언어로, 자바를 서서히 죽어가는 언어로 선언했지만 수랑가의 말이 자바스크립트가 프로그래밍 언어로서의 자바를 대체할 것이라는 의미는 아니다. 이보다는 자바가 빛을 발하는 모든 곳에서(데스크톱 애플리케이션, 웹 서버, 웹 클라이언트, 모바일 앱, 스마트 TV 애플리케이션) 이제 자바스크립트가 ...

자바스크립트 자바 2021.03.30

글로벌 칼럼 | 파이썬이 기업을 지배하게 될 8가지 이유와 그렇지 않을 8가지 이유

분명 파이썬(Python)이 소프트웨어 개발자들 사이에서 큰 인기를 끌고 있으며 그 인기는 지속적으로 높아질 것이다. 매월 프로그래밍 언어의 인기도를 공개하는 소프트웨어 업체 티오베(TIOBE)는 지난해 11월 파이썬이 처음으로 자바(Java)를 제치고 2위 자리에 올랐다고 밝혔다.  이 외에도 파이썬의 성공을 나타내는 지표는 많은데, 이는 그리 놀라운 일도 아니다. 실제로 다른 순위에서도 파이썬이 약진을 기록했다. 예를 들어, IEEE는 매년 적합성에 따라 언어를 평가하는데, 2020년에는 파이썬이 목록의 최상단에 포함됐다.  컴퓨터 언어의 인기 순위는 고등학교 아이들이 파티를 하면서 학교에서 가장 인기있는 아이를 고르라고 하는 것과 별반 다르지 않다. 작성된 코드의 줄 수를 세어보는 경우, 일부 반대 의견을 가진 사람들이 짧고 읽기 쉬운 코드를 원한다고 지적할 것이다. 프로덕션 시 실행되는 코드를 측정하려 한다면, 최고의 언어는 중독성 있는 스마트폰용 게임을 개발하기 위해 사용되는 것이다. 손쉬운 지표는 없지만 모든 수치를 종합해 보면 개략적으로 유용한 해답을 얻을 수 있다. 성공이 성공을 부른다. 오픈소스 세계에서 온, 한 때 하찮았던 스크립트 작성 언어의 중요성이 증가하고 있음을 부인하는 사람은 거의 없다. 파이썬의 부상으로 많은 기업 관리자가 이제 이 유행에 편승할 때가 되었는지 궁금할 것이다. 이 질문의 답을 얻기 위해 본지는 파이썬에 합류하는 것이 현명한 8가지의 이유와 수십 년은 더 기다려야 하는 8가지 이유를 정리해 보았다. 파이썬은 인기가 있다 그렇다. 엄마들은 모두가 쥐떼처럼 뛰어내린다고 해서 다리에서 뛰어내릴 필요가 없다고 말하지만 아이에게는 멋진 아이와 어울리기 위해 서둘러 뛰어내려야 하는 나름대로의 실질적인 이유가 있다. 프로그래머를 고용하기는 더 쉬우며, 대부분 입문 프로그래밍 수업에 파이썬을 도입한 대학에서 이제 막 졸업한 젊은 세대는 더욱 그렇다. 파이썬의 범용성 덕분에 더 많은 새로운 라이브러리와 도...

파이썬 자바 오픈소스 2021.01.28

아줄, 오라클 자바 마이그레이션 서비스 공개

자바 사용을 놓고 오라클과 갈등이 있는 기업을 겨냥한 기술 지원 서비스가 등장했다. 최근 아줄(Azul)은 IT팀이 오라클의 자바 SE(Standard Edition)를 아줄의 오픈JDK 줄루(Zulu) 빌드로 전환할 수 있는 지원 서비스를 출시했다. 이 서비스에는 인벤토리와 사용 감사 소프트웨어부터 애플리케이션 테스팅과 검증도 포함된다. 이 서비스의 핵심은 자바 자산을 오라클에서 아줄의 자바로 빠르고 안전하게 전환하는 것이다. 업체는 오라클의 최근 라이선싱과 기술지원 가격 체계가 사용자를 힘들게 하고 있다며 이 때문에 많은 기업이 비용 효율적이 오픈소스 대체재를 찾고 있다고 주장했다. 아줄과 그 협력사가 제공하는 마이그레이션 서비스는 크게 2가지다.   레벨 1 마이그레이션, 오라클 자바에서 오픈JDK의 아줄 줄루 빌드로 직접 전환하는 일반적인 기업 상황에서 활용할 수 있다. 턴키 전환 프로세스도 지원한다. 레벨 2 현대화, 애플리케이션을 오래된 자바 버전에서 최신 릴리즈로 현대화하려는 기업을 위한 파트너 서비스다. 자바 6 혹은 자바 7 기반 애플리케이션을 더 긴 기술지원(LTS)을 받을 수 있는 자바 8 또는 자바 11로 전화하는 것이 대표적이다. 아줄은 스탠더드 자바에 대한 기술지원 서비스에 관한 한 오라클이 제공하는 것 대비 비용 절감 효과가 있다고 주장했다. 예를 들어 아줄 줄루 엔터프라이즈 연간 계약은 서버 25대, 데스크톱 100대 기준 2만 2,072달러이다. 오라클은 데스크톱 사용료가 사용자 1명당 월 2.5달러, 자바 SE 비용이 서버 프로세서 기준 월 25달러다. 오라클은 계약 물량에 따라 가격이 변동된다. 한편 아줄과 오라클의 자바 제품은 오픈JDK 프로젝트에 개발된 동일한 소스 코드를 기반으로 한다. 사양과 컴플라이언스, 성능에서 기본적으로 같다고 아줄 측은 주장했다. 아줄 줄루는 아줄 웹사이트에서 다운로드할 수 있다. editor@itworld.co.kr

아줄 오라클 자바 2020.10.26

글로벌 칼럼 | 오라클과 구글의 법정 분쟁이 가져올 수 있는 소프트웨어 개발의 전복

만약 미 연방대법원이 API도 저작권 대상이라고 판결한다면, 그 영향은 전 세계 소프트웨어 개발자에게 미칠 것이다. 오라클과 구글은 10년째 법정 공방을 벌이고 있다. 업계의 주목을 받는 이 소송이 우리가 알고 있는 소프트웨어 엔지니어링을 완전히 바꿔 놓을 수 있다는 이야기는 잘 알려져 있다. 물론 최근 소식은 모를 수 있다. 하지만 아직 아무런 일도 일어나지 않았기 때문에, 무심하다고 탓할 수는 없다.   그런데 이제 다시 뉴스에 관심을 기울여야 할 때가 됐다. 그동안 코로나19에 대한 우려로 연기됐던 이 소송의 최종 심리가 미 대법원 2020~2021 시즌에 열리는데, 이번 주에 시작되기 때문이다. 최종심 법원의 판결은 되돌릴 수 없고, 번복될 가능성도 적다. 따라서 지방법원과 고등법원의 이전 판결과는 달리, 대법원의 판결은 영구적인 효력을 가진다. 그리고 재판은 미국에서 진행되지만, 그 판결은 전 세계 IT 산업에 영향을 미칠 것이다. 우선 지난 10년간의 이야기를 요약하고 넘어가자. 오라클은 구글이 안드로이드 운영체제에서 자바 API를 사용한 것이 저작권 위반에 해당한다고 주장하는데, 구글이 자바 라이선스를 받은 적이 없기 때문이다. 그래서 오라클 대 구글 공방은 API가 저작권 대상인지 여부를 가리고, 만약 그렇다면 구글의 사용이 ‘공정 이용’에 해당하는지 여부를 가려야 한다.  소프트웨어 개발자와 전체 소프트웨어 산업에는 판도가 바뀌는 문제이다. API를 재구현하는 것은 소프트웨어 엔지니어링에서는 일상적인 일이고, 만약 오라클이 승소한다면 개발자가 작업하는 방식이 극적으로 바뀔 것이기 때문이다. 그렇다면, 구체적으로는 어떻게 바뀔지, 또 소프트웨어 산업 종사자에게는 어떤 변화가 일어날지 살펴보자.   API 저작권의 의미 현대 소프트웨어 개발 베스트 프랙티스 대부분은 API를 재구현하는 것을 중심으로 구축된다. 미 연방대법원의 판결이 오라클의 손을 들어준다면, 개발자는 새로운 소프트웨어를 구축하는 방식을 바꿔야만 ...

API 저작권 공정이용 2020.10.08

25주년된 자바 프로그래밍 언어, 지속적인 진화로 인기 정상

25년이 된 자바(Java) 프로그래밍 언어가 중대한 이정표에 도달했는데, 오라클은 미래를 계획하고 미 대법원의 판결은 임박했다.  자바 프로그래밍 언어는 2020년 5월 23일 썬 마이크로시스템즈(Sun Microsystems)가 자바를 처음으로 소개한 날로부터 25년이 지났다. 파이썬(Python)과 고(Go)와 같은 많은 경쟁 언어와 경쟁하는 동안에도 자바는 개발자와 기업에게 인기를 유지해왔다. 그러나 자바는 안주하지 않고 장기적인 문제점을 대처하기 위한 개혁안을 마련하면서 개조를 꿈꾸고 있다.  1991년 제임스 고슬링이 주도한 오크(Oak) 프로젝트에서 비롯된 객체 지향의 자바(Java Virtual Machine)는 여러 하드웨어 플랫폼과 운영체제를 지원하고, 자바 애플릿(Java applets)이 웹 페이지에 실행할 수 있게 되면서 “한 번 작성하면, 어디서든 실행한다”라는 이식성을 내세워 명성을 얻었다. 자바 애플릿은 수년 동안 자바스크립트(JavaScript)보다 더 나은 성능을 제공했지만, 브라우저 제조업체들이 선호하지 않아 결국 2018년 자바에서 퇴출당했다.  자바는 2006년 후반에 오픈소스가 됐다. 자바의 스튜어드십(Stewardship)은 2010년 1월 썬을 인수한 오라클이 가져갔다. 오라클은 2017년 자바의 엔터프라이즈 버전인 자바 EE를 이클립스 재단(Eclipse Foundation)에서 분리했지만, 기본 자바 표준판인 Java SE(Java Standard Edition)는 그대로 유지하고 있다. 표준 자바는 지금까지 대략 3년마다의 출시 기간과는 달리 지금은 6개월마다 출시하고 있다.  여전히 건재한 자바  자바는 티오베(Tiobe), 레드몽크(RedMonk), PYPL(PopularitY of Programming Language)과 같이 유명한 언어인기지수에서 상위 3개 프로그래밍 언어에 속한다. 자바는 지난 달까지 5년동안 최상위 언어로 자리매김해왔는데, 5월 ...

25주년 자바 2020.05.25

자바 개발자를 위한 머신러닝 실전 가이드 - ITWorld How To

자율 주행 자동차와 안면 인식 소프트웨어, 음성 제어 스피커 등은 모두 머신러닝(Machine Learning) 기술과 프레임워크를 기반으로 만들어졌다. 앞으로 10년 동안, 차세대 제품이 우리의 일상과 소프트웨어 개발은 물론, 우리가 만들고 사용하는 애플리케이션과 제품에 대한 새로운 접근 방식을 주도할 것이다. 자바 개발자도 이런 흐름에 대비해야 한다. 머신러닝이 작동하는 방식과 이를 알고리즘으로 구현하는 방법을 살펴보자. 머신러닝 솔루션 구축을 위한 JVM 프레임워크 ‘웨카(Weka)’ 활용법도 알아본다   주요 내용 - Part 1. 머신러닝 알고리즘의 이해와 ‘웨카’ 기본 사용법 - Part 2. 내가 만든 모델, 업무 환경에 배포하기      

자바 인공지능 개발자 2020.02.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.