'
본문 바로가기
study/Programming

[JAVA 기초] Java란

by meowdule 2025. 4. 1.

 

1. Java


📌 JAVA

Java는 사람과 컴퓨터가 소통하기 위해 사용하는 ‘프로그래밍 언어’입니다.

 

정확히는, 컴퓨터에게 명령을 내리기 위해 사용하는 언어 중 하나로,
1995년 미국의 Sun Microsystems(현재는 Oracle)에서 처음 개발되었으며,
객체지향(Object-Oriented) 프로그래밍 언어로 분류됩니다.

 

Java는 다음과 같은 특징을 가진 언어입니다:

  • 💡 플랫폼 독립적:
    "한 번 작성하면 어디서나 실행된다 (Write Once, Run Anywhere)"는 철학 아래,
    JVM(Java Virtual Machine)을 통해 어떤 운영체제에서도 동일한 Java 프로그램을 실행할 수 있습니다.
  • 🧱 객체지향 프로그래밍(OOP):
    코드 재사용과 유지보수가 용이한 객체 중심의 설계 방식을 따릅니다.
  • 🛠 범용 언어(General Purpose Language):
    웹 애플리케이션, 모바일 앱(Android), 서버, 금융 시스템, IoT 등 다양한 분야에서 사용됩니다.
  • 🌐 강력한 생태계:
    Spring Framework, Hibernate, Maven, Gradle 등과 같은
    생산성 높은 라이브러리 및 프레임워크들이 풍부하게 구축되어 있습니다.

 


📌 Java의 등장 배경

Java는 1995년 Sun Microsystems에서 처음 발표된 객체지향 프로그래밍 언어입니다.


개발 당시 목표는 "한 번 작성하면, 어디서든 실행된다 (Write Once, Run Anywhere)"는 슬로건처럼,
플랫폼 독립적인 언어를 만드는 것이었습니다.

 

이를 위해 Java는 JVM(Java Virtual Machine)이라는 가상 머신을 통해 실행되며,
운영체제와 하드웨어에 구애받지 않고 동일한 코드가 실행될 수 있습니다.

 

 

 

 

 

 

 

2. Java의 특징

 

✅ 플랫폼 독립성 (JVM 기반)

  • Java 코드는 JVM 위에서 실행되므로 Windows, macOS, Linux 등 운영체제에 관계없이 작동합니다.
  • 컴파일된 .class 파일은 어떤 환경에서도 JVM만 있다면 실행됩니다.

 

✅ 객체지향 언어 (OOP)

  • Java는 캡슐화, 상속, 다형성 등의 객체지향 원리를 중심으로 설계되어,
    유지보수성과 재사용성이 뛰어납니다.

 

✅ 안정성과 보안

  • 널리 사용되며 검증된 언어로,
    대규모 프로젝트에서 안정성과 보안성이 입증되어 있습니다.

 

✅ 풍부한 생태계

  • 다양한 라이브러리와 프레임워크(Spring, Hibernate 등)가 존재하며,
    대기업에서도 널리 사용됩니다.

 

✅ 자동 메모리 관리 (GC)

  • 개발자가 직접 메모리를 해제하지 않아도 되는
    Garbage Collector를 통해 메모리 관리 부담을 줄입니다.

 

 

 

 

 

 

 

3. Java의 단점

 

⚠ 상대적으로 긴 코드

  • Python 등의 언어에 비해 문법이 장황하고,
    같은 기능 구현에도 코드가 길어지는 경향이 있습니다.

 

⚠ 성능

  • JVM 위에서 실행되므로
    C/C++처럼 하드웨어에 가까운 언어보다 속도가 느릴 수 있음.

 

⚠ 메모리 사용량

  • JVM 기반 동작으로 인해 메모리 소모량이 높은 편,
    제한된 환경에서는 부적합할 수 있음.

 

⚠ 진입 장벽

  • 객체지향 개념과 문법이 상대적으로 어려워
    프로그래밍 초심자에게는 어렵게 느껴질 수 있음.

 

 

 

 

 

4. Java와 다른 언어와의 비교

 

항목 Java C Python Kotlin
실행 방식 JVM 기반 컴파일 후 실행 인터프리터 JVM 기반
플랫폼 독립성 ✅ 매우 높음 ❌ 없음 ✅ 높음 ✅ 높음
문법 난이도 높음 낮음 낮음
객체지향 지원 ✅ 완전 지원 ❌ 없음 ✅ 지원 ✅ 완전 지원
주 사용 분야 웹, 서버, 앱 시스템, 임베디드 데이터 과학, 웹 Android, 웹
대표 특징 안정성, 범용성 고성능, 저수준 간결함, 유연함 현대적 문법, Null 안정성

 

🔍 비교 요약

  • Java vs C
    Java는 자동 메모리 관리와 플랫폼 독립성으로 더 개발자 친화적입니다.
    반면 C는 성능과 하드웨어 제어 능력이 뛰어나지만 더 많은 책임을 개발자에게 요구합니다.
  • Java vs Python
    Python은 문법이 간단하고 데이터 분석/AI 분야에 강하지만,
    Java는 기업 시스템과 대규모 백엔드 개발에 더 적합합니다.
  • Java vs Kotlin
    Kotlin은 Java의 불편함을 개선한 현대적인 JVM 언어입니다.
    특히 Android 개발에서 Java를 빠르게 대체하고 있으며, 간결한 문법, Null 안정성이 강점입니다.

 

 

 

 

 

 

마무리
다음 게시글에서는  JDK, JRE, JVM에 대해 학습하겠습니다.