본문 바로가기

프로그래밍언어/JAVA

[JAVA] 자바 (Java Programming Language)

반응형

1. 자바란?

 

자바는  마이크로시스템즈에서 개발하여 1996 1월에 공식적으로 발표한 객체지향 프로그래밍 언어이다.

자바의 가장 중요한 특징은 OS 독립적이라는 것이다. 자바로 작성된 프로그램은 운영체제의 종류에 관게없이 실행이 가능하기 때문에 운영체제의 종류와 버전에 상관없이 실행이 가능하다이러한 장점으로 인해 자바는 다양한 기종의 컴퓨터와 운영체제가 공존하는 인터넷 환경에 적합한 언어로 인터넷의 발전과 함께 많은 사용자를 확보하게 되었다또한 객체지향개념과 C++ 장점들을 채택하는 반면  사용하지 않는 부분을 제외시켜 간결하고 쉬운 표현이 가능하도록 했다.

 

 

2. 자바의 역사

 

자바는 1991 썬의 엔지니어들에 의해 고안된 Oak라는 언어에서 시작되었다처음에는 가전제품에 탑재될 소프트웨어를 만들기 위해서 C++  확장하여 사용하려 했지만 C++로는 부족하다 느끼고 이를 보완한 새로운 언어인 Oak 개발했다.

Oak 원래의 목적대로 가전제품이나 PDA 같은 소형기기에 사용될 목적이었으나 여러 종류의 OS 사용하는컴퓨터들이 통신하는 인터넷이 등장하면서 인터넷에 적합하도록 개발 방향을 변경하면서 언어의 이름도 JAVA바꾸게 변경하였다.

 

처음에는 정적인 웹페이지에 사운드와 애니메이션 등의 멀티미디어적인 요소를 제공하기위해 자바로 작성된Applet 많이 사용되었으나 보안상의 이유로 웹브라우저에서 applet  이상 지원하지 않게 되면서 서버  프로그래밍을 위한 Servlet  JSP  많이 사용되고 있다. 이외에도 스마트폰 운영체제인 안드로이드에서 자바를 사용하고 있다.

 

 

3. 자바의 특징

 

- 운영체제에 독립적이다.

 

기존의 언어는 OS 종속되어서 프로그램을 다른 OS 적용하기 위해서는 많은 노력이 필요했지만, 자바 응용프로그램은 JVM 통해서 실행되기 때문에 호환성의 문제를 고민할 필요가 없다.

자바 응용프로그램은 OS HW 아닌 JVM과만 통신하고 JVM이 자바 응용프로그램으로 부터 전달받은 명령을 변환하여 OS 통신한다.

이를 통해서 자바 언어 자체는 OS 신경쓸 필요가 없어졌다. 대신 JVM  OS 호환되는 버전으로 설치해주기만 하면 된다.

이러한 자바의 특성을 Write once, run anywhere 표현한다.

 

- 객체지향언어이다.

 

자바는 객체지향 프로그래밍 언어  하나로 상속, 캡슐화, 다형성 등이  적용된 객체지향언어이다.

 

- 배우기 쉽다.

 

자바는 다른 언어들의 장점을 취하고 복잡하고 불필요한 부분은 제거하여 단순화함으로 쉽고 간결한 사용이가능하다.

기존의 객체지향언어가 재사용성과 유지보수의 용이성 등의 많은 장점에도 어려움으로 인해 많이 사용되지못하였는데, 자바는 언어의 간결함과 명료함으로 많은 사람들이 사용하는 객체지향언어가   있었다.

 

- 자동 메모리 관리 (Garbage Collection)

 

자바 응용프로그램이 실행되면 garbage collector 자동적으로 메모리 관리를 해주기 때문에 개발자는 프로그래밍 시에 따로 메모리 관리를 해줄 필요가 없다. 자동으로 메모리를 관리하다보면 다소 비효율적인 상황이발생할 수도 있지만 이를 통해서 개발자가 프로그래밍에  집중할  있도록 해준다.

 

- 네트워크와 분산처리

 

인터넷과 대규모 분산환경을 염두에 두었기 때문에 JAVA api에서 제공해주는 다양한 네트워크 프로그래밍 라이브러리를 통해 네트워크 관련 프로그램을 쉽게 개발할  있다.

 

- 멀티쓰레드

 

자바에서 제공해주는 멀티스레드 프로그램을 통해서 시스템과 상관없이 간단하게 멀티쓰레드 프로그램을 개발할  있다. 여러 스레드에 대한 스케줄링은 자바 인터프리터가 담당하게 된다.

 

- 동적 로딩 (Dynamic Loading)

 

자바는 동적 로딩을 지원하기 때문에 실행 시에 모든 클래스가 로딩되는 것이 아니라 필요한 시점에 클래스를로딩하여 사용할  있다.

이외에도 일부 클래스가 변경되어도 전체 애플리케이션을 다시 컴파일 하지 않아도 되며 변경사항이 발생해도 비교적 적은 작업으로 처리할  있다.

 

 

4. JVM (Java Virtual Machine)

 

JVM Java Virtual machine의 약자로 자바를 실행하는 가상 머신, 가상 컴퓨터라는 뜻이다.

자바로 작성된 애플리케이션은 모두 JVM에서 실행되기 때문에 자바를 사용하기 위해서는 JVM 필수로 설치해야한다.

일반 애플리케이션은 OS 거치고 하드웨어로 전달되는 반면 Java 애플리케이션은 JVM 거쳐 OS 전달되기 때문에 하드웨어에 맞게 완전히 컴파일  상태가 아니고 실행시에 인터프리터를 거쳐야 하기 때문에 속도가 느리다는 단점을 가지고 있다. 그러나 최근에는 바이트 코드를 하드웨어의 기계어로 변환해주는 JIT 컴파일러와 향상된최적화 기술이 적용되어서 속도의 격차를 많이 줄였다.

JVM 통해서 자바는 자바 언어의 특징  하나인 운영체제로부터 독립적이게 되었다.

 

JVM에 대한 더 자세한 설명은 다음 글에서 확인 가능하다.

- https://jammdev.tistory.com/49

 

[JAVA] JVM (Java Virtual Machine)

JVM 이란? 자바 가상 머신 (Java Virtual Machine, JVM)은 시스템 메모리를 관리하면서 자바 기반 애플리케이션을 위해 이식 가능한 실행 환경을 제공한다. 한마디로 JVM은 자바 애플리케이션을 실행하는

jammdev.tistory.com

 

 

 

 

반응형