Java 특징

기술노트

☕️ Java 특징 (JVM, GC)

Java는 썬 마이크로시스템즈(현 오라클)에서 개발한 객체 지향 프로그래밍 언어로, WORA (Write Once, Run Anywhere)라는 슬로건처럼 운영체제에 독립적인 실행 환경을 제공하는 것이 가장 큰 특징입니다. 웹 애플리케이션, 안드로이드 앱, 기업용 솔루션 등 매우 다양한 분야에서 널리 사용됩니다.


⚙️ JVM (Java Virtual Machine)

Java가 WORA를 가능하게 하는 핵심 기술은 JVM (Java Virtual Machine)입니다. JVM은 자바 코드를 실행하기 위한 가상의 컴퓨터 환경입니다.

1. 개발자가 작성한 `.java` 소스 코드는 자바 컴파일러(javac)에 의해 운영체제에 독립적인 바이트코드(.class 파일)로 컴파일됩니다. 2. 이 바이트코드는 특정 운영체제에 종속되지 않고, JVM이 설치된 어떤 환경에서든 실행될 수 있습니다. 3. JVM은 바이트코드를 읽어들여 해당 운영체제에 맞는 기계어로 번역하고 실행합니다.


🗑️ GC (Garbage Collection)

Java는 가비지 컬렉션(GC) 기능을 통해 개발자가 직접 메모리를 관리해야 하는 부담을 줄여줍니다. GC는 프로그램이 동적으로 할당했던 메모리 영역 중에서, 더 이상 사용되지 않는 객체(쓰레기)를 찾아내어 자동으로 해제하는 역할을 합니다.

  • 장점 : 개발자가 메모리 누수(Memory Leak)와 같은 메모리 관리 오류에 신경 쓸 필요 없이 비즈니스 로직에 집중할 수 있습니다.
  • 단점 : GC가 실행될 때 애플리케이션의 동작이 일시적으로 멈추는 'Stop-the-World' 현상이 발생할 수 있으며, 이는 성능 저하의 원인이 될 수 있습니다.

💡 정보처리기사 핵심 Point

  • 정보처리기사 시험에서는 Java의 WORA 개념과 이를 가능하게 하는 JVM의 역할을 묻는 문제가 자주 출제됩니다.
  • 가비지 컬렉션(GC)의 개념과 역할, 그리고 GC가 동작할 때 발생하는 'Stop-the-World' 현상에 대한 이해가 중요합니다.
  • Java는 객체 지향 프로그래밍 언어이므로, 객체 지향의 4가지 특징(캡슐화, 상속, 다형성, 추상화)을 잘 이해해야 합니다.