반응형

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)

이 메서드는 정확히 위와 같은 형태를 따라야 자바 애플리케이션으로서 정상적으로 실행됩니다. 여기서 중요한 포인트는 다음과 같아요.

  1. 메서드 이름은 반드시 main이어야 하며, 대소문자를 정확히 구분해야 합니다.
  2. 접근 제어자는 public이어야 외부에서 호출할 수 있어요.
  3. static 키워드는 객체를 만들지 않고 실행 가능하도록 합니다.
  4. 반환형은 void로, 실행 결과를 반환하지 않습니다.
  5. 매개변수 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단계

  1. 작성 (Writing): 자바 소스 파일(.java) 생성
  2. 컴파일 (Compile): javac HelloWorld.java 명령으로 바이트코드(.class) 생성
  3. 실행 (Run): java HelloWorld 명령으로 JVM이 클래스 실행
  4. 출력 (Output): 콘솔에 Hello, World! 메시지 출력

🖥️ 터미널 명령어 예시

javac HelloWorld.java
java HelloWorld

컴파일을 하면 HelloWorld.class라는 바이트코드 파일이 생성되며, JVM은 이 파일을 읽어 실행하게 됩니다.

🚀 JVM은 어떻게 실행할까요?

  • JVM은 OS에 독립적인 가상 머신으로, 바이트코드를 해석하고 실행합니다.
  • 덕분에 동일한 자바 코드를 윈도우, 리눅스, 맥OS 등 다양한 환경에서 동일하게 실행할 수 있어요.

이처럼 자바는 한 번 작성하고 어디서든 실행할 수 있는 진정한 플랫폼 독립 언어예요. Hello World 한 줄로도 자바의 이 철학을 충분히 느낄 수 있답니다!

마무리하며: 첫 Hello World에 담긴 의미

Hello World 프로그램은 단순히 화면에 문장을 출력하는 코드가 아닙니다. 그 안에는 자바 언어의 기본 구조JVM의 실행 원리, 그리고 객체지향 프로그래밍의 철학까지 녹아 있습니다. 처음 이 코드를 작성하는 순간부터 우리는 자바 프로그래머로서 첫 발을 내디딘 것이죠.

처음에는 모든 것이 낯설고 어렵게 느껴질 수 있어요. 하지만 하나하나 코드를 뜯어보고, 왜 그렇게 작성되는지를 이해하려는 자세만 있다면 어느 순간 자바가 익숙하고 재밌게 다가올 거예요. Hello World는 끝이 아니라 시작입니다. 자바의 세상에 온 걸 환영해요! 🎉

반응형

+ Recent posts