[Java] 자바의 탄생 배경과 역사, C언어와의 차이점 총정리

in #kr11 hours ago

안녕하세요 가야태자 @talkit 입니다.

또 언제 바빠질지 모르겠지만 정리도 해두고, 앞으로 또 잘 먹고 살아야 해서 Java의 언어에 대한 개념 부터 시작 합니다.

1. Java 소개

자바(Java)는 전 세계 수많은 개발자가 사용하고 있는 현대 소프트웨어 개발의 핵심 프로그래밍 언어입니다. 1990년대 중반에 처음 등장한 이후, 가전제품부터 시작하여 웹 애플리케이션, 거대한 기업용 시스템, 그리고 스마트폰 앱에 이르기까지 거의 모든 IT 영역에서 중추적인 역할을 담당해 왔습니다.

자바를 관통하는 가장 중요한 철학은 "한 번 작성하면, 어디서나 실행된다(Write Once, Run Anywhere)"입니다. 이는 기존의 언어들이 특정 운영체제나 하드웨어에 종속되어 코드를 매번 다시 작성하거나 수정해야 했던 한계를 정면으로 돌파한 혁신이었습니다. 자바는 강력한 안정성과 보안성, 그리고 객체 지향 프로그래밍이라는 직관적인 개념을 바탕으로 설계되어 복잡한 시스템도 안정적으로 유지보수할 수 있는 기반을 제공합니다.

특히 인터넷의 폭발적인 성장과 궤를 같이하며 네트워크 기능이 기본적으로 내장되어 있어, 분산 환경에서 데이터를 주고받는 프로그램을 개발하는 데 최적의 효율을 발휘합니다. 오늘날 자바는 단순히 하나의 언어를 넘어, 방대한 생태계와 표준을 제시하는 거대한 플랫폼으로 자리 잡고 있습니다.


2. 컴퓨터 언어의 종류

컴퓨터가 이해하는 근본적인 언어는 0과 1로 이루어진 기계어입니다. 하지만 사람이 직접 기계어를 작성하는 것은 불가능에 가깝기에, 이를 사람이 읽을 수 있는 문자 형태로 일대일 대응시킨 어셈블리어가 등장했습니다. 이후 기술이 발전하면서 인간의 언어와 유사한 고급 프로그래밍 언어들이 개발되었습니다.

고급 언어는 크게 두 가지 방식으로 실행됩니다. C언어와 같은 컴파일러 언어는 작성한 소스 코드를 실행하기 전에 컴퓨터가 이해할 수 있는 기계어로 한 번에 번역해 둡니다. 번역 과정이 미리 끝나 있기 때문에 실행 속도가 매우 빠르다는 장점이 있습니다.

반면, 베이직(Basic)과 같은 인터프리터 언어는 코드를 한 줄씩 읽어가며 즉석에서 번역하고 실행합니다. 빌드하는 과정이 없어 개발자가 코드를 수정하고 바로 확인하기에 편리하지만, 실행 속도는 컴파일러 언어에 비해 상대적으로 느립니다.


3. Java의 역사

자바는 1991년 선 마이크로시스템즈(Sun Microsystems)의 제임스 고슬링이 이끄는 그린 프로젝트(Green Project)에서 시작되었습니다. 당초 연구원들의 목표는 가전제품이나 셋톱박스 등 다양한 임베디드 장치에서 동작하는 소프트웨어를 만드는 것이었습니다. 당시 지배적이었던 C나 C++ 언어는 하드웨어와 운영체제에 맞춰 코드를 일일이 변경해야 했고, 메모리를 잘못 관리하면 시스템이 쉽게 다운되는 치명적인 문제가 있었습니다. 가전제품은 컴퓨터보다 메모리 환경이 열악하고 오작동이 용납되지 않기에, 제임스 고슬링은 C++의 강력한 기능을 유지하면서도 더 안전하고 이식성이 높은 새로운 언어를 개발하게 되었는데 이것이 바로 자바의 모태인 '오크(Oak)'였습니다.

이후 이 언어는 인터넷의 가능성을 발견하고 웹 브라우저에서 실행 가능한 기술로 발전하며 1995년에 'Java'라는 이름으로 공식 발표됩니다. 웹의 대중화와 함께 자바는 폭발적인 인기를 얻었으며, 2010년 오라클(Oracle)이 선 마이크로시스템즈를 인수하면서 현재는 오라클의 주도 하에 지속적인 성능 개선과 오픈소스 생태계 확장을 이어가고 있습니다.


4. Java의 에디션 차이: Standard Edition vs Enterprise Edition

자바는 사용 목적과 규모에 따라 여러 가지 에디션(Edition)으로 나뉘어 제공됩니다. 가장 기본이 되는 자바 SE(Java Standard Edition)는 자바 언어의 핵심 기능을 담고 있습니다. 변수, 데이터 타입, 객체 지향 프로그래밍 문법을 비롯하여 파일 입력과 출력, 네트워크 통신 등 일반적인 컴퓨터 애플리케이션을 개발하는 데 필요한 표준 API를 제공합니다.

반면 자바 EE(Java Enterprise Edition, 현재 명칭 Jakarta EE)는 SE를 기반으로 하여 대규모 기업용 시스템 개발에 특화된 기능을 확장한 버전입니다. 대형 웹사이트를 구축하기 위한 서블릿(Servlet)과 JSP, 분산 환경을 위한 엔터프라이즈 기술, 그리고 복잡한 데이터베이스 연동과 대용량 트랜잭션 처리를 안정적으로 지원하는 사양들이 포함되어 있습니다. 일반적인 개발은 SE로 충분하지만, 거대한 백엔드 서버나 금융권 시스템 등을 다룰 때는 EE의 생태계가 필수적으로 활용됩니다.


5. Java 가상 머신(JVM)과 개발 키트(JDK)

자바 개발과 실행 환경을 이해하기 위해서는 JVM과 JDK의 관계를 아는 것이 중요합니다.

먼저 JVM(Java Virtual Machine, 자바 가상 머신)은 자바 프로그램이 운영체제 종류에 상관없이 실행될 수 있도록 돕는 핵심 장치입니다. C언어는 특정 OS용 기계어로 컴파일되지만, 자바는 중간 형태인 '바이트코드'로 변환된 후 각 OS에 설치된 JVM 위에서 실시간으로 해석되어 실행됩니다. JVM 덕분에 개발자는 운영체제마다 코드를 새로 짤 필요가 없습니다.

그리고 이 JVM을 포함하여 자바 프로그램을 실제로 개발하는 데 필요한 모든 도구를 모아둔 종합 패키지가 바로 JDK(Java Development Kit, 자바 개발 키트)입니다. JDK 안에는 자바 소스 코드를 바이트코드로 바꾸어 주는 컴파일러(javac)와 디버깅 도구, 그리고 코드를 실행할 수 있는 환경(JRE/JVM)이 모두 포함되어 있습니다. 결론적으로 개발자는 JDK를 설치하여 프로그램을 만들고, 완성된 프로그램은 JVM을 통해 사용자 환경에서 돌아가게 됩니다.


6. 요약

결론적으로 자바는 C언어의 강력한 제어 능력과 베이직 같은 인터프리터 언어의 유연함, 그리고 기계어와 어셈블리어가 가진 하드웨어 종속성을 극복하기 위해 탄생한 스마트한 고급 언어입니다.

C언어처럼 JDK의 컴파일러를 거쳐 바이트코드를 생성하므로 실행 효율을 높이면서도, JVM이라는 가상 머신을 통해 인터프리터처럼 실시간으로 환경에 맞춰 실행되는 독특한 하이브리드 방식을 취하고 있습니다. 또한 개인용 앱을 위한 표준 SE부터 대규모 기업 시스템을 위한 EE까지 용도별 맞춤 표준을 제시하여 확장성까지 확보했습니다.

메모리를 자동으로 관리해 주는 편리함과 플랫폼 독립성이라는 무기를 바탕으로 출발한 자바는, 하드웨어와 운영체제의 한계를 소프트웨어적 아키텍처로 우아하게 해결하며 오늘날 전 세계 소프트웨어 산업의 견고한 표준으로 자리 잡았습니다.

감사합니다.

Posted using SteemX

Coin Marketplace

STEEM 0.04
TRX 0.33
JST 0.084
BTC 63852.44
ETH 1726.95
USDT 1.00
SBD 0.42