Java 입문

손주현·2025년 4월 2일

Java 기초

목록 보기
1/13
post-thumbnail

☕ Java란?

Java는 객체지향 프로그래밍 언어로, “한 번 작성하면 어디서나 실행된다(Write Once, Run Anywhere)”는 철학을 가지고 있다. 자바는 표준 스펙구현으로 나뉘며, 다양한 운영체제에서 실행될 수 있는 장점이 있다.


자바 표준 스펙 vs 구현

  • 표준 스펙: 자바의 설계도, 문서 형태로 존재하며 JCP(Java Community Process)에서 관리함.
  • 구현: 여러 회사들이 이 스펙에 맞춰 자바를 실제로 개발함 (예: Oracle OpenJDK, Amazon Corretto 등)

표준에 맞춰 개발되기 때문에 Oracle JDK에서 Corretto로 바꿔도 대부분 문제없이 작동.

🔗 참고: https://whichjdk.com/ko


자바 프로그램 실행 과정

  1. 소스 코드 작성 (Hello.java)

  2. 자바 컴파일러를 사용해서 소스 코드를 컴파일 (javac Hello.java)

    • .class 바이트코드 파일 생성
  3. 실행 (java Hello)

    • JVM이 .class 파일을 실행

컴파일 단계에서 문법 오류를 잡고, JVM에서 OS와 무관하게 실행할 수 있도록 함.


IntelliJ에서 자바 컴파일과 실행

IntelliJ는 자바 컴파일러(javac)와 실행기(java)를 자동으로 처리해주므로, 별도 명령어 입력 없이 실행 가능함. .class 파일은 out 폴더에 생성됨.


운영체제 독립성

  • 일반 프로그램은 OS마다 따로 개발해야 함 (윈도우용, Mac용 등)
  • 자바는 JVM만 설치하면 OS에 상관없이 동일한 .class 파일을 실행할 수 있음

자바 개발자는 자바만 신경 쓰면 되고, OS 호환성은 JVM이 해결해 줌.


개발 환경 vs 운영 환경

  • 개발: 주로 윈도우, Mac
  • 운영(서버): 주로 리눅스 (AWS의 경우 Amazon Corretto 사용)

운영체제가 다르더라도 각 환경에 맞는 자바만 설치하면 동일한 .class 파일로 실행 가능함.


JDK, JRE, JVM 차이

Java 개발을 시작하면 자주 보게 되는 용어 3가지가 있다:

  • JDK (Java Development Kit)
  • JRE (Java Runtime Environment)
  • JVM (Java Virtual Machine)

이 셋은 서로 포함 관계이며, 각각의 역할이 다르다.


JVM (Java Virtual Machine)

  • 자바 바이트코드(.class)를 실제로 실행하는 가상 머신
  • 운영체제 위에서 동작하며, Java 프로그램을 OS에 맞는 기계어로 변환해 실행
  • 자바의 운영체제 독립성을 가능하게 해줌

우리가 작성한 .java → .class 파일을 실제로 실행하는 엔진.


JRE (Java Runtime Environment)

  • JVM + 자바 프로그램 실행에 필요한 라이브러리/파일을 포함한 환경
  • 실행만 가능, 개발은 불가능
  • 사용자가 자바 프로그램을 실행할 수 있게 해주는 환경

Java 프로그램을 “사용”할 수 있는 환경.


JDK (Java Development Kit)

  • JRE + 개발 도구(컴파일러 javac, 디버거 등)
  • 자바 애플리케이션을 개발할 때 반드시 필요
  • 우리가 자바 코드를 작성하고 컴파일할 수 있게 해주는 도구 세트

자바 개발자라면 무조건 설치해야 하는 개발용 도구 모음.


포함 관계 한 줄 요약

JDK ⊃ JRE ⊃ JVM
  • JDK 안에는 JRE가,
  • JRE 안에는 JVM이 들어 있다.

자바를 공부하려면?

JDK를 설치해야 한다.

JDK만 설치하면 개발, 컴파일, 실행까지 전부 가능하다.
요즘은 IntelliJ 같은 IDE를 통해 JDK 설치도 자동으로 할 수 있으니 부담 가질 필요 없다.

profile
Clarinetist.dev

0개의 댓글