반응형

1.6 실습: Hello World 프로그램 실행 – 작성한 프로그램을 컴파일하고 실행하여 동작 확인

여러분, 자바 파일 하나 만들고 실행하는 게 이렇게 재밌는 일이라는 걸 아셨나요? 처음으로 "Hello, World!"를 출력해보는 그 순간, 진짜 개발자가 된 것 같은 뿌듯함이 느껴질 거예요!

반응형

안녕하세요, 자바 입문자 여러분! 지난 시간까지는 자바 언어의 역사와 특징, 그리고 개발 도구 설치까지 차근차근 살펴봤습니다. 이제는 실제로 자바 파일을 작성하고, 컴파일하고, 실행해보는 실습 단계에 도달했어요. 직접 코드를 작성해서 출력 결과를 확인하는 이 단계는 자바의 문법과 동작 방식을 몸으로 익히는 데 큰 도움이 됩니다. 오늘은 간단한 "Hello World" 예제를 통해 컴파일과 실행 과정을 단계별로 따라가 보면서, 자바 개발의 첫걸음을 함께 내딛어보겠습니다.

1. Hello World 자바 소스 코드 살펴보기 📝

자바에서 가장 처음 만나게 되는 코드, 바로 Hello World 프로그램입니다. 이 코드는 짧지만 자바의 핵심 구조가 어떻게 구성되어 있는지 잘 보여주는 예제이기도 해요. 먼저 전체 코드를 먼저 살펴보고, 각 구성 요소를 하나씩 뜯어보겠습니다.

HelloWorld.java 예제 코드

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

이 코드에는 자바의 가장 기본적인 요소들이 모두 포함돼 있어요. 자, 이제 한 줄씩 살펴볼까요?

1️⃣ public class HelloWorld

자바는 클래스 단위로 프로그램이 구성돼요. HelloWorld라는 이름의 클래스를 선언했고, 클래스 이름은 파일 이름과 반드시 일치해야 해요. 그래서 이 파일의 이름은 HelloWorld.java여야 합니다.

2️⃣ public static void main(String[] args)

이 부분은 자바 프로그램의 시작점이에요. 자바 프로그램을 실행하면 JVM이 이 메서드부터 실행을 시작해요. 'main 메서드'라고 부르며, 반드시 다음과 같은 형식으로 작성돼야 합니다:

  • public: 어디서든 호출 가능하게 함
  • static: 객체를 만들지 않아도 사용 가능
  • void: 반환값이 없음
  • String[] args: 명령줄 인자 받기용 매개변수

3️⃣ System.out.println("Hello, World!");

이 줄은 실제로 화면에 출력을 담당하는 부분이에요. 콘솔에 "Hello, World!" 라는 문장을 출력하죠. 자바에서 표준 출력은 System.out을 통해 이루어지고, println()은 줄 바꿈을 포함해 출력해 줍니다.

이제 코드의 각 줄이 어떤 역할을 하는지 조금 감이 잡히셨나요? 😀 다음 단계에서는 이 파일을 어떻게 저장하고, 어떤 확장자를 써야 하는지 설명드릴게요.

2. 파일 저장 및 확장자 명명 규칙 📂

이제 자바 코드를 직접 작성해봤으니, 이 파일을 저장해볼 차례예요. 여기서 중요한 점은 자바 파일의 저장 이름과 클래스 이름은 반드시 동일해야 한다는 것입니다. 이 규칙을 지키지 않으면 컴파일 에러가 발생해요.

파일 저장 이름 규칙 🔤

  • 클래스 이름이 HelloWorld라면 파일명은 HelloWorld.java여야 합니다.
  • 자바 소스 파일의 확장자는 반드시 .java 여야 합니다.
  • 대소문자를 구분하므로 정확하게 입력해야 해요!

예시 저장 과정 💾

  1. 텍스트 에디터(예: VS Code, Notepad++, 이클립스 등)를 열고 코드를 붙여넣기
  2. 메뉴에서 다른 이름으로 저장 선택
  3. 파일 이름을 HelloWorld.java로 지정 후 저장

💡 팁: 윈도우에서는 파일 저장 시 확장자가 숨김 처리될 수 있으니, 폴더 옵션에서 “알려진 파일 형식의 파일 확장명 숨기기”를 해제해 주세요!

이제 파일 저장까지 완료했으니, 다음 단계에서는 이 파일을 컴파일해서 자바 프로그램이 어떻게 바이트코드로 바뀌는지 알아볼 거예요. 터미널을 사용할 준비 되셨죠? 😊

3. 컴파일: 자바 파일을 바이트코드로 변환하기 🔧

자바 프로그램은 소스 코드를 바로 실행하는 것이 아니라 컴파일 과정을 거쳐 바이트코드(.class 파일)로 변환된 뒤, JVM(Java Virtual Machine)이 이를 실행합니다. 자바의 대표적인 특징이죠! 이 과정을 직접 실행하면서 확인해보겠습니다.

자바 컴파일 명령어 사용 방법

파일을 컴파일하려면 명령 프롬프트(Windows)나 터미널(Mac/Linux)에서 아래 명령어를 입력하면 됩니다:

javac HelloWorld.java

📌 이 명령어는 javac(Java Compiler)를 통해 HelloWorld.java 파일을 HelloWorld.class라는 바이트코드 파일로 변환해 줍니다.

✅ 컴파일 결과 확인

  • 컴파일 성공 시, 별다른 메시지 없이 HelloWorld.class 파일이 생성됩니다.
  • 컴파일 에러가 발생하면 오류 메시지가 표시되고, .class 파일은 생성되지 않아요.

컴파일이 잘 되었다면 이제 실행만 남았네요! 다음 섹션에서는 우리가 만든 바이트코드를 실제로 실행해서 "Hello, World!" 메시지를 출력해 보겠습니다 😊

4. 실행: 자바 프로그램 실행 결과 확인하기 ▶️

자바 코드를 작성하고 컴파일까지 완료했다면, 이제는 실행 단계입니다. 우리가 만든 HelloWorld.class 파일을 자바 가상 머신(JVM)을 통해 실제로 실행해 볼 거예요.

자바 클래스 실행 명령어

java HelloWorld

☝ 주의: 확장자인 .class는 입력하지 않고, 클래스 이름만 입력해야 해요!

실행 결과 화면

Hello, World!

바로 이거죠! 여러분의 터미널에 Hello, World!가 출력됐다면, 첫 자바 프로그램 실행에 성공한 거예요. 🎉 진심으로 축하드립니다! 이제 여러분은 자바 개발자로서의 첫걸음을 내디딘 거랍니다.

실행 과정 요약 🔄

  1. 터미널에서 해당 파일이 있는 디렉터리로 이동
  2. javac HelloWorld.java로 컴파일
  3. java HelloWorld로 실행

혹시 실행이 잘 안 되거나 오류 메시지가 나왔다면 괜찮아요! 다음 섹션에서는 자주 발생하는 오류와 그 해결 방법들을 하나씩 정리해 드릴게요 😊

5. 자주 발생하는 컴파일/실행 오류와 해결법 💡

Hello World 예제는 간단하지만, 처음 접하는 분들에겐 의외로 많은 오류가 발생할 수 있어요. 자바는 문법에 엄격하기 때문에, 아주 작은 실수에도 에러가 발생합니다. 아래는 가장 많이 나오는 오류들과 그 해결법이에요.

❌ 컴파일 시 자주 발생하는 오류

오류 메시지 발생 원인 해결 방법
';' expected 세미콜론 누락 각 문장 끝에 ;을 붙였는지 확인
class HelloWorld is public, should be declared in a file named HelloWorld.java 파일명과 클래스명이 다름 파일 이름을 HelloWorld.java로 저장
cannot find symbol 변수, 메서드 오타 대소문자 및 철자 확인

⚠️ 실행 시 자주 나오는 오류

  • Error: Could not find or load main class HelloWorld
    클래스 파일이 없는 위치에서 실행하거나 .class가 존재하지 않을 경우 발생.
  • Exception in thread "main"
    main 메서드 오탈자 또는 잘못된 선언 형식 (예: static 빠짐)

에러 메시지를 무서워하지 마세요! 대부분 아주 사소한 실수에서 비롯되며, 그만큼 쉽게 고칠 수 있어요. 😊

지금까지의 과정을 통해 여러분은 단순한 텍스트 출력 이상의 경험을 하셨을 거예요. 이제 마지막으로 이번 실습을 정리하고, 다음 단계에서 어떤 걸 배울지 살짝 알려드릴게요!

6. 실습 요약과 다음 학습 연결 고리 🔗

처음으로 자바 프로그램을 직접 작성하고 실행해보는 이 경험, 어떠셨나요? 지금까지 진행한 Hello World 실습은 자바의 전체 구조와 실행 흐름을 이해하는 데 있어 매우 중요한 첫걸음이에요. 우리가 실습한 과정을 한 번 정리해볼게요.

🧾 실습 요약: Hello World 작성부터 실행까지

  1. 자바 기본 구조를 이해하고 HelloWorld 클래스를 작성함
  2. HelloWorld.java로 파일 저장 (클래스 이름과 일치해야 함)
  3. javac HelloWorld.java 명령어로 컴파일 수행
  4. java HelloWorld 명령어로 실행 후 "Hello, World!" 출력 확인
  5. 오류 메시지 확인 및 해결 방법 학습

이 짧은 실습 안에 자바 문법, 클래스 구조, 컴파일러 사용법, JVM의 동작 방식까지 정말 많은 개념이 녹아 있었답니다!

💡 다음 단계 예고: 변수와 자료형

이제 "Hello, World!"만 출력하던 우리 프로그램을 한 단계 발전시켜 볼 차례예요. 다음 시간에는 변수 선언과 자료형을 배우면서 프로그램에 데이터를 다루는 방법을 익혀볼 거예요. 직접 숫자와 문자열을 입력하고 출력해보며 자바의 기본 타입과 연산에 대해 실습해볼 예정입니다.

 

지금까지 첫 번째 자바 실습을 멋지게 마무리하셨습니다. 👏 이제 진짜 자바의 세계로 한 걸음 더 나아가 볼 준비 되셨죠?

 

이번 시간에는 자바의 가장 기본이 되는 Hello World 프로그램을 직접 작성하고, 컴파일하고, 실행하는 과정을 차근차근 실습해보았어요. 처음이라 약간은 생소했을 수도 있지만, 이런 작은 성공들이 모여 큰 자신감으로 이어진다는 걸 꼭 기억해 주세요 😊

 

이 실습을 통해 자바의 클래스 구조, 컴파일과 실행 흐름, 오류 해결 방법 등 필수적인 기초를 하나씩 내 것으로 만들 수 있었을 거예요. 앞으로 배울 변수, 연산자, 조건문 등을 통해 훨씬 더 다양한 프로그램을 만들어보게 될 거니까 기대 많이 해주세요!

 

모든 개발자들의 시작은 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)

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

  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는 끝이 아니라 시작입니다. 자바의 세상에 온 걸 환영해요! 🎉

반응형
반응형

1.4 프로젝트 구조와 컴파일: 소스 작성부터 실행까지 한눈에 보기

Java 프로젝트를 시작하려는데 어디서부터 손대야 할지 막막하신가요? 이 글 하나면, 자바 파일을 만들고 컴파일해서 실행하는 전 과정을 단숨에 이해할 수 있어요!

반응형

 

안녕하세요, 자바 입문자 여러분! 😊 자바라는 언어는 구조적으로 탄탄하고 배우기 좋은 언어지만, 막상 개발을 시작하려고 보면 처음부터 헷갈리는 게 한두 가지가 아니죠. 특히 소스 코드를 어디에 저장하고, 어떻게 컴파일하고, 또 실행은 어떻게 하는지 같은 기본적인 흐름이 제대로 정리되어 있지 않으면 시작부터 멘붕 오기 딱 좋아요. 이번 글에서는 자바 프로젝트의 기본 구조컴파일부터 실행까지의 전체 과정을 아주 쉽게, 그리고 실습 가능한 예제 중심으로 정리해드릴게요. 그럼, 천천히 따라오시죠!

1. 기본 프로젝트 디렉터리 구조 이해하기 📁

자바를 처음 시작하면, "도대체 자바 프로젝트를 어디에 어떻게 구성해야 하지?"라는 고민부터 생기기 마련이에요. 사실 자바는 아주 단순한 구조로도 실행이 가능한 언어지만, 나중에 확장성과 관리까지 고려하면 어느 정도 구조화된 형태가 필요하죠.

💡 자바 기본 디렉터리 구조 예시

폴더/파일명 설명
project-root/ 프로젝트의 최상위 디렉터리
└─ src/ 자바 소스 코드(.java 파일) 저장 폴더
└─ bin/ 컴파일된 .class 파일이 저장되는 폴더

이 구조는 매우 기본적인 형태로, IDE 없이 직접 컴파일/실행할 때도 적합해요. 이후에 Maven, Gradle 같은 빌드 도구를 쓰게 되면 구조가 더 복잡해지지만, 지금은 단순한 것이 좋아요.

  • src/ 폴더 안에 클래스별로 파일을 나누어 작성
  • 컴파일 후 결과물은 bin/ 폴더에 자동으로 생성
  • 폴더 명은 자유롭게 설정 가능하나 관례를 따르는 것이 좋음

정리하자면, src → bin으로 이어지는 단순한 구조만 기억하면, 자바의 세계에 한발 더 들어갈 준비가 된 거예요! 그럼 다음 섹션에서는, 이 안에 들어갈 소스 파일이 어떤 구성인지 알아볼까요?

2. 자바 소스 파일(.java)의 구성 요소 🔤

자바 파일을 하나 열어보면 "public class ~"부터 시작해서, main이라는 단어가 보이고, 중괄호가 잔뜩 있어요. 이걸 처음 보면 “이게 대체 뭔데요?”라는 생각부터 들죠. 그래서 자바 파일의 구조를 이해하는 게 아주 중요해요!

🧩 자바 클래스 파일 기본 구조

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

이제 각 요소를 하나씩 분해해서 설명해볼게요. 너무 어렵지 않게요 😉

구성 요소 설명
public class HelloWorld HelloWorld라는 이름의 클래스 정의. 자바는 클래스 단위로 프로그램을 구성해요.
public static void main(String[] args) 프로그램의 시작점인 메인 메서드. 자바는 여기를 먼저 찾아 실행합니다.
System.out.println() 콘솔에 메시지를 출력하는 명령어예요. 대표적인 출력문이죠.

🔍 주의할 점

  • 클래스 이름과 파일 이름은 반드시 동일해야 해요 (예: HelloWorld.java)
  • 대소문자를 구분하므로 정확히 입력해야 해요!

이제 이 구조만 이해해도 기본적인 자바 파일은 직접 작성해볼 수 있어요. 다음 단계에서는, 이 소스 파일을 컴파일해서 실행 가능한 형태로 만드는 과정을 설명해볼게요!

3. 컴파일: 자바 소스를 바이트코드로 변환하기 ⚙️

우리가 작성한 .java 파일은 바로 실행할 수 없어요. 자바에서는 먼저 이 소스 코드를 컴파일해서 .class라는 형태로 바꿔줘야 하죠. 이게 바로 바이트코드예요! 컴파일은 이 작업을 자동으로 해주는 과정입니다.

🔧 자바 컴파일 명령어 예시

javac -d bin src/HelloWorld.java

이 명령은 src 폴더에 있는 자바 파일을 컴파일해서 bin 폴더에 .class 파일로 저장하라는 의미예요.

옵션 설명
javac Java Compiler, 자바 파일을 컴파일할 때 사용하는 명령어
-d bin 컴파일된 결과 파일을 저장할 디렉토리 지정
src/HelloWorld.java 컴파일할 소스 파일 경로

📌 컴파일 성공 시 구조

  • src/HelloWorld.javabin/HelloWorld.class로 생성됨
  • .class 파일은 JVM에서 읽을 수 있는 중간 코드 (기계어 아님!)

컴파일 과정이 익숙해지면, 여러 개의 파일도 한꺼번에 컴파일할 수 있고, 자동화 도구나 IDE에서도 손쉽게 할 수 있어요. 하지만 처음엔 꼭 명령어 기반으로 연습해보세요! 자바의 구조와 흐름을 몸으로 익힐 수 있거든요. 😊

4. 실행: JVM으로 클래스 파일 실행하기 🚀

컴파일이 끝나면 .class 파일이 생기죠. 이제 이걸 실행하면 프로그램이 동작하게 돼요. 자바 프로그램은 JVM(Java Virtual Machine)이라는 가상 머신 위에서 실행됩니다. 즉, JVM이 자바 바이트코드를 읽고 해석해서 실제 운영체제에서 동작하게 만들어줘요.

🎯 자바 실행 명령어 예시

java -cp bin HelloWorld

이 명령어는 bin 폴더에 있는 HelloWorld.class 파일을 실행해달라는 의미예요. java 명령어는 JVM을 호출하는 거고, -cp는 클래스 경로(classpath)를 지정해주는 옵션이에요.

명령어 요소 의미
java JVM을 호출해서 실행을 시작하는 명령
-cp bin 컴파일된 클래스 파일이 저장된 경로를 classpath로 지정
HelloWorld 실행할 클래스 이름(확장자 .class는 생략)

🚨 주의할 점

  • 클래스 경로에 해당 클래스가 정확히 포함되어야 실행이 돼요.
  • 클래스 이름만 쓰고 .class 확장자는 쓰면 안 돼요!

실행에 성공하면 여러분은 콘솔에서 Hello, World! 메시지를 볼 수 있어요! 그럼 이제 다음 단계에서는 이 모든 과정을 터미널에서 직접 실습해보는 흐름을 정리해드릴게요. 직접 손으로 해보는 게 제일 빨리 느는 법이니까요. 🧑‍💻

5. 터미널을 이용한 프로젝트 실습 예제 👨‍💻

이제 진짜 자바를 실습해볼 시간이에요! 여기서 알려드리는 예제를 따라 하면, Java 설치 → 코드 작성 → 컴파일 → 실행까지 한 번에 정리할 수 있어요. 터미널만 있으면 끝! ✨

🧪 1단계: 폴더 및 파일 생성

mkdir -p myjava/src myjava/bin
cd myjava/src
nano HelloWorld.java

코드를 입력할 때는 아래 내용을 붙여넣으세요.

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("자바 실습 성공!");
    }
}

⚙️ 2단계: 컴파일

cd ..
javac -d bin src/HelloWorld.java

🚀 3단계: 실행

java -cp bin HelloWorld

터미널에 아래처럼 출력되면 성공입니다! 🎉

자바 실습 성공!

✅ 실습 팁

  • 윈도우에서는 cmd 대신 PowerShell 또는 Git Bash를 사용해도 좋아요.
  • 에러가 났을 땐 파일 이름, 경로, 클래스명 대소문자 확인!

이렇게 직접 실습해보면서 자바의 흐름을 몸에 익히는 게 정말 중요해요. 다음 단계에서는 흔히 발생하는 컴파일 또는 실행 오류와 해결 방법도 알려드릴게요!

6. 컴파일/실행 오류 상황과 해결 방법 ❗

자바 처음 시작할 때 가장 당황스러운 순간은 에러 메시지예요. 😵 “분명히 똑같이 했는데 왜 안 되지?” 싶은 순간, 꼭 있죠. 그런데 대부분의 에러는 파일 이름, 클래스명, 경로 문제로 발생해요. 자주 발생하는 실수와 해결 방법을 모아봤어요.

🚫 자주 발생하는 컴파일 오류

에러 메시지 원인 해결 방법
class HelloWorld is public, should be declared in a file named HelloWorld.java 파일명과 클래스명이 다를 때 HelloWorld라는 클래스명과 같은 이름의 HelloWorld.java로 저장
';' expected 세미콜론 누락 각 문장의 끝에 ;를 꼭 붙이기
cannot find symbol 변수/메서드/클래스명이 잘못되었거나 선언되지 않음 오타, 선언 여부, import 여부 확인

💥 자주 발생하는 실행 오류

  • Error: Could not find or load main class HelloWorld → 클래스 경로가 잘못되었거나 -cp 옵션 누락
  • java.lang.NoClassDefFoundError → 클래스 경로가 빌드 시와 실행 시 다름
  • Exception in thread "main"main 메서드가 잘못되었거나 오타가 있음

🛠 에러 해결 체크리스트

  1. 클래스명과 파일명이 같은지 확인
  2. main 메서드가 정확한지 확인
  3. 컴파일 시 javac, 실행 시 java 사용 구분
  4. 클래스 경로 지정 -cp 사용 여부 확인
  5. 터미널 위치(폴더 경로)가 맞는지 다시 체크

에러는 처음엔 무서워도, 하나하나 해결해 나가다 보면 어느새 친숙한 친구가 돼요. 정말이에요. 😉 앞으로 실습을 하다가 비슷한 에러가 나면 이 글을 다시 열어보세요!

마무리하며 ✨

자바 프로젝트의 구조부터 컴파일, 실행 과정까지 직접 따라 해보셨나요? 처음에는 복잡하게 느껴질 수 있지만, 단계를 하나하나 밟아보면 자바가 얼마나 체계적이고 명확한 언어인지 느끼게 됩니다. 소스 코드를 작성하고, 컴파일하고, JVM으로 실행하는 이 일련의 과정은 앞으로 여러분이 만나게 될 수많은 프로젝트의 기본이 될 거예요.

이 글이 자바 학습의 첫걸음을 좀 더 쉽고 친절하게 만들어주는 데 도움이 되었기를 바라며, 앞으로 이어질 내용들에서도 실습 중심의 설명을 이어갈게요. 우리 함께 끝까지 자바 마스터, 도전해봐요! 💪

반응형

+ Recent posts