소개
이 랩에서는 고급 프로그래밍 언어의 개념, 장점, 그리고 Java 의 작동 방식에 대해 알아보겠습니다. 여러분은 첫 번째 Java 프로그램을 작성하고 실행하는 방법을 배우면서 Java 프로그래밍의 기본 사항에 대한 실질적인 경험을 쌓게 될 것입니다.
프로그래밍 언어 이해
프로그래밍 언어는 고급 언어와 저급 언어로 분류됩니다. 기계어 및 어셈블리어와 같은 저급 언어는 컴퓨터에서 직접 실행할 수 있습니다. 반면에 고급 언어는 실행 전에 저급 언어로 변환되어야 합니다.
고급 언어는 다음과 같은 몇 가지 장점을 제공합니다.
- 더 쉬운 프로그래밍: 코드가 더 짧고, 읽기 쉬우며, 오류가 발생할 가능성이 적습니다.
- 이식성: 최소한의 수정으로 동일한 프로그램을 다른 머신에서 실행할 수 있습니다.
이러한 이점 때문에 대부분의 프로그램은 고급 언어로 작성되며, 저급 언어는 특정 응용 프로그램에 사용됩니다.
고급 언어를 저급 언어로 변환하는 두 가지 방법이 있습니다.
- 인터프리테이션 (Interpretation): 인터프리터는 고급 언어 코드를 한 줄씩 읽고 실행합니다.
- 컴파일 (Compilation): 컴파일러는 전체 고급 프로그램을 한 번에 실행 가능한 코드로 변환합니다.
Java 는 컴파일과 인터프리테이션을 모두 사용하는 하이브리드 방식을 사용합니다.
- Java 소스 코드는 먼저 바이트코드로 컴파일됩니다.
- 그런 다음 바이트코드는 Java Virtual Machine (JVM) 에 의해 해석되고 실행됩니다.
이 방식은 인터프리터 언어의 이식성과 컴파일 언어의 성능 이점을 결합합니다.

프로그램이란 무엇인가?
프로그램은 계산을 수행하는 방법을 지정하는 일련의 명령어입니다. 수학적이든 기호적이든, 모든 프로그램은 다음과 같은 기본 연산을 수행하는 문장으로 구성됩니다.
- 입력: 다양한 소스 (키보드, 파일 등) 에서 데이터를 받습니다.
- 출력: 다양한 대상 (화면, 파일 등) 에 데이터를 표시하거나 보냅니다.
- 수학: 산술 연산을 수행합니다.
- 테스팅: 조건을 확인하고 적절한 문장을 실행합니다.
- 반복: 종종 변형을 통해 연산을 반복적으로 실행합니다.
프로그래밍은 복잡한 작업을 이러한 기본 연산을 사용하여 구현할 수 있을 때까지 더 작은 하위 작업으로 나누는 것을 포함합니다.
첫 번째 Java 프로그램 작성
전통적으로 "Hello, World!" 프로그램으로 알려진 첫 번째 Java 프로그램을 만들어 보겠습니다. 이 간단한 프로그램은 화면에 "Hello, World!" 텍스트를 표시합니다.
LabEx 는 Java 프로그램을 작성하고 실행하기 위해 VS Code 와 유사한 온라인 WebIDE 를 사용합니다.

먼저, ~/project 디렉토리에 Hello.java라는 새 파일을 만들어야 합니다. 터미널을 열고 다음 명령을 실행합니다.
cd ~/project
touch Hello.java
이제 텍스트 편집기에서 Hello.java 파일을 열고 다음 코드를 입력합니다.
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
이 프로그램을 분석해 보겠습니다.
public class Hello: 이 줄은Hello라는 클래스를 정의합니다. Java 에서 모든 프로그램은 최소한 하나의 클래스를 가져야 합니다.public static void main(String[] args): 이것은 main 메서드입니다. Java 프로그램의 진입점입니다. Java 프로그램을 실행하면main메서드에서 실행이 시작됩니다.System.out.println("Hello, World!");: 이 줄은 "Hello, World!" 텍스트를 콘솔에 출력합니다.System.out은 표준 출력을 나타내는 객체이고,println은 텍스트 줄을 출력하는 메서드입니다.
Java 프로그램 컴파일 및 실행
이제 Java 프로그램을 작성했으므로, 이를 컴파일하고 실행해 보겠습니다. Java 는 두 단계의 프로세스를 사용합니다.
- 컴파일 (Compilation): 사람이 읽을 수 있는 Java 코드를 바이트코드로 변환합니다.
- 실행 (Execution): Java Virtual Machine (JVM) 을 사용하여 바이트코드를 실행합니다.
프로그램을 컴파일하려면 javac 명령 다음에 Java 파일의 이름을 사용합니다.
javac Hello.java
이 명령은 동일한 디렉토리에 Hello.class라는 새 파일을 생성합니다. 이 파일에는 프로그램의 바이트코드 버전이 포함되어 있습니다.

프로그램을 실행하려면 java 명령 다음에 클래스 이름 (.class 확장자 제외) 을 사용합니다.
java Hello
다음 출력을 볼 수 있습니다.
Hello, World!

오류가 발생하면 코드의 오타를 다시 확인하고, 올바른 디렉토리 (~/project) 에 있는지 확인하십시오.
Java 프로그램 구조 이해
Java 프로그램의 구조를 자세히 살펴보겠습니다.
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
public class Hello: 이 줄은Hello라는 public 클래스를 선언합니다. Java 에서 클래스 이름은 파일 이름과 일치해야 합니다 (.java확장자 제외).public static void main(String[] args): 이것은 main 메서드 선언입니다. Java 프로그램의 진입점입니다.public: 이 키워드는 메서드를 클래스 외부에서 접근 가능하게 만듭니다.static: 이 키워드는 메서드가 클래스 자체에 속하며, 클래스의 특정 인스턴스에 속하지 않음을 의미합니다.void: 이 키워드는 메서드가 값을 반환하지 않음을 나타냅니다.main: 이것은 메서드의 이름입니다. Java 런타임은 프로그램을 실행하기 위해 이 메서드를 찾습니다.String[] args: 이 매개변수는 명령줄 인수를 받을 수 있도록 선언합니다.
System.out.println("Hello, World!");: 이 줄은 텍스트를 콘솔에 출력합니다.System은 시스템 리소스에 접근할 수 있는 클래스입니다.out은 System 클래스의 정적 멤버로, 표준 출력 스트림을 나타냅니다.println은 PrintStream 클래스 (out의 인스턴스) 의 메서드로, 텍스트 줄을 출력합니다.
Java 프로그램 수정
이제 Java 프로그램의 기본 구조를 이해했으므로, "Hello, World!" 프로그램을 수정하여 더 상호 작용적으로 만들어 보겠습니다. 사용자의 이름을 묻고 인사를 하는 프로그램을 만들 것입니다.
먼저, ~/project 디렉토리에 Greeting.java라는 새 파일을 생성해 보겠습니다.
cd ~/project
touch Greeting.java
이제 텍스트 편집기에서 Greeting.java를 열고 다음 코드를 입력합니다.
import java.util.Scanner;
public class Greeting {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Please enter your name: ");
String name = scanner.nextLine();
System.out.println("Hello, " + name + "! Welcome to Java programming.");
scanner.close();
}
}
이 프로그램의 새로운 요소를 자세히 살펴보겠습니다.
import java.util.Scanner;: 이 줄은 사용자 입력을 읽는 데 사용하는 Scanner 클래스를 가져옵니다.Scanner scanner = new Scanner(System.in);: 이것은 표준 입력 (키보드) 에서 읽는 새로운 Scanner 객체를 생성합니다.System.out.print("Please enter your name: ");: 이 줄은 새 줄로 이동하지 않고 사용자에게 프롬프트를 출력합니다.String name = scanner.nextLine();: 이것은 사용자가 입력한 텍스트 줄을 읽어name변수에 저장합니다.System.out.println("Hello, " + name + "! Welcome to Java programming.");: 이것은 사용자의 이름을 포함하는 인사를 출력합니다.scanner.close();: 이것은 리소스를 해제하기 위해 Scanner 객체를 닫습니다.
이제 새 프로그램을 컴파일하고 실행합니다.
javac Greeting.java
java Greeting

프롬프트가 표시되면 이름을 입력하면 개인화된 인사를 볼 수 있습니다.
요약
이 랩에서는 Java 프로그래밍 세계에 첫 발을 내디뎠습니다. 고급 프로그래밍 언어와 그 장점에 대해 배웠고, Java 가 효율적인 실행을 위해 컴파일과 인터프리테이션을 어떻게 결합하는지 배웠습니다. 첫 번째 Java 프로그램인 전통적인 "Hello, World!" 애플리케이션을 작성, 컴파일 및 실행했습니다. 또한 사용자 입력을 받아 개인화된 인사를 제공하는 더 상호 작용적인 프로그램을 만들었습니다.
이러한 기본적인 개념과 기술은 Java 프로그래밍의 기초를 형성합니다. 여정을 계속하면서 이러한 기본 사항을 기반으로 더 복잡하고 강력한 애플리케이션을 만들 것입니다. 프로그래밍은 연습을 통해 향상되는 기술이므로, 주저하지 말고 코드를 실험하고 새로운 것을 시도하십시오.
LabEx 에 대해 더 자세히 알아보고 사용 방법을 알고 싶다면 지원 센터를 방문하십시오. 또는 비디오를 시청하여 LabEx 에 대해 자세히 알아볼 수 있습니다.
Java 프로그래밍 여정이 이제 막 시작되었습니다. 계속 연습하고, 계속 배우고, 능숙한 Java 프로그래머가 되는 과정을 즐기십시오!



