JAVA란

자바는 썬 마이크로시스템즈의 제임스 고슬링과 연구원들이 개발한 객체 지향적 프로그래밍 언어이다.

처음에는 가전제품에서 동작하는 프로그램을 위해 개발되었지만, 현재는 웹 애플리케이션 제작에 가장 많이 사용하는 언어중 하나이고, 안드로이드를 비롯한 모바일 기기용 애플리케이션 개발에도 사용되고 있다.

 

플랫폼에 영향을 받지 않는다.

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

자바 코드를 컴파일러바이트코드라는 바이너리 형태로 변환한다. 바이트코드를 실행하기 위해서는 JVM(자바 가상 머신) 이라는 머신이 필요한데, 어느 플랫폼이던 JVM을 이용하면 이 바이트코드를 동일한 형태로 실행시킨다.

(윈도우에서도, 맥에서도, 리눅스에서도 JVM을 통하면 동일하게 실행된다)

 

객체지향언어 (OOP)

프로그램을 여러개의 독립된 단위, 즉 "객체" 들의 모임으로 파악한다. 각각의 객체는 연결되고, 데이터를 처리할 수 있다.

유연하고 변경이 쉽게 만들기 때문에 대규모 소프트웨어 개발에 적합하다. 프로그래밍을 배우기 쉽고 개발과 유지보수가 간편하며, 직관적인 코드 분석이 가능한 장점이 있다.

 

가비지컬렉터

프로그램을 개발하다 보면, 더이상 사용되지 않고 있는 메모리인 가비지(Garbage)가 발생한다. 메모리가 부족해지는 순간 이 메모리를 다른 용도로 사용할 수 있도록 자동으로 정리해주는 역할을 한다. 

(가비지 컬렉터를 지원하지 않는 C언어에서는 수동으로 메모리 해제를 시켜줘야 한다.)

 

멀티스레드

동시에 여러 작업, 대용량 작업을 빠르게 처리하기 위해서는 병렬처리를 해야한다. 그래서 멀티 스레드를 사용하게 되는데, 자바에서는 멀티 스레드 라이브러리를 지원하기 때문에, 쉽게 구현 가능하다.

 

오픈소스

자바는 오픈소스 언어 이기 때문에, 오픈소스 라이브러리 또한 많다.

잘 만들어진 오픈소스를 사용하면 개발 속도와 완성도가 높아진다. 누구나 소스에 접근할 수 있기 때문에, 다양한 개발자가 달라붙어 문제점을 찾아내거나 개선/보완 할 수 있다.

 

*컴파일러 : 프로그래밍 언어를 이용해서 만든 프로그램이 문법에 맞는지 확인하고, 컴퓨터가 이해할 수 있는 언어로 번역하는 프로그램

*JVM(Java Virtual Machine) :  자바 프로그램 실행 환경을 만들어주는 소프트웨어

+ Recent posts