JAVA

[JAVA] JAVA의 역사와 특징

개발로 먹고 살자 2022. 9. 20. 16:32

자바란?

자바는 가전 제품에 들어갈 소프트웨어를 만들기 위해 탄생되었다.

 

썬 마이크로시스템즈의 제임스 고슬링이 개발한 객체 지향적 프로그래밍 언어이며

현재 웹 애플리케이션 분야에 가장 많이 사용하는 언어이다.

안드로이드를 비롯한 모바일 기기용 소프트웨어 개발에도 널리 사용된다.

 

 

자바의 유래

자바는 19911제임스 고슬링이 만들었다.

자바는 처음 고안되었을 때 자바가 아닌 오크라는 이름으로 시작되었다.

 

제임스 고슬링의 목표는 가전 제품에 타재될 소프트웨어를 만드는 것을 목표로 하였다.

하지만 C언어의 문제점, 가전 제품의 긴 수명으로 인한 완벽한 호환을 가진 소프트웨어의 개발 요구, 가전 제품에 사용될 소프트웨어의 높은 신뢰성 필요 등의 문제에 대한 해결 방안을 모색 해야만 했다.

 

처음에는 CC++ 이란 언어를 확장하여 사용하려고 했다.

하지만 가전 제품에 탑재될 기능은 CC++ 로 부족하였고 단점을 보완하기 위해 새로운 언어를 개발하게 된다.

그것이 바로 오크라는 언어이다.

 

오크는 개발 목적에 맞게 가전 제품과 개인용 정보 단말기와 같은 소형 기기에 사용될 목적이었다. 그러나 1999년도부터 인터넷이 활성화되면서 여러 종류의 운영체제를

사용한 컴퓨터들이 등장하기 시작했다.

 

고슬링은 운영체제의 독립적인 성격을 지니고 있는 오크가 이에 적합하다고 판단했다.

그 때부터 개발 방향을 바꾸고 이름을 자바로 변경하였다.

자바는 인도네시아 커피인 자바 커피의 이름을 따서 지어졌다.

 

 

자바의 역사

자바는 19911월 썬 마이크로 시스템즈의 제임스 고슬링과 직원들이 함께 만들었다.

썬 마이크로 시스템즈는 자바의 특징Write Once, Run Anywhere 라고 발표했다.

첫 공개 자바 버전은 1995 자바 1.0이다.

인기 플랫폼에서 무료 런타임을 제공하고 안정성을 가지고 있어 인기가 많았다.

대부분의 브라우저들은 자바 애플릿을 웹 페이지 안에서 실행이 가능했다.

자바 2의 출현으로 다양한 플랫폼에서 사용할 수 있는 설정을 만들었다.

J2EE = 엔터프라이즈 애플리케이션

2ME = 모바일 애플리케이션

J2SE = 스탠다드 에디션

 

2006에 마케팅의 용도로 순서대로 Java EE, Java ME, Java SE로 명칭이 변경되었다.

20061113 썬 마이크로 시스템즈는 대부분 자바를 GPL 라이선스로 소스를 오픈하였고,

200758 이 과정을 끝마쳤다.

2009420 썬 마이크로 시스템즈가 오라클과 인수 합병됨에 따라 자바에 대한

권리 및 유지보수 또한 오라클로 넘어가게 됐다.

 

 

자바의 5가지 핵심 목표

1. 객체 지향 방법론을 사용한다.

2. 같은 프로그램이 여러 운영 체제에서 실행될 수 있어야 한다.

3. 컴퓨터 네트워크 접근 기능이 기본으로 탑재되어 있어야 한다.

4. 원격 코드를 안전하게 실행할 수 있어야 한다.

5. 다른 객체 지향 언어들의 좋은 부분만 가지고 와서 사용하기 편해야 한다.

 

 

자바의 구동 방식

자바의 개발자들은 유닉스 기반의 배경을 가지고 있었기 때문에 문법적인 특성은 파스칼이 아닌 C 언어와 비슷하다.

자바를 다른 컴파일 언어와 구분 짓는 가장 큰 특징은 컴파일된 코드가 플랫폼 독립적이라는 점이다.

 

자바 컴파일러는 자바 언어로 작성된 프로그램을 바이트 코드라는 특수한 바이너리 형태로 변환하는데 바이트 코드를 실행하기 위해서는 JVM이라는 특수한 가상 머신이 필요하다.

 

가상 머신은 자바 바이트 코드를 어느 플랫폼에서나 동일한 형태로 실행한다.

그렇기 때문에 자바로 개발된 프로그램은 CPU 나 운영 체제의 종류에 관계 없이 JVM

설치할 수 있는 시스템에서는 어디서나 실행 가능하다.

이러한 점이 웹 애플리케이션의 특성과 맞아 큰 인기를 끌었다.

 

 

자바의 장점

자바는 초기 설계부터 객체 지향 언어로 설계되었다.

그렇기 때문에 CC++ 로 진화한 것과는 차이가 있다.

 

자바는 C, C++등의 프로그래밍 언어와 문법이 비슷해 프로그래머들이 부담 없이 접근 가능하다. 하지만 내부적인면에서 기존 언어와 많은 차이가 있다.

 

자바는 단순, 자바는 C++의 문법적 복잡성을 없앴다고 하여 C++--라고도 불리는데

C++의 연산자 재정의와 다중 상속 등 복잡한 개념이 없어져 프로그래밍이 용이하다.

 

자바는 CC++에 비해 속도가 느리지만 유연성이 높은 프로그래밍 언어이다.

 

 

자바의 단점 및 개선 방안

자바의 단점은 속도인데 기존 CC++와 비교할 때 최대 40배까지도 느려질 수 있다.

이러한 단점을 극복하기 위해 JIT 컴파일러, 자바 가상 머신의 최적화, 자바 칩 등의 방법을 연구했다.

 

JIT 컴파일러는 자바 가상 머신이 클래스 파일을 읽어들여 바이트 코드를 실행하는데

걸리는 시간을 최소화하기 위해 개발된 것으로 대략 인터프리터 방법에서 2에서 20배까지

속도 향상을 보인다.