자바(Java)는 단순히 "Hello World"를 출력하는 언어가 아니다. 운영체제에 독립적인 실행 환경, 풍부한 표준 라이브러리, 객체 지향 언어로서의 강점을 갖추고 있기 때문에 지금도 여전히 서버 개발의 표준으로 사용된다. 이번 글에서는 가장 기본적인 HelloJava 프로그램 작성 → 컴파일 및 실행 과정 → JVM 이해 → OS 독립성까지, 자바 개발자라면 반드시 알아야 할 내용을 정리해보겠다.
HelloJava 프로그램 구조
public class HelloJava {
public static void main(String[] args) {
System.out.println("hello java");
}
}
- 클래스 선언 (class)
- 자바는 모든 코드를 클래스 안에 작성해야 한다.
- 파일명과 클래스명은 같아야 하며, {} 블록으로 범위를 구분한다.
- 메인 메서드 (main)
- 메인 메서드는 자바 프로그램의 진입점이다.
- public static void main(String[] args)는 약속된 형태로, 실행 시 가장 먼저 호출된다.
- 출력문 (System.out.println)
- 표준 출력 기능이다.
- 문자열은 반드시 ""(쌍따옴표)로 감싼다.
- 세미콜론(;)
- 문장의 끝을 구분하는 필수 기호이다.
- 자바스크립트(js)의 경우 세미콜론이 필수가 아니었다.
실행 과정
자바 프로그램 실행 과정은 단순히 Run 버튼을 누르는 것 이상의 절차가 숨어 있다.

- HelloJava.java 작성
- javac HelloJava.java → 바이트코드(.class) 생성
- java HelloJava 실행 → JVM이 .class 파일을 해석
- 결과: hello java 출력
즉, 자바는 컴파일 + 실행 두 단계를 거치며, 실행 시에는 JVM(Java Virtual Machine)이 핵심 역할을 한다.
블록(Block)과 들여쓰기
public class HelloJava { // 클래스 범위 시작
public static void main(String[] args) { // 메서드 범위 시작
System.out.println("hello java");
} // 메서드 범위 끝
} // 클래스 범위 끝
- { } 블록은 범위(scope)를 나타낸다.
- 가독성을 위해 들여쓰기(보통 4칸 스페이스)를 반드시 지켜야 한다.
- IDE(IntelliJ 등)는 자동 들여쓰기를 지원하므로 적극 활용하는 것이 좋다.
자바란? (표준 스펙과 구현체)
자바는 크게 표준 스펙과 구현체로 나뉜다.

- 자바 표준 스펙
- "자바는 이렇게 만들어져야 한다"라는 설계도인 셈이다.
- JCP(Java Community Process)에서 관리한다.
- 컴파일러, 실행 라이브러리, JVM까지 모두 스펙이 존재한다.
- 자바 구현체
- 여러 회사가 표준 스펙에 맞게 실제 동작하는 자바를 구현한다.
- 대표 예시: 오라클 Open JDK, Eclipse Temurin, Amazon Corretto (AWS 최적화) 등
즉, 학습 단계에서는 어떤 자바를 사용하든 상관없다.
(서버 환경에서는 Amazon Corretto 같은 특정 JDK를 권장하기도 한다.)
컴파일과 실행 과정
- javac Hello.java → 바이트코드 파일(Hello.class)을 생성한다.
- java Hello → JVM이 .class을 실행한다.
- JVM은 바이트코드를 OS에 맞는 기계어로 변환하여 실행한다.
- 이 과정을 통해 자바는 운영체제 독립성을 얻는다.
운영체제 독립성
일반 프로그램(.exe)은 특정 OS 전용으로만 실행되지만, 자바는 다르다.

- .java → .class (바이트코드)
- JVM만 설치되어 있다면 Windows, Mac, Linux 어디서든 동일한 .class 실행 가능
- 개발자는 OS별로 별도의 코드를 작성할 필요가 없다. (단, JVM만 설치되어 있으면 됨)
이 덕분에 "Write Once, Run Anywhere"라는 자바의 철학이 성립한다.
개발 환경과 배포 환경
- 개발자는 보통 Windows/Mac에서 개발한다.
- 서버 환경은 대부분 Linux이므로, 배포 시 Amazon Corretto 같은 Linux용 JVM을 설치한다.
- 즉, 개발과 운영 환경에서 JDK 종류가 달라도 문제없이 동작한다.
주석(Comment)
복잡한 코드를 이해하기 쉽게 만들거나, 특정 코드를 잠시 비활성화할 때 사용한다.
주석은 컴파일러가 무시한다.
- 한 줄 주석
// 이것은 한 줄 주석입니다.
- 여러 줄 주석
/* 이것은 여러 줄 주석입니다. */
협업과 유지보수를 위해 주석을 잘 다는 습관은 필수이다.
정리하자면...
- 자바는 클래스와 메인 메서드로 시작한다.
- 실행은 컴파일 → JVM 실행 과정을 거친다.
- 자바는 운영체제에 독립적이므로, 한 번 작성한 코드를 어디서든 실행할 수 있다.
- 여러 JDK 구현체(OpenJDK, Temurin, Corretto)가 있지만 표준 스펙을 따르므로 큰 차이는 없다.
- 주석은 코드의 가독성과 유지보수성을 높이는 핵심 도구다.
'java' 카테고리의 다른 글
| Java 스코프(Scope)와 형변환(Type Casting) 정리 (0) | 2025.09.09 |
|---|---|
| Java 반복문(Loop) 정리 (0) | 2025.09.09 |
| Java 조건문(Conditional Statements) 정리 (0) | 2025.09.09 |
| Java 연산자(Operator) 정리 (0) | 2025.09.08 |
| Java 변수(Variable) 정리 (0) | 2025.09.08 |