본문으로 바로가기

자바의 역사

category IT 강좌(IT Lectures)/Java 2023. 5. 23. 17:03
반응형

자바(Java)는 1995년에 제임스 고슬링(James Gosling)과 그의 동료들이 개발한 객체 지향 프로그래밍 언어입니다. 

 

 초기엔 사무실 밖에 있던 오크 나무의 이름을 착안하여 오크(Oak)라는 이름으로 개발되었으나, 이 후 단어 리스트에서 무작위로 추출하여 현재의 자바(Java)라는 이름을 갖게 되었습니다.

 

 자바 이전에는, 플랫폼에 독립적이지 못한 한계점으로 인해, 플랫폼 마다 컴파일(Compile)을 해야 하는 불편함이 존재했었습니다. 가령, 각종 리모콘, 전자레인지 등 다수 가전 제품에 내장되어 있는 소프트웨어의 플랫폼이 모두 다르고, 이로 인해 개발에 들어가는 리소스는 매우 컸습니다.

 

 그래서, 제임스 고슬링과 동료들의 목표는 C/C++ 스타일의 언어를 바탕으로 한 가상머신을 구현하여 플랫폼에 독립적인 언어를 만드는 것에 초점을 두었고, 1995년 "Write Once Run Anywhere!"의 철학을 바탕으로 만들어진 Java 1.0을 세상에 공개했습니다.

 

 초기 자바는 가전 제품용 소프트웨어를 위해 설계되었는데, 자바의 가능성을 본 썬 마이크로시스템즈(Sun Microsystems)에서 인터넷과 기업용 애플리케이션 개발을 위한 언어로 발전시키기로 결정하였습니다.

 

 썬 마이크로시스템즈는 1997년 ISO/IEC JTC1 표준화 그룹, 그리고 나중에는 ECMA International 그룹과 접촉하여 정식 승인을 받으려 했으나 곧 이 프로세스에서 철수하게 되었습니다. 

 

 2006년 11월 13일 썬 마이크로시스템즈는 대부분은 자바를 GPL 라이선스로 소스를 오픈하였으며 2007년 5월 8일 이 과정을 마쳤습니다. 이 때, 썬 마이크로시스템즈가 권한을 가지고 있지 않은 대부분의 코어 부분을 오픈하였습니다.

 이로서, 자바는 사실상 자바 커뮤니티 프로세스(Java Community Process)를 통해 관리되게 되었습니다.

 

 2009년 4월 20일 제작사인 썬 마이크로시스템즈가 오라클과 인수 합병됨에 따라 자바에 대한 권리 및 유지보수 또한 오라클로 넘어가게 되었습니다.

 

 현재는 자바의 주요 개발 및 지원을 오라클에서 주도하고 있으며, 다양한 오픈소스 커뮤니티의 참여와 기여도 활발히 이루어지고 있습니다.

 

 자바는 지속적인 발전과 업데이트가 이루어지고 있으며, 현재 최신 버전인 자바 17 버전까지 출시되었습니다. 이후에도 자바 개발은 활발히 이루어지고 있으며, 오라클과 자바 커뮤니티를 중심으로 계속해서 발전해 나갈 것으로 예상됩니다.

 

* 자바의 주요 특징

객체 지향 프로그래밍 
(Object-Oriented Programing)
클래스, 상속, 다형성, 캡슐화 등의 개념을 지원하여 유연하고 모듈화된 코드를 작성할 수 있습니다.
플랫폼 독립성 JVM(Java Virtual Machine)에서 실행되기 때문에 운영체제나 하드웨어에 독립적입니다.
가비지 컬렉션
(Garbage Collection)
가비지 컬렉션 메커니즘을 내장하고 있어 개발자가 메모리 관리를 직접 처리할 필요가 없습니다. 가비지 컬렉터는 동적으로 할당된 객체들을 추적하고 사용되지 않는 객체들을 자동으로 해제하여 메모리 관리를 단순화합니다.
멀티스레딩
(Multithreading)
멀티스레드 프로그래밍을 지원합니다. 멀티스레딩을 통해 여러 작업을 동시에 처리하고 동시성을 활용할 수 있습니다.
네트워크와 분산환경 지원 네트워크와 분산환경을 쉽게 다룰 수 있는 기능과 라이브러리를 제공합니다.
소켓 통신, 웹 서비스, RMI(Remote Method Invocation) 등을 활용하여 네트워크 프로그래밍을 용이하게 할 수 있습니다.

 

 

#Reference

https://ko.wikipedia.org/wiki/%EC%9E%90%EB%B0%94_(%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D_%EC%96%B8%EC%96%B4) 

 

자바 (프로그래밍 언어) - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 자바Java패러다임프로그래밍 패러다임: 객체 지향 프로그래밍 (클래스 기반 프로그래밍), 구조적 프로그래밍, 명령형 프로그래밍, 제네릭 프로그래밍, 반영, 병

ko.wikipedia.org

 

반응형