프로그래밍언어 자바 Part-1

1. 자바언어 시작하기

이번 강좌에서는 현재 가장 대표적인 프로그래밍언어로 손꼽히는 자바언어에 대해 가상머신 개념에서 부터 JDK, 자바언어의 활용 분야에 대해 알아 봅니다.

이 강의를 통해 자바언어의 특징을 이해하고 자바언어를 왜 배워야 하는지 알 수 있게 됩니다.



01: 자바(Java)란?

자바는 현재 가장 대표적인 프로그래밍 언어 입니다. 조사 목적이나 관점에 따라 다른 결과가 있을 수 있지만 매년 조사를 진행하고 있으며 신뢰성 있게 인용되는 tiobe index 의 결과에 따르면 지난 수년동안 자바는 계속 가장 인기있는 프로그래밍언어 1위 입니다.

* https://www.tiobe.com/tiobe-index/

자바언어의 특징

자바언어의 대표적인 특징은 다음과 같습니다.

자바언어의 과거-현재-그리고 미래

자바는 어떤 배경에서 처음 만들어 졌는지, 또한 시대의 흐름에 따라 어떻게 변화해 왔는지, 어떤 요구사항들로 인해 새로운 기술들이 개발되었는지 살펴보는 것은 자바를 보다 잘 이해하는데 도움이 됩니다.

다음은 시대별 중요 이벤트로 살펴본 자바의 간략한 변천사 입니다.

자바의 탄생

서블릿과 JSP

이클립스

모바일 인터넷

안드로이드

스프링프레임워크

상용화



02: 가상머신과 JDK

자바 바이트코드(Java Bitecode)

바이트코드는 자바 컴파일러가 생성하는 코드로 특정 하드웨어에서 직접 실행할 수 있는 기계어가 아니라 자바가상머신에 의해 해석될 수 있는 일종의 중간 코드 개념 입니다.

그림: 자바 소스와 컴파일 과정

컴파일을 거쳐 다음과 같은 소스는 아래와 같은 바이트 코드로 변환 됩니다.

for (int i = 2; i < 1000; i++) {
    ...
}
0:   iconst_2
1:   istore_1
2:   iload_1
3:   sipush  1000
...

자바 가상머신(JVM: Java Virtual Machine)

자바의 가장큰 특징은 가상머신이라는 개념 입니다. 가상머신은 말 그대로 물리적인 기계장치가 아닌 가상의 기계장치 즉 소프트웨어로 구현된 기계장치를 말하는 것으로 자바 이전에 시작된 OAK라는 프로젝트에서 다양한 가전제품에서 구동될 수 있는 소프트웨어 개발을 위해 고안된 아이디어 입니다.

가상머신이라는 개념을 자바가 만든것은 아니지만 당시에 실제 성공한 프로젝트로는 자바가 대표적입니다. 이러한 가상머신의 특징으로 인해 특정 하드웨어나 운영체제에 영향을 받지 않고 동일한 프로그램의 개발이 가능해진 것입니다.

초기 자바의 모토(Moto)는 바로 WORA:Write Once Run Anywhere 였습니다.

자바 플랫폼

JDK(Java Development Kit)


03: 자바 활용 분야

많은 웹서비스백엔드 개발에 주로 사용되고 있습니다. 앞에서 언급한 서블릿, JSP, 스프링프레임워크등이 대표적입니다. 국내에서는 드물지만 외국에서는 PC기반의 프로그램이나 임베디드 장치에 들어가는 UI 프로그램 개발에도 종종 사용 됩니다. 전세계적으로 유명한 마인크래프트 라는 게임은 원래 자바로 만들어졌습니다.

이외에도 많은 영역에서 자바가 사용되지만 단적으로 이야기 하면 PC용 GUI프로그램 개발에는 적합하지 않으며 주로 서버측에서 돌아가는 프로그램 개발에 많이 사용되고 있다고 이해하면 되겠습니다.


참고 자료