자바는 현존하는 언어중에 가장많이 쓰이는 언어중에 하나입니다.
흔하게 이용하는 웹서비스에도 자바가 이용되고 모바일에 이용되는 어플리케이션을 만들때도 자바를 사용합니다.
그 외에도 많은 산업분야에서 쓰이는 언어이므로 자바를 할수 있다면 많은 산업분야에 적용을 할수 있겠습니다.
그렇다면 프로그래밍이란 무엇일까요??
한국인이 외국인과 소통하기위해 통역이 필요한 것처럼 인간과 컴퓨터 사이에서도 통역이 필요합니다.
인간이 알아들을수 있는 언어. 즉, 고급언어(소스코드)를 컴퓨터가 알아들을수 있는 기계어. 즉, 2진수로 번역시켜주는 컴파일 작업이 필요합니다.
이러한 과정을 도와주는 것을 컴파일러라고 합니다.
자바 뿐만아니라 C언어나 C++등에도 컴파일러가 존재합니다.
자바라는 언어는 1995년 제임스 고슬링(James Gosling)에 의해서 탄생되었으며 썬 마이크로시스템즈(Sun Microsystems)에서 발표하였습니다.
처음 발표된 이름은 오크(Oak)라는 이름이었지만 이후 자바(Java)로 이름이 바뀌면서 발전이 되었습니다.
처음으로는 가전제품에 탑재할 수 있는 프로그램을 개발하기 위한 목적으로 탄생했다고 합니다.
당시에는 가전제품에 거의 프로그래밍이 되어있지 않았는데요.
하지만 당시에 성공을 거두었다고는 보기 힘들었습니다.
인터넷이 활성화 되면서 JSP & Servlet이 활성화 되면서 Java가 떠올랐다고 볼 수 있습니다.
그렇다면 자바는 다른 언어에 비해 다른 특징은 무었이 있을까요?
프로그래밍 언어는 포트란부터 시작해서 많은 변화를 거쳐왔습니다.
하지만 현대에 많이 쓰이는 C와 C++ 이후에 Java가 탄생했는데요,
초창기 자바는 기존 C나 C++보다 속도가 느리고 리소스(메모리, CPU)를 많이 사용하는 단점이 있었습니다.
메모리는 데이터를 이동시켜주는 일꾼이라고 한다면 CPU는 연산을 담당합니다.
C나 C++는 메모리를 직접 관리하지만 자바는 메모리를 개발자가 직접 관리 할 수 없고 중간에 매개체를 두고 있습니다.
하지만 객체지향 언어로 기능을 마치 부품처럼 사용할수 있는 장점이 있고 JRE를 이용해 운영체제로부터 자유롭습니다.
웹이나 모바일 프로그래밍이 비교적 쉽고 GC(가비지 컬렉터)을 통한 자동 메모리 관리를 지원한다.
그리고 속도가 느리다는 단점은 지금은 많이 개선된 상태입니다.
객체지향 언어로 기능을 부품화 한다는 것의 의미는 무엇일까요??
만약 내가 사용하는 컴퓨터의 한 부분이 고장났다고 가정해보면 컴퓨터를 통째로 바꾸는 것이 아닌 그 부품만 교체하여 사용할수 있습니다.
객체지향언어에서도 부품화 하여 필요한 부분만 떼어내고 새롭게 붙여서 사용할수 있다는 의미입니다.
또한 운영체제는 Window 말고도 Linux나 ios등 여러가지 운영체제가 존재하는데 JRE는 운영체제에 맞게 컴파일을 해주고 프로그램을 정상적으로 동작하도록 도와줍니다.
OS 환경에 상관없이 한번만 개발을 하게 되면 운영체제의 영향을 받지 않겠죠?
JDK는 Java Development Kit의 약자로 개발을 위해 개발자에게 필요한 키트입니다.
하지만 개발자가 아니라 프로그램을 사용만하는 사람이라면 JRE만 설치되어있으면 됩니다.
JRE는 자바가 실행되는 환경이라고 이해할수 있습니다.
API는 프로그래밍을 처음 접하시는 분들은 그냥 기능이라고만 이해하고 넘어가시면 되겠습니다.
JVM의 경우 Java Virtual Machine의 약자로 자바 가상머신입니다.
JRE에 JVM이 내장되어 있기 때문에 JRE를 설치한다면 따로 설치할 필요는 없습니다.
'Java 관련 > Java' 카테고리의 다른 글
[Java] 패키지(package) (0) | 2022.07.29 |
---|---|
[Java] 익명(anonymous) 클래스 (0) | 2022.07.27 |
[Java] 람다식(Lamda Expression) (0) | 2021.11.21 |
[Java] 쓰레드(Thread) (0) | 2021.11.20 |
[Java] 입출력(IO - InputOutput) (0) | 2021.11.19 |