S E P H ' S

[Java] 1. Java, 왜 사용할까? 본문

Programing & Coding/JAVA

[Java] 1. Java, 왜 사용할까?

yoseph0310 2021. 12. 17. 15:46

 

Java를 많이 사용하는 이유

Java를 사용하면서도 Java를 왜 배우지? 왜 사용하지? 라는 의문이 드는 분들이 많을 것이라 생각합니다. 그래서 지금부터 그 이유에 대해 먼저 알아보도록 하겠습니다.


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

Java는 플랫폼에 영향을 받지 않으므로 다양한 환경에서 사용할 수 있습니다.

 

윈도우 운영체제에서 C 언어로 개발한 프로그램이 있다고 합시다. 프로그램 이름을 Test라고 만들고 이를 컴파일하면 Test.exe가 만들어집니다. 이 실행파일은 윈도우 운영체제에 맞춰 만들어졌기 때문에 리눅스 운영체제에서는 실행할 수가 없습니다. 그래서 이 Text.exe파일을 리눅스에 맞게 새로 만들어야 합니다.

 

하지만 Java는 그렇지 않습니다. Java에서 프로그램 이름을 Test라고 만들고 이를 컴파일하면 Test.class라는 파일이 생성됩니다. 운영체제에 맞는 기계어가 아닌 중간 기계어입니다. 이것을 실행하려면 자바 가상 머신(JVM)이 필요합니다. 운영체제에서 실행하는게 아니라 가상머신에서 먼저 실행하고, 이 가상 머신이 운영체제에 맞는 실행파일로 바꿔줍니다. 이 .class 파일이 있으면 운영체제에 맞는 가상 머신을 통해 어느 환경에서나 실행이 가능 합니다.

 

자바 가상 머신 (Java Virtual Machine)

자바 가상 머신 (Java Virtual Machine)은 자바 프로그램 실행 환경을 만들어 주는 소프트웨어입니다. 자바 코드를 컴파일하여 .class바이트 코드로 만들면 이 코드가 자바 가상 머신 환경에서 실행됩니다. 현재 사용하는 컴퓨터의 운영체제에 맞는 자바 실행 환경(Java Runtime Environment: JRE)이 설치되어 있다면 자바 가상 머신이 설치된 것입니다.

 

이러한 특성때문에 자바가 느리다는 평이 많았고 실제로 느리기도 했습니다. 하지만 이는 하드웨어의 발전으로 JIT(Just In Time) 컴파일 방식으로 개선 되었고 실행 속도는 문제가 되지 않습니다.

 

JIT 컴파일러

JIT 컴파일러는 실행 시점에 기계어 코드를 생성하는데, 같은 코드가 반복되면 매번 기계어 코드를 새로 생성하지 않고 이전에 만든 기계어를 재사용합니다. 또한 운영체제에 맞게 바이트 실행 코드로 한번에 변환하여 실행하기 때문에 이전의 자바 해석기 방식 보다 성능이 10 ~ 20배 좋습니다.

 

객체 지향 언어이기 때문에 유지보수가 쉽고 확장성이 좋다

Java는 객체 지향 언어입니다. 이러한 객체 지향 언어를 사용하여 만들어진 프로그램을 객체 지향 프로그래밍이라 합니다. 객체 지향 프로그래밍이란 일의 순서대로 진행하는 절차 지향 프로그래밍과는 다르게 여러 객체의 협력을 통해 프로그램을 구현하는 것입니다. 어떤 사람이 서점에서 책을 구매하고 대여하는 과정을 생각해봅시다. 이때 사람, 책, 구매, 대여 등이 객체입니다.

 

즉, 객체 지향 프로그래밍은 어떤 존재가 어떤 행동을 하는 일련의 과정을 생각 그대로, 상호 관계를 이용하여 프로그래밍 하는 것입니다. 공통으로 사용하는 부분을 수정하지 않고도 새롭게 추가할 수 있어 유지보수가 쉽고 확장이 쉽습니다.

 

풍부한 기능을 제공하는 오픈 소스이다

자바에는 기본 기능을 제공하는 클래스 뿐만 아니라 자료 구조, 네트워크, 입출력, 예외 처리 등에 최적하된 알고리즘 라이브러리를 제공하는 자바 개발 키트(Java Development Kit: JDK)가 있습니다. 이를 활용하여 더 풍부한 기능을 빠르게 구현할 수 있다는 장점이 있습니다.


Java로 어떤 프로그램을 만들 수 있을까?

Java를 사용하여 다양한 프로그램을 만들 수 있습니다.


웹 서버

웹 사이트를 운영하려면 반드시 서버가 필요한데요. 사용자가 웹 사이트에 접속해서 서비스를 요청하면 서버에 요청(request)이 전달되고 요청 결과를 응답(response)을 받습니다. 이때 사용자에게 요청을 받고 응답을 주는 프로그램이 서버입니다. 우리가 흔히 이용하고 있는 많은 서버들이 Java로 만들어져 있습니다.

안드로이드 앱

앱에는 대표적으로 iOS, Android 앱이 있습니다. 이 중, Android 앱을 만들 수 있는 언어 중 하나가 Java입니다.

게임

게임에는 C, C++을 주로 이용하지만 Java도 종종 사용되곤 합니다.


 

결론으로, Java를 사용하는 이유는

1. 플랫폼에 영향을 받지 않으며

2. 객체 지향 언어이기 때문에 유지 보수가 쉽고 확장성이 좋으며,

3. 풍부한 기능을 제공하기 때문입니다.

 

이를 바탕으로 훌륭한 프로그램들이 만들어지고 유지 보수 되고 있습니다. 다음 포스팅에서는 Java에 관한 상세한 기술, 기술들의 작동 원리에 대해서 다뤄보도록 하겠습니다.

'Programing & Coding > JAVA' 카테고리의 다른 글

[Java] 3. 가비지컬렉션(Garbage Collection)  (0) 2021.12.28
[Java] 2. 자바 가상 머신 (JVM)  (0) 2021.12.17
Comparable, Comparator  (0) 2021.02.21
JAVA Exception 처리 방식  (0) 2021.02.21
JAVA Exception  (0) 2021.02.21