수수한 코딩세상

Java 란? 본문

수수한 코딩세상/Java

Java 란?

수수한 코딩열공생 2024. 6. 18. 17:47

코딩 언어를 학습하면서 그 언어에 대한 관련 기술 문서 또는 소개글을 제대로 읽어본 적이 없는 것 같아 이번 기회를 통해 읽어보고 정리하고자 이 글을 작성하게 되었습니다. 미흡하고 설명의 부족함이 있을 수 있지만 제가 이해한 것을 바탕으로 해석하여 작성해 보았습니다.

 

Java logo

Java 란?

Java는 프로그래밍 언어중 하나로, 객체지향 프로그래밍에 특화되어 있는 언어입니다. Java는 C, C++의 언어 구조와 규칙을 기반으로 만들어진 언어입니다. 그래서 기존의 C, C++의 언어 사용 중 불편했던 점을 보완하여 나온 언어라고 할 수 있습니다. Java는 컴퓨터, 태블릿, 스마트폰, 게임 콘솔, 의료 장비 등 다양한 플랫폼에서 실행시킬 수 있는 언어입니다.

다양한 플랫폼에서 실행시킬 수 있다는 것은 Java가 이식성이 높은 언어라는 것입니다. 이식성이 높다는 것은 컴퓨터에서 Java로 코드를 작성하면 이 코드를 다른 디바이스로 간편하게 옮길 수 있다는 뜻입니다. Java 언어를 개발한 James Gosling은 개발 당시 주요 목표가 "한 번 작성하고 어디에서나 실행할 수 있도록 하는 것( WORA, Write Once Run Anywhere)"이었다고 합니다.

그의 목표와 같이 Java는 어디에서나 실행이 가능한 언어로, 급변하는 IT시장 기술 안에서도 여전히 플랫폼 소프트웨어 개발에 가장 많이 사용되는 언어로 사용되고 있습니다.

 

Java 작동 방식

Java가 오랫동안 소프트웨어 개발 언어로 사용된 이유는 작동 방식에 있습니다. Java는 프로그래밍 언어 + 소프트웨어 플랫폼으로 구성된 기술입니다. Java를 사용하여 개발하려면 JDK(Java Development Kit)를 다운로드받아야 합니다. JDK 안에는 Java의 코드 이식성을 높여주는 기술들이 들어가 있습니다.

Java로 프로그램을 제작하면 컴파일러가 프로그램을 Java 바이트 코드(자바 가상 기계(JVM, Java Virtual Machine)에서만 실행되는 기계어로서, 어떤 CPU와도 관계없는 바이너리 코드(Binary Code))로 변환시킵니다. 이 말은 자바 런타임 환경(JRE, Java Runtime Environment)의 일부인 JVM(Java Virtual Machine)으로 변환한다는 뜻입니다.

Java 바이트 코드는 JVM을 지원한느 모든 시스템에서 수정 없이 실행되므로, 어디에서나 Java코드를 실행할 수 있습니다.

 

Java 소프트웨어 플랫폼은 JVM, Java API(기본 객체, 네트워킹 및 보안 기능을 포함한 광범위한 라이브러리 세트, XML(Extensible Markup Language), 웹 서비스) 및 완전한 개발 환경으로 구성됩니다.

JVM은 Java 바이트 코드를 파싱(Parsing, 분해와 분석 후 목적에 맞춰 변환)하고 실행(해석)합니다.

Java언어와 Java소프트웨어의 플랫폼을 함께 사용하면 소프트웨어 개발을 입증된 안전성으로 개발할 수 있습니다. 

Java SE의 JDK 구조 (출처 : https://docs.oracle.com/javase/8/docs/index.html)

 

Java가 중요한 이유

Java 언어는 이미 많은 서비스와 조직에서 사용하고 있기 때문에 기존 기술을 유지보수하기 위해서는 Java를 알아야 합니다. 무엇보다도 Java언어는 Android 운영 체제의 핵심을 이루고 있으며, 전 세계 스마트폰에서 큰 비중을 차지하고 있는 언어입니다.

견고성, 사용 용이성, 크로스 플랫폼 기능, 보안 특성 등 다양한 이점으로 이미 많은 조직과 기업에서 java 언어를 많이 사용하고 있습니다. 특히 요즘 모든 산업에서 디지털 비즈니스의 기반이 되는 웹 애플리케이션 개발을 하기에 Java 언어는 이상적인 프레임워크(구조화된 틀)입니다. Java 애플리케이션 서버는 Java 구성요소, XML, 웹 서비스용 웹 컨테이너로 데이터베이스와 상호작용하고 동적 웹 컨텐츠를 제공해 주고 있습니다. Java 애플리케이션 서버는 트랜잭션 관리, 보안, 클러스터링, 성능, 가용성, 연결성, 확장성 등과 같은 기능을 갖춘 엔터프라이즈 애플리케이션을 위한 안정적인 배포 환경을 제공해 줄 수 있기 때문에 Java 언어는 지금 시대에 중요한 언어 중 하나가 되었습니다.

 

Java의 기술적 이점

새로운 애플리케이션을 개발할 때 상호 운용성, 확장성, 적응성 등을 고려하여 프로그래밍 언어와 환경을 선택하게 됩니다. 이러한 부분에서 Java 사용을 고려하게 되는 확실한 기술적 이점이 있습니다.

Java는 앞서 말했듯 이식성(다른 기종의 디바이스 간 상호 운용성)이 좋습니다. Java의 객체 지향적인 아키텍처를 사용하면 모듈식 프로그램이 가능하여 코드 재사용성이 높아지고, 개발 주기를 단축시킬 수 있습니다. 모듈식 프로그램은 애플리케이션의 유지보수성을 높여 사용 수명을 연장시켜 줄 수 있습니다.

 

플랫폼 확장성은 Java의 핵심 속성 중 하나입니다. Java를 사용하면 광범위한 유스케이스에 하나의 단일 시스템을 사용할 수 있습니다. 예를 들어 데스크탑에서 사용하는 큰 애플리케이션을 리소스가 제한된 소형 디바이스에서 실행되도록 손쉽게 조정할 수 있습니다. 또는 애플리케이션을 모바일에서 데스크탑으로 마이그레이션하거나, Android 플램폼용 비즈니스 앱을 현재 데스크탑 소프트웨어에 통합시킬 수도 있습니다.

플랫폼 간의 하드웨어적 제약을 줄여주기 때문에 개발주기를 줄여주어 시간과 비용을 절약할 수 있습니다.

 

Java는 새로운 유스케이스의 적응성도 높은 언어입니다. 예를 들어 수많은 디바이스를 상호 연결해야 하는 사물인터넷(IoT) 기술에서 이미 많은 디바이스가 Java를 실행하기에 기기간 상호 연결 과정을 간소화시킬 수 있었습니다. 이것은 새로운 유스케이스가 나타나도 쉽게 상호연결하여 적응성이 높다는 것을 뜻합니다. Java의 광범위한 개발자 에코시스템은 IoT 애플리케이션 개발을 목표로 새로운 라이브러리를 지속적으로 개발하고 공유하기 때문에 IoT 관련 새로운 기능을 손쉽게 사용할 수 있습니다.

 

 

 

이상 제가 이해한 Java에 대한 정리였습니다.

이 외에도 Java의 비즈니스 이점으로 대규모 인재 풀, 짧은 학습 곡선, 광범위한 통합 개발 환경(IDE)이 있습니다. 자세한 내용은 참조 링크를 통해 읽어보시길 추천드립니다.


Reference

https://www.ibm.com/kr-ko/topics/java

 

Java란? | IBM

Java가 여전히 소프트웨어 개발 플랫폼으로 많이 사용되는 이유는 무엇일까요? Java가 어떻게 프로젝트를 가속화하고 다양한 신기술을 지원하는지 알아봅니다.

www.ibm.com

 

'수수한 코딩세상 > Java' 카테고리의 다른 글

랜덤 닉네임 생성기  (0) 2024.06.19
[Programmers] 두 수의 차  (0) 2024.06.17
[Java] IntelliJ 설치방법  (0) 2024.04.24