Coded by Juny

Java의 역사 본문

Study/Java

Java의 역사

Juny_Choi 2023. 11. 10. 00:30

자바의 탄생

자바는 1991년부터 썬마이크로시스템즈의 제임스 고슬링과 연구원들이 개발하여 1995년 처음 공개된 "Write Once, Run Anywhere" 하기로 약속한 객체지향 프로그래밍 언어이다.
 
Write Once, Run Anywhere 이란, 작성은 한 번만 하되 돌리는 것은 어디에서든지 가능하다는 뜻으로 컴퓨터에 따라 다른 코드를 작성해야 했던 어셈블리어와 다르게 자바는 컴퓨터가 달라도 하나의 통일된 코드로 실행할 수 있다는 장점을 나타내기 위해 제작되었다.

James Arthur Gosling
James Arthur Gosling, Java의 조물주 일원

 
 
 

Java를 왜 만든거지?

당시의 소프트웨어 개발 환경에 대한 몇 가지 문제를 해결하고자 만들어졌다.

1. 플랫폼 독립성: 자바는 "Write Once, Run Anywhere"라는 철학을 가지고 있어서, 한 번 작성한 코드를 어떤 플랫폼에서든 실행할 수 있도록 설계되었다. 이는 자바 애플리케이션이 다양한 운영 체제나 하드웨어에서 동작할 수 있게 해주는 특징이 있다.

2. 분산 컴퓨팅: 당시에는 분산 시스템의 중요성이 커지고 있었고, 자바는 네트워크를 통한 분산 환경에서도 효율적으로 동작할 수 있도록 설계되었다.

3. 객체 지향 프로그래밍: 자바는 객체 지향 프로그래밍 언어로 개발되었는데 객체 지향 프로그래밍은 코드의 재사용성과 유지보수성을 높여주는 장점을 가지고 있어 당시의 소프트웨어 개발 방법론에 부합했다.

4. 웹 애플리케이션 개발: 초기에는 인터넷이 부상하면서 웹 애플리케이션의 수요가 증가하고 있었는데, 자바는 웹 애플리케이션 개발에 적합한 언어로 사용되었다.

이런 특징들로 자바는 다양한 분야에서 현재까지 유용하게 사용되고 있다.
 
 
 

그렇다면 왜 Java인가? Vava는? Namanva는? (죄송합니다.)

초기에 Java는 사실 오크(Oak)라는 띠용스러운 이름으로 배포될 뻔했다. 그 이유는 제임스 고슬링이 사무실에서 바라본 창문 밖에 오크나무에게 영감을 받아 해당 이름으로 지었졌었다. 그러나 다행히도 해당 이름은 오크 테크놀로지라는 회사가 이미 상표 등록을 마친 상태여서 철수되었다고 한다. 
 
새 이름에 대한 아이디어를 찾기 위해 회의를 열었고, 10개 정도의 이름이 선택되었고 그중 3개의 이름이 법무지원 부서에 의해 선택되었는데 그 중 하나인 Java가 채택되었다고 한다. 

Oak에서 벗어나 극적으로 태어난 Java

 
 
 

그런데 Java는 썬마이크로시스템즈에서 개발했다며, 지금은 Oracle에 있던데?

처음부터 말하자면 썬마이크로시스템즈는 2002년부터 적자로 전환해 오라클에 인수합병되었다.
 
한때 썬 마이크로시스템즈는 중대형 서버군에서 하드웨어부터 소프트웨어까지 종합 설루션을 보유했다. 주력 사업은 SPARC CPU를 장착한 서버 및 워크스테이션 사업이었으며 소프트웨어에서도 숨은 강자였다. 그러나 닷컴 버블 붕괴로 수많은 닷컴 기업들이 폐업하고 그로 인해 서버들이 경매로 쏟아져 나오면서 썬은 큰 타격을 입었다. 
 
사업 부진을 해결하기 위해 인력 감축 및 공장 폐쇄 같은 온갖 비용 절감에, Solaris를 오픈 소스로 공개하고, 인텔이나 AMD CPU의 워크스테이션도 출시했으며 UltraSPARC도 OpenSPARC으로 공개하는 등의 여러 노력을 기울였지만, 2010년 1월에 결국 오라클에 인수 합병되어 '오라클 아메리카'로 이름이 바뀌었다.
 
사실상 현재는 인수 합병된 썬마이크로시스템즈가 소프트웨어 전문기업인 오라클과 태생부터 경쟁자였기 때문에 오라클은 썬이 가지고 있던 프로젝트에 지원을 줄이기 시작했고 훼방을 놓았다. 결국 오라클은 넷빈즈와 오픈오피스를 아파치 소프트웨어 재단에 기증하였고 현재는 Java, MySQL도 포기하는 것 아니냐는 소문이 돌고 있다고 한다.
 
Java EE는 이클립스 재단, 넷빈즈와 오픈오피스는 아파치 소프트웨어 재단에 넘어갔고, 나머지는 전부 오라클에서 소유하고 있다.
 
 
 

Java언어도 분류되나?

Java 언어는 여러 종류의 버전이 있다. 주요한 Java 언어 종류는 다음과 같다.
1. Java SE (Standard Edition): 기본적인 자바 플랫폼으로, 일반적인 데스크톱 및 서버 애플리케이션을 개발하는 데 사용

2. Java EE (Enterprise Edition): 대규모 기업 애플리케이션을 위한 확장된 버전으로, 분산 시스템 및 웹 애플리케이션을 개발하는 데 사용

3. Java ME (Micro Edition): 모바일 및 임베디드 시스템을 위한 경량 버전으로, 휴대전화 및 기타 작은 장치용 애플리케이션을 개발하는 데 사용

4. OpenJDK (Open Java Development Kit): 오픈 소스로 제공되는 Java SE의 구현체로, 다양한 플랫폼에서 자바 애플리케이션을 실행할 수 있도록 지원

5. Android Java: 안드로이드 앱을 개발하기 위한 특수한 자바 버전. 안드로이드 스튜디오에서 사용

이러한 다양한 Java 언어의 종류는 각각의 특징과 용도에 맞게 선택되어 사용된다. 이러한 종류들은 앞으로 블로깅을 하면서 언급될 때 상세하게 따로 정리해 보겠다.

'Study > Java' 카테고리의 다른 글

제어문  (1) 2023.11.22
콘솔 입출력  (0) 2023.11.17
연산자  (0) 2023.11.16
문자열 타입  (1) 2023.11.12
Java의 변수와 타입  (0) 2023.11.10