Java 프로그래밍 입문

JavaJavaAdvanced
지금 연습하기

💡 이 튜토리얼은 영어로 번역되었습니다. 원본을 보려면 영어로 전환

소개

이 랩에서는 고급 프로그래밍 언어의 개념, 장점, 그리고 Java 의 작동 방식에 대해 알아보겠습니다. 여러분은 첫 번째 Java 프로그램을 작성하고 실행하는 방법을 배우면서 Java 프로그래밍의 기본 사항에 대한 실질적인 경험을 쌓게 될 것입니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 고급 레벨의 실험이며 완료율은 38.42%입니다.학습자들로부터 97.94%의 긍정적인 리뷰율을 받았습니다.

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/SystemandDataProcessingGroup(["System and Data Processing"]) java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/StringManipulationGroup(["String Manipulation"]) java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java/BasicSyntaxGroup -.-> java/comments("Comments") java/BasicSyntaxGroup -.-> java/output("Output") java/StringManipulationGroup -.-> java/strings("Strings") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/classes_objects("Classes/Objects") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/class_methods("Class Methods") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/modifiers("Modifiers") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/oop("OOP") java/SystemandDataProcessingGroup -.-> java/system_methods("System Methods") subgraph Lab Skills java/comments -.-> lab-178546{{"Java 프로그래밍 입문"}} java/output -.-> lab-178546{{"Java 프로그래밍 입문"}} java/strings -.-> lab-178546{{"Java 프로그래밍 입문"}} java/classes_objects -.-> lab-178546{{"Java 프로그래밍 입문"}} java/class_methods -.-> lab-178546{{"Java 프로그래밍 입문"}} java/modifiers -.-> lab-178546{{"Java 프로그래밍 입문"}} java/oop -.-> lab-178546{{"Java 프로그래밍 입문"}} java/system_methods -.-> lab-178546{{"Java 프로그래밍 입문"}} end

프로그래밍 언어 이해

프로그래밍 언어는 고급 언어와 저급 언어로 분류됩니다. 기계어 및 어셈블리어와 같은 저급 언어는 컴퓨터에서 직접 실행할 수 있습니다. 반면에 고급 언어는 실행 전에 저급 언어로 변환되어야 합니다.

고급 언어는 다음과 같은 몇 가지 장점을 제공합니다.

  1. 더 쉬운 프로그래밍: 코드가 더 짧고, 읽기 쉬우며, 오류가 발생할 가능성이 적습니다.
  2. 이식성: 최소한의 수정으로 동일한 프로그램을 다른 머신에서 실행할 수 있습니다.

이러한 이점 때문에 대부분의 프로그램은 고급 언어로 작성되며, 저급 언어는 특정 응용 프로그램에 사용됩니다.

고급 언어를 저급 언어로 변환하는 두 가지 방법이 있습니다.

  1. 인터프리테이션 (Interpretation): 인터프리터는 고급 언어 코드를 한 줄씩 읽고 실행합니다.
  2. 컴파일 (Compilation): 컴파일러는 전체 고급 프로그램을 한 번에 실행 가능한 코드로 변환합니다.

Java 는 컴파일과 인터프리테이션을 모두 사용하는 하이브리드 방식을 사용합니다.

  1. Java 소스 코드는 먼저 바이트코드로 컴파일됩니다.
  2. 그런 다음 바이트코드는 Java Virtual Machine (JVM) 에 의해 해석되고 실행됩니다.

이 방식은 인터프리터 언어의 이식성과 컴파일 언어의 성능 이점을 결합합니다.

Java compilation interpretation process

프로그램이란 무엇인가?

프로그램은 계산을 수행하는 방법을 지정하는 일련의 명령어입니다. 수학적이든 기호적이든, 모든 프로그램은 다음과 같은 기본 연산을 수행하는 문장으로 구성됩니다.

  1. 입력: 다양한 소스 (키보드, 파일 등) 에서 데이터를 받습니다.
  2. 출력: 다양한 대상 (화면, 파일 등) 에 데이터를 표시하거나 보냅니다.
  3. 수학: 산술 연산을 수행합니다.
  4. 테스팅: 조건을 확인하고 적절한 문장을 실행합니다.
  5. 반복: 종종 변형을 통해 연산을 반복적으로 실행합니다.

프로그래밍은 복잡한 작업을 이러한 기본 연산을 사용하여 구현할 수 있을 때까지 더 작은 하위 작업으로 나누는 것을 포함합니다.

첫 번째 Java 프로그램 작성

전통적으로 "Hello, World!" 프로그램으로 알려진 첫 번째 Java 프로그램을 만들어 보겠습니다. 이 간단한 프로그램은 화면에 "Hello, World!" 텍스트를 표시합니다.

LabEx 는 Java 프로그램을 작성하고 실행하기 위해 VS Code 와 유사한 온라인 WebIDE 를 사용합니다.

WebIDE Java programming interface

먼저, ~/project 디렉토리에 Hello.java라는 새 파일을 만들어야 합니다. 터미널을 열고 다음 명령을 실행합니다.

cd ~/project
touch Hello.java

이제 텍스트 편집기에서 Hello.java 파일을 열고 다음 코드를 입력합니다.

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

이 프로그램을 분석해 보겠습니다.

  1. public class Hello: 이 줄은 Hello라는 클래스를 정의합니다. Java 에서 모든 프로그램은 최소한 하나의 클래스를 가져야 합니다.
  2. public static void main(String[] args): 이것은 main 메서드입니다. Java 프로그램의 진입점입니다. Java 프로그램을 실행하면 main 메서드에서 실행이 시작됩니다.
  3. System.out.println("Hello, World!");: 이 줄은 "Hello, World!" 텍스트를 콘솔에 출력합니다. System.out은 표준 출력을 나타내는 객체이고, println은 텍스트 줄을 출력하는 메서드입니다.

Java 프로그램 컴파일 및 실행

이제 Java 프로그램을 작성했으므로, 이를 컴파일하고 실행해 보겠습니다. Java 는 두 단계의 프로세스를 사용합니다.

  1. 컴파일 (Compilation): 사람이 읽을 수 있는 Java 코드를 바이트코드로 변환합니다.
  2. 실행 (Execution): Java Virtual Machine (JVM) 을 사용하여 바이트코드를 실행합니다.

프로그램을 컴파일하려면 javac 명령 다음에 Java 파일의 이름을 사용합니다.

javac Hello.java

이 명령은 동일한 디렉토리에 Hello.class라는 새 파일을 생성합니다. 이 파일에는 프로그램의 바이트코드 버전이 포함되어 있습니다.

Java compilation command example

프로그램을 실행하려면 java 명령 다음에 클래스 이름 (.class 확장자 제외) 을 사용합니다.

java Hello

다음 출력을 볼 수 있습니다.

Hello, World!
Java program execution output

오류가 발생하면 코드의 오타를 다시 확인하고, 올바른 디렉토리 (~/project) 에 있는지 확인하십시오.

Java 프로그램 구조 이해

Java 프로그램의 구조를 자세히 살펴보겠습니다.

public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}
  1. public class Hello: 이 줄은 Hello라는 public 클래스를 선언합니다. Java 에서 클래스 이름은 파일 이름과 일치해야 합니다 (.java 확장자 제외).

  2. public static void main(String[] args): 이것은 main 메서드 선언입니다. Java 프로그램의 진입점입니다.

    • public: 이 키워드는 메서드를 클래스 외부에서 접근 가능하게 만듭니다.
    • static: 이 키워드는 메서드가 클래스 자체에 속하며, 클래스의 특정 인스턴스에 속하지 않음을 의미합니다.
    • void: 이 키워드는 메서드가 값을 반환하지 않음을 나타냅니다.
    • main: 이것은 메서드의 이름입니다. Java 런타임은 프로그램을 실행하기 위해 이 메서드를 찾습니다.
    • String[] args: 이 매개변수는 명령줄 인수를 받을 수 있도록 선언합니다.
  3. 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();
    }
}

이 프로그램의 새로운 요소를 자세히 살펴보겠습니다.

  1. import java.util.Scanner;: 이 줄은 사용자 입력을 읽는 데 사용하는 Scanner 클래스를 가져옵니다.
  2. Scanner scanner = new Scanner(System.in);: 이것은 표준 입력 (키보드) 에서 읽는 새로운 Scanner 객체를 생성합니다.
  3. System.out.print("Please enter your name: ");: 이 줄은 새 줄로 이동하지 않고 사용자에게 프롬프트를 출력합니다.
  4. String name = scanner.nextLine();: 이것은 사용자가 입력한 텍스트 줄을 읽어 name 변수에 저장합니다.
  5. System.out.println("Hello, " + name + "! Welcome to Java programming.");: 이것은 사용자의 이름을 포함하는 인사를 출력합니다.
  6. scanner.close();: 이것은 리소스를 해제하기 위해 Scanner 객체를 닫습니다.

이제 새 프로그램을 컴파일하고 실행합니다.

javac Greeting.java
java Greeting
Java program greeting output

프롬프트가 표시되면 이름을 입력하면 개인화된 인사를 볼 수 있습니다.

요약

이 랩에서는 Java 프로그래밍 세계에 첫 발을 내디뎠습니다. 고급 프로그래밍 언어와 그 장점에 대해 배웠고, Java 가 효율적인 실행을 위해 컴파일과 인터프리테이션을 어떻게 결합하는지 배웠습니다. 첫 번째 Java 프로그램인 전통적인 "Hello, World!" 애플리케이션을 작성, 컴파일 및 실행했습니다. 또한 사용자 입력을 받아 개인화된 인사를 제공하는 더 상호 작용적인 프로그램을 만들었습니다.

이러한 기본적인 개념과 기술은 Java 프로그래밍의 기초를 형성합니다. 여정을 계속하면서 이러한 기본 사항을 기반으로 더 복잡하고 강력한 애플리케이션을 만들 것입니다. 프로그래밍은 연습을 통해 향상되는 기술이므로, 주저하지 말고 코드를 실험하고 새로운 것을 시도하십시오.

LabEx 에 대해 더 자세히 알아보고 사용 방법을 알고 싶다면 지원 센터를 방문하십시오. 또는 비디오를 시청하여 LabEx 에 대해 자세히 알아볼 수 있습니다.

Java 프로그래밍 여정이 이제 막 시작되었습니다. 계속 연습하고, 계속 배우고, 능숙한 Java 프로그래머가 되는 과정을 즐기십시오!

OSZAR »