본문 바로가기
일상(日常)/생활정보

자바 (JAVA) 프로그래밍이란 ?

by ☆B ☆ 2020. 6. 19.
반응형

 

자바 (JAVA) 프로그래밍이란 ?

 

자바(Java)는 썬 마이크로시스템즈에서 1995년에 개발한 객체 지향 프로그래밍 언어입니다. 창시자는 제임스 고슬링입니다. 2010년에 썬이 오라클에 인수되어서 현재 Java의 저작권자는 오라클이며, 2019년 1월부터 유료화되었습니다. 단, Java EE는 이클립스 재단의 소유입니다.

 

처음엔 고슬링 사무실 앞에 있는 참나무에서 따와 OAK로 지었다가 그대로 상표로 등록하기엔 문제가 생겨서 컨설턴트가 극단적인 방법을 도입, 오후에 개발진들을 회의실에 가둬서 브레인스토밍을 시켰다고 합니다. "기분이 어떤가요"(Excited!), "무엇이 당신 기분을 좋게 만드나요?"(Java coffee!) 같은 연상적인 작용을 거쳐 여러가지 이름을 정하고, 그 중에서 자바 커피의 Java를 선택했습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

개발진이 자바산 커피를 좋아해서 그랬다는 설도 있습니다. 아이콘도 커피잔 모양입니다. 또는 개발자의 이름인 James Gosling, Arthur Van Hoff, Andy Bechtolsheim의 머릿글자를 따온 것이라는 설도 있고, 그냥 사전을 펼쳤는데 눈에 들어온 이름이었다는 설도 있습니다.

 

그런데 막 지은 것 치고는 크게 흥하여 썬이 자사의 나스닥 코드를 SUNW에서 JAVA로 바꾸었을 정도로 이제는 썬의 상징이자, 근데 그 썬이 오라클에 인수돼서 사라진 건 함정 세계적으로도 널리 알려진 단어가 되었습니다. 

 

 

Java는 크게 다음과 같은 4가지 에디션으로 나뉩니다다.

 

1. Java SE(Java Standard Edition / J2SE)
대부분의 사람들이 가장 많이 접하는 표준 에디션. Java의 핵심 API와 기능들을 제공한다.

 

2. Jakarta EE, 구 Java EE(Java Enterprise Edition / J2EE)
기업에서 운영하는 서버 페이지에 특화된 에디션이다. JSP와 서블릿을 비롯한 웹 애플리케이션 서버에 관련된 기술들이 포함되어 있다.

 

3. Java ME(Java Micro Edition / J2ME)
PDA나 셋톱박스, 센서 등의 임베디드 시스템 환경에 특화된 에디션이다.

 

4. JavaFX
데스크톱 애플리케이션 개발 및 배포를 위한 에디션으로, 크로스플랫폼 이식과 GUI 라이브러리를 제공한다.

 

Java의 가장 큰 특징은 플랫폼에 독립적인 언어라는 점입니다. 소스 코드를 기계어로 직접 컴파일하여 링크하는 C/C++의 컴파일러와 달리 자바 컴파일러는 바이트코드인 클래스 파일(.class)을 생성하고, 이 파일의 바이트코드를 읽은 뒤 기계어로 바꾸어 실행하는 것은 Java Virtual Machine(JVM)입니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

예를 들어 C 계열 언어들은 윈도우에서 빌드한 프로그램을 그대로 리눅스나 macOS에서 실행하려 하면 일반적으로 오류가 나지만 Java로 작성 된 프로그램은 플랫폼에 맞는 JVM만 설치되어 있다면 문제 없이 동작합니다.

 

이는 Java 코드 자체가 플랫폼이 아닌 가상머신에 종속적이라는 점, 그리고 프로그램 실행의 주체가 운영체제가 아닌 JVM이라는 점 때문이며 이러한 점을 통틀어 Java는 플랫폼 종속성이 낮은 언어라고 표현합니다.

 

 

JVM 기반의 프로젝트에서는 하나의 언어만을 고집하지 않습니다.

 

함수형 언어가 유리(최근 유행하는 빅데이터 등)한 부분은 Scala로 작업하며, 견고한 인터페이스와 대규모 통합이 필요한 곳은 Java로 작업한 뒤 이들을 서로 합쳐서 운영하는 게 가능합니다.

 

안드로이드 쪽에서는 크리티컬하지 않은 부분부터 Kotlin으로 코드를 교체하는 경우도 많아지고 있습니다.

 

실제 현업에서는 Java를 비롯한 여러가지 인기 언어가 자주 사용되므로 장단점을 잘 알아두는게 좋습니다.

 

다른 언어에 대해 맹목적으로 찬양/비판하는 태도보다는 환경이나 주어진 작업의 특성에 따라 적합한 언어를 선택할 수 있는 노하우가 필요합니다.

 

Java를 처음 개발한 썬 마이크로시스템즈는 오라클에게 인수되었고, 2010년에 오라클은 구글이 안드로이드를 개발하면서 Java API 37개의 소스 코드를 무단 복제하여 사용했다는 이유로 소송을 제기했습니다.

 

오라클은 구글이 Java를 이용해 OS를 개발하려는 상업적 목적을 가지고 있었으므로 사전에 허가를 받았어야 했다는 주장이고, 구글은 Java API가 저작권자의 허락 없이 이용할 수 있는 공정 이용(Fair Use)의 대상이라며 맞섰다. 그리고 2018년, 장시간에 걸친 소송전은 오라클의 승리로 결론났습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

세계 프로그래밍 언어 중에서 점유율 1위를 2000년부터 무려 19년 째 1위를 질주중인 독재자 입니다. 2007년까지만 해도 전 세계 프로그래밍 언어 점유율 중에 Java 점유율이 35%까지도 차지했습니다. 그러나 2010년대 들어서 Python, C++ 등의 점유율이 급상승하면서 Java의 점유율은 점차 하락하는 추세입니다.

 

2019년 지금은 C언어보다 약간 더 많은 수준으로 17~18% 정도를 차지하고 있습니다. Java 점유율이 하락한 만큼 Python 비율이 크게 올랐습니다.

 

2017년 8월 17일, 오라클이 Java EE를 포기한다고 발표했습니다. 오픈오피스, 넷빈즈 때와 같이 오픈 소스 생태계로 보내려 하고 있으며, 아파치 소프트웨어 재단과 이클립스 재단이 Java EE를 넘겨받을 유력한 후보로 알려져 있습니다.

 

Opening Up Java EE 결국 이클립스 재단이 맡는 것으로 확정되었으며, Java EE의 오픈 소스화를 위한 9개 프로젝트를 추진한다고 밝혔습니다.

 

다만 오라클이 Java EE라는 상표권까지 넘긴 것은 아니기 때문에, 새로운 이름을 공모하였고 이후 자카르타 EE(Jakarta EE)라는 새 명칭이 결정되었습니다. 엔터프라이즈 자바의 새 이름 ‘자카르타 EE' 입니다.

반응형

댓글