JVM(Java Virtual Machine) Language

Kkd·2025년 2월 9일
0

매일메일 개념정리

목록 보기
81/93

JVM Language란? 🚀

1. JVM Language란?

JVM Language(자바 가상 머신 언어)Java Virtual Machine(JVM) 위에서 실행되는 프로그래밍 언어를 의미합니다.
즉, JVM이 이해할 수 있는 바이트코드(Bytecode)로 변환되어 실행되는 언어들을 포함합니다.

📌 JVM을 기반으로 실행되는 대표적인 언어:
✅ Java
✅ Kotlin
✅ Scala
✅ Groovy
✅ Clojure
✅ JRuby (Ruby 기반)
✅ Jython (Python 기반)

이들 언어는 모두 JVM의 이점을 공유하며, Java 코드와 상호운용성(Interoperability)이 가능합니다.
즉, Java로 만든 라이브러리를 그대로 사용할 수 있으며, Java 프로젝트에서 혼합해서 사용할 수도 있습니다.


2. JVM Language의 특징

JVM에서 실행 가능 → JVM이 바이트코드로 변환하여 실행
플랫폼 독립성 → OS에 관계없이 실행 가능 (JVM만 있으면 됨)
GC(가비지 컬렉션) 지원 → 메모리 자동 관리
Java 라이브러리 사용 가능 → 기존 Java 생태계를 활용 가능
강력한 멀티스레딩 지원 → 병렬 처리 및 비동기 프로그래밍에 유리
여러 언어 간 상호운용성 → Kotlin, Scala, Groovy 등이 Java와 쉽게 호환됨


3. 주요 JVM 언어 소개

JVM에서 실행 가능한 대표적인 언어들을 살펴보겠습니다.

1️⃣ Java (가장 대표적인 JVM 언어)

가장 널리 사용되는 JVM 언어
OOP(객체지향) 기반, 강력한 타입 안정성
Spring Boot, Android 개발 등 다양한 분야에서 사용
오래된 언어지만 꾸준히 발전 중 (Java 21까지 출시됨)

📌 예제 코드

public class HelloJava {
    public static void main(String[] args) {
        System.out.println("Hello, Java!");
    }
}

2️⃣ Kotlin (Java를 대체할 모던 언어)

Google이 Android 공식 언어로 지정 (Java보다 간결함)
함수형 프로그래밍(FP) + 객체지향(OOP) 혼합
Null 안전성 제공 → NullPointerException(NPE) 방지
Java와 100% 호환 가능

📌 예제 코드

fun main() {
    println("Hello, Kotlin!")
}

3️⃣ Scala (함수형 프로그래밍 지원)

객체지향(OOP) + 함수형 프로그래밍(FP) 지원
Java보다 간결한 문법, 높은 생산성
Spark, Kafka 등 빅데이터 처리에서 많이 사용됨

📌 예제 코드

object HelloScala {
  def main(args: Array[String]): Unit = {
    println("Hello, Scala!")
  }
}

4️⃣ Groovy (스크립트 기반 JVM 언어)

Java 문법과 유사하지만 동적(Dynamic) 특성 추가
Gradle 빌드 시스템, Jenkins 스크립팅 등에 많이 사용
Java보다 간결하고, JSON/XML 처리에 강함

📌 예제 코드

println "Hello, Groovy!"

5️⃣ Clojure (Lisp 기반 함수형 언어)

JVM에서 실행되는 Lisp 계열 언어
완전한 함수형 프로그래밍 지원
병렬 프로그래밍과 멀티스레딩에 강함

📌 예제 코드

(println "Hello, Clojure!")

6️⃣ JRuby & Jython (Java 기반 Ruby, Python)

JRuby → Ruby 문법을 JVM에서 실행 가능
Jython → Python 문법을 JVM에서 실행 가능
Java 라이브러리를 Ruby/Python에서 활용 가능

📌 JRuby 예제 코드

puts "Hello, JRuby!"

📌 Jython 예제 코드

print("Hello, Jython!")

4. JVM의 동작 방식

JVM은 Java뿐만 아니라 모든 JVM 언어를 실행할 수 있도록 설계되었습니다.

📌 JVM 실행 과정
1️⃣ 소스 코드 작성 (Java, Kotlin, Scala 등)
2️⃣ 컴파일(Java → Bytecode, .class 파일 생성)
3️⃣ JVM이 Bytecode를 실행 (JIT 컴파일, GC 관리 포함)
4️⃣ 최종적으로 OS에서 실행됨


5. JVM Language의 장점과 단점

장점

플랫폼 독립성 → Windows, Linux, macOS 등 어디서든 실행 가능
Java 생태계 활용 가능 → 기존 Java 라이브러리 & 프레임워크 사용 가능
강력한 성능 → JIT(Just-In-Time) 컴파일러, GC(가비지 컬렉션) 최적화
다양한 선택지 제공 → Java, Kotlin, Scala, Groovy 등 다양한 언어 지원
높은 생산성 → Kotlin, Scala 등은 Java보다 간결한 코드 작성 가능


단점

JVM 실행 오버헤드 → 네이티브 언어(C, Rust)보다 느릴 수 있음
초기 학습 비용 → Scala, Clojure 등 일부 언어는 학습 난이도 높음
메모리 사용량이 많음 → JVM 자체가 메모리를 많이 차지


6. JVM 언어 선택 기준

사용 목적추천 JVM 언어
일반적인 백엔드 개발Java, Kotlin
Android 개발Kotlin (공식 언어)
빅데이터 처리 (Spark, Kafka)Scala
빌드 스크립트 (Gradle, Jenkins)Groovy
스크립트 기반 개발Groovy, JRuby, Jython
함수형 프로그래밍Scala, Clojure

7. 결론

JVM Language는 Java뿐만 아니라 Kotlin, Scala, Groovy, Clojure 등 다양한 언어를 포함
JVM 위에서 실행되므로 플랫폼 독립성을 가지며, Java 라이브러리를 자유롭게 활용 가능
각 언어마다 특징이 다르며, 개발 목적에 맞는 언어를 선택하면 생산성이 높아짐
Android 개발은 Kotlin, 백엔드는 Java/Kotlin, 빅데이터는 Scala가 주로 사용됨


추가 학습 자료

profile
🌱

0개의 댓글