[FirstJava] 1.5 첫 번째 자바 프로그램 작성 – Hello World 예제 코드 작성 및 분석
1.5 첫 번째 자바 프로그램 작성 – Hello World 예제 코드 작성 및 분석
자바를 처음 접하는 분들이 가장 먼저 작성하는 코드, 바로 Hello World입니다. 하지만 이 간단한 코드 속에도 자바의 구조와 철학이 담겨 있다는 사실, 알고 계셨나요?
안녕하세요, 여러분! 😊
이번 시간에는 자바 프로그래밍의 첫걸음을 내딛는 가장 클래식한 예제, Hello World 프로그램을 작성해보고 그 안에 담긴 의미를 하나하나 분석해 보려 합니다. 자바가 어떤 구조로 되어 있는지, 실행 흐름은 어떻게 되는지, 어떤 키워드가 반드시 필요한지 등 기초를 탄탄히 다질 수 있는 주제이니 초보자분들께 꼭 추천드리는 내용이에요. 앞으로 자바 프로그램을 작성할 때 매우 중요한 기초 개념이니 꼼꼼히 함께 살펴봐요!
목차
1. Hello World 프로그램 작성
자바 프로그래밍을 처음 배울 때 가장 먼저 작성하게 되는 프로그램이 바로 Hello World입니다. 이 예제는 단순히 화면에 문장을 출력하는 코드지만, 자바 프로그램이 동작하기 위해 필요한 핵심 요소들을 모두 포함하고 있어요. 지금부터 한 줄 한 줄 어떤 의미를 가지는지 함께 살펴볼게요.
📝 Hello World 예제 코드
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
이제 이 코드가 어떤 구조로 되어 있고, 어떤 의미를 담고 있는지 구체적으로 분석해보겠습니다.
2. 코드 구조 한눈에 보기
코드 라인 | 설명 |
---|---|
public class HelloWorld | 자바 클래스 정의. 클래스 이름은 파일 이름과 동일해야 함. |
public static void main(String[] args) | 자바 프로그램의 진입점. main 메서드는 반드시 이 형식을 따라야 실행 가능. |
System.out.println("Hello, World!"); | 콘솔에 "Hello, World!" 문장을 출력. |
- 클래스 이름은 대문자로 시작하며, 보통 명사형으로 작성합니다.
-
main
메서드는 자바에서 프로그램 실행을 위한 필수 구성요소예요. -
System.out.println()
은 출력용 메서드로 콘솔에 결과를 보여줄 때 사용됩니다.
3. 클래스와 메서드의 역할
자바는 객체지향 프로그래밍 언어이기 때문에 클래스와 메서드의 개념이 매우 중요해요. 모든 자바 프로그램은 클래스로 시작해서 클래스로 끝난다고 해도 과언이 아닙니다. 그 안에서 메서드는 '행동' 또는 '동작'을 정의하는 단위죠.
📦 클래스란 무엇인가요?
클래스는 객체를 생성하기 위한 설계도입니다. 자바에서 모든 코드는 클래스 안에 들어가야 하며, public class HelloWorld
와 같은 형식으로 정의됩니다. 여기서 HelloWorld
는 클래스 이름이자 프로그램의 시작점을 나타내는 이름입니다.
- 클래스 이름은 파일명과 반드시 일치해야 하며, 대소문자를 구분합니다.
- 하나의 자바 파일에는 하나의 public 클래스만 존재할 수 있어요.
🛠️ 메서드는 프로그램의 동작을 정의해요
main()
메서드는 자바 애플리케이션의 진입점이자 가장 먼저 실행되는 코드 블록이에요. 자바 가상 머신(JVM)은 이 메서드를 찾아 실행을 시작합니다. 아래의 구성요소를 함께 기억해두면 좋아요.
키워드 | 의미 |
---|---|
public | 어디서든 접근 가능하도록 허용하는 접근 제한자 |
static | 객체를 생성하지 않고도 호출할 수 있도록 함 |
void | 반환값이 없다는 뜻 (결과를 반환하지 않음) |
String[] args | 실행 시 외부에서 전달되는 인자 (배열 형태) |
정리하자면, 클래스는 자바 프로그램의 설계도이고, 메서드는 행동의 실행 단위입니다. 이 두 가지 개념을 정확히 이해하는 것이 자바의 문법과 구조를 익히는 데 있어 가장 중요한 첫걸음이에요.
4. main 메서드란 무엇인가?
자바 애플리케이션에서 가장 먼저 실행되는 메서드는 main()입니다. main()
메서드는 자바 가상 머신(JVM)이 프로그램을 시작할 때 가장 먼저 호출하는 메서드이며, 우리가 작성한 프로그램의 실행 흐름을 시작하는 출발점이에요.
🎯 main 메서드의 형태와 규칙
public static void main(String[] args)
이 메서드는 정확히 위와 같은 형태를 따라야 자바 애플리케이션으로서 정상적으로 실행됩니다. 여기서 중요한 포인트는 다음과 같아요.
- 메서드 이름은 반드시 main이어야 하며, 대소문자를 정확히 구분해야 합니다.
- 접근 제어자는
public
이어야 외부에서 호출할 수 있어요. static
키워드는 객체를 만들지 않고 실행 가능하도록 합니다.- 반환형은
void
로, 실행 결과를 반환하지 않습니다. - 매개변수
String[] args
는 외부에서 전달되는 명령줄 인자들을 의미해요.
💡 main 메서드가 없는 경우는?
만약 main 메서드를 작성하지 않으면 자바 프로그램은 실행되지 않아요. 컴파일은 되더라도 실행 도중 "Main method not found in class..."와 같은 오류 메시지를 만나게 됩니다.
📌 main 메서드 관련 실수 TOP 3
- 메서드 이름을
Main
처럼 대문자로 시작함 → 오류 발생 - 매개변수 형태를
String args[]
대신 다른 형태로 작성함 → 실행 불가 -
static
이나public
키워드를 빠뜨림 → 컴파일되지만 실행 안 됨
결국 main 메서드는 자바 프로그램의 문을 여는 열쇠입니다. 이 문을 제대로 열기 위해서는 정확한 문법과 이해가 꼭 필요해요.
5. System.out.println()의 의미
처음 자바를 접하면 가장 자주 보게 되는 코드 중 하나가 바로 System.out.println()
입니다. 단순히 문자열을 출력하는 역할을 하지만, 이 문장이 실제로 어떤 구조로 이루어졌는지 알고 있으면 자바 언어에 대한 이해도가 한층 더 깊어질 수 있어요.
🔍 구성 요소 하나씩 뜯어보기
요소 | 설명 |
---|---|
System |
자바의 표준 유틸리티 클래스 중 하나로, 다양한 시스템 관련 기능을 제공 |
out |
System 클래스의 정적(static) 필드로, 콘솔 출력 스트림(PrintStream)을 의미 |
println() |
출력 스트림을 통해 문자열을 출력하고 줄바꿈까지 수행하는 메서드 |
✨ println()과 print()의 차이
-
print()
는 줄바꿈 없이 문자열을 출력해요. -
println()
은 출력 후 자동으로 줄을 바꿔줍니다.
System.out.print("Hello");
System.out.print("World!");
// 출력 결과: HelloWorld!
System.out.println("Hello");
System.out.println("World!");
// 출력 결과:
// Hello
// World!
이처럼 단순한 출력 명령어 하나에도 자바의 정적 클래스, 스트림, 메서드 호출 구조가 고스란히 녹아 있어요. 단순해 보여도 알고 보면 꽤 많은 개념이 숨어 있는 셈이죠!
6. 소스코드 컴파일과 실행 흐름
자바 프로그램은 단순히 파일을 저장하고 실행하는 것으로 끝나지 않아요. 컴파일과 실행이라는 두 단계를 거쳐야 실제로 동작하게 됩니다. 이 과정은 자바가 플랫폼 독립성을 유지하고 다양한 환경에서 실행될 수 있도록 해주는 핵심 기전이기도 해요.
⚙️ 자바 프로그램 실행 과정 4단계
- ① 작성 (Writing): 자바 소스 파일(.java) 생성
- ② 컴파일 (Compile):
javac HelloWorld.java
명령으로 바이트코드(.class) 생성 - ③ 실행 (Run):
java HelloWorld
명령으로 JVM이 클래스 실행 - ④ 출력 (Output): 콘솔에
Hello, World!
메시지 출력
🖥️ 터미널 명령어 예시
javac HelloWorld.java
java HelloWorld
컴파일을 하면 HelloWorld.class
라는 바이트코드 파일이 생성되며, JVM은 이 파일을 읽어 실행하게 됩니다.
🚀 JVM은 어떻게 실행할까요?
- JVM은 OS에 독립적인 가상 머신으로, 바이트코드를 해석하고 실행합니다.
- 덕분에 동일한 자바 코드를 윈도우, 리눅스, 맥OS 등 다양한 환경에서 동일하게 실행할 수 있어요.
이처럼 자바는 한 번 작성하고 어디서든 실행할 수 있는 진정한 플랫폼 독립 언어예요. Hello World 한 줄로도 자바의 이 철학을 충분히 느낄 수 있답니다!
마무리하며: 첫 Hello World에 담긴 의미
Hello World 프로그램은 단순히 화면에 문장을 출력하는 코드가 아닙니다. 그 안에는 자바 언어의 기본 구조와 JVM의 실행 원리, 그리고 객체지향 프로그래밍의 철학까지 녹아 있습니다. 처음 이 코드를 작성하는 순간부터 우리는 자바 프로그래머로서 첫 발을 내디딘 것이죠.
처음에는 모든 것이 낯설고 어렵게 느껴질 수 있어요. 하지만 하나하나 코드를 뜯어보고, 왜 그렇게 작성되는지를 이해하려는 자세만 있다면 어느 순간 자바가 익숙하고 재밌게 다가올 거예요. Hello World는 끝이 아니라 시작입니다. 자바의 세상에 온 걸 환영해요! 🎉