웹사이트 검색

Java 작동 방식 및 Java 코드 구조 이해 - 2부


지난 포스팅 'Java란 무엇이며 Java의 역사'에서는 Java란 무엇인지, Java의 세부 기능, 출시 이력 및 명칭, Java가 활용되는 곳에 대해 다루었습니다.

이번 포스팅에서는 Java 프로그래밍 언어의 작업 및 코드 구조를 살펴보겠습니다. 계속 진행하기 전에 "WORA(Write Once Run Anywhere/Anytime)"는 개발된 애플리케이션이 구조적으로 중립적이고 플랫폼 독립적이며 이식 가능해야 한다는 것을 명심하면서 Java가 개발되었음을 상기시켜 드리겠습니다.

자바 작업

이러한 목표를 염두에 두고 Java는 4단계로 분류할 수 있는 아래 작업 모델을 사용하여 개발되었습니다.

스테이지 1

소스 파일을 작성합니다. 이 파일에는 Java 프로그래밍 언어에 대해 확립된 프로토콜 내의 모든 프로시저, 메소드, 클래스 및 객체가 포함되어 있습니다. 소스 파일의 이름은 클래스 이름이어야 하며 그 반대의 경우도 마찬가지입니다. 소스 파일 이름의 확장자는 .java여야 합니다. 또한 파일 이름과 클래스 이름은 대소문자를 구분합니다.

2단계

Java 컴파일러를 통해 Java 소스 코드 파일을 실행합니다. Java 소스 코드 컴파일러는 소스 파일의 오류와 구문을 확인합니다. 모든 오류와 경고를 수정하여 Java 컴파일러를 만족시키지 않고 소스 코드를 컴파일할 수 없습니다.

3단계

컴파일러는 클래스 파일을 생성합니다. 이러한 클래스 파일은 소스 코드 파일 이름과 동일한 이름을 상속하지만 확장자는 다릅니다. 소스 파일 이름의 확장자는 'filename.java'입니다. 여기서 컴파일러에 의해 생성된 클래스 파일의 확장자는 'filename.class'입니다. 이 클래스파일은 바이트코드로 코딩됩니다. 바이트코드는 마술과 같습니다.

4단계

Java 컴파일러로 생성된 이 클래스 파일은 이식 가능하고 구조적으로 중립적입니다. 이 클래스 파일을 이식하여 모든 프로세서 아키텍처 및 플랫폼/장치에서 실행할 수 있습니다. 어디서든 이 코드를 실행하려면 JVM(Java Virtual Machine)만 있으면 됩니다.

이제 예제를 사용하여 위의 4단계를 이해해 보세요. 다음은 작은 샘플 Java 프로그램 코드입니다. 아래 코드를 이해하지 못하더라도 걱정하지 마세요. 지금은 그것이 어떻게 작동하는지 이해합니다.

public class MyFirstProgram
{
    public static void main(String[] args)
    {
        System.out.println("Hello Tecmint, This is my first Java Program");
    }
}

1. 저는 이 프로그램을 작성하고 클래스 이름 MyFirstProgram을 정의했습니다. 이 프로그램은 'MyFirstProgram.java'로 저장되어야 한다는 점에 유의하는 것이 중요합니다.

위의 1단계를 기억하세요. 클래스 이름과 파일 이름은 동일해야 하며 파일 이름 확장자는 .java여야 합니다. 또한 Java는 대소문자를 구분하므로 클래스 이름이 'MyFirstProgram'인 경우 소스 파일 이름은 'MyFirstProgram.java'여야 합니다.

이름을 'Myfirstprogram.java', 'myfirstprogram.java' 또는 다른 이름으로 지정할 수 없습니다. 관례적으로 프로그램이 실제로 수행하는 작업에 따라 클래스 이름을 지정하는 것이 좋습니다.

2. 이 Java 소스 파일을 컴파일하려면 Java 컴파일러를 통해 전달해야 합니다. Java 컴파일러는 기본적으로 소스 코드에서 오류 및 경고를 확인합니다. 모든 문제가 해결될 때까지 소스 코드를 컴파일하지 않습니다. Java 소스 코드를 컴파일하려면 다음을 실행해야 합니다.

javac MyFirstProgram.java

여기서 MyFirstProgram.java는 소스 파일의 이름입니다.

3. 성공적으로 컴파일되면 Java 컴파일러가 동일한 디렉토리에 MyFirstProgram.class라는 이름의 새 파일을 생성한 것을 알 수 있습니다.

이 클래스 파일은 바이트코드로 코딩되어 있으며 모든 플랫폼, 프로세서 아키텍처에서 언제든지 실행할 수 있습니다. Linux 또는 기타 플랫폼의 JVM(Java Virtual Machine) 내에서 다음과 같이 간단하게 클래스 파일을 실행할 수 있습니다.

java MyFirstProgram

위에서 배운 내용은 다음과 같이 요약할 수 있습니다.

Java Source Code >> Compiler >> classfile/bytecode >> Various devices running JVM 

Java의 코드 구조 이해

1. Java 소스 코드 파일에는 클래스 정의가 포함되어 있어야 합니다. 하나의 Java 소스 파일에는 하나의 공용 클래스/최상위 클래스만 포함될 수 있지만 많은 개인 클래스/내부 클래스가 포함될 수 있습니다.

외부 클래스/최상위 클래스/공용 클래스는 모든 전용 클래스/내부 클래스에 접근할 수 있습니다. 클래스는 중괄호 안에 있어야 합니다. Java의 모든 것은 객체이고 클래스는 객체의 청사진입니다.

Java의 공개/비공개 클래스 데모:

public class class0
{
...
	private class1
	{
	…
	}

	private class 2
	{
	…
	}
...
}

2. 클래스에는 하나 이상의 메소드가 포함되어 있습니다. 메소드는 클래스의 중괄호 안에 들어가야 합니다. 더미 예는 다음과 같습니다.

public class class0
{
	public static void main(String[] args)
	{
	…..
	…..
	}
}

3. 메소드에는 하나 이상의 명령문/명령이 포함됩니다. 명령어는 메소드의 중괄호 안에 들어가야 합니다. 더미 예는 다음과 같습니다.

public class class0
{
	public static void main(String[] args)
	{
	System.out.println("Hello Tecmint, This is my first Java Program");
	System.out.println("I am Loving Java");
	…
	...
	}
}

이 시점에서 언급해야 할 또 다른 중요한 점은 모든 명령문은 세미콜론으로 끝나야 한다는 것입니다. 더미 예는 다음과 같습니다.

System.out.println("Hello Tecmint, This is my first Java Program");
...
...
System.out.println("I am Loving Java");

자세한 설명과 함께 첫 번째 Java 프로그램을 작성해 보세요. 이 예에서는 설명이 여기에 주석으로 입력됩니다(//는 주석 처리되었음을 의미). 프로그램 내에서 주석을 작성해야 합니다.

이는 좋은 습관일 뿐만 아니라 나중에 언제든지 본인이나 다른 사람이 코드를 읽을 수 있게 해주기 때문입니다.

// Declare a Public class and name it anything but remember the class name and file name must be same, say class name is MyProg and hence file name must be MyProg.java
public class MyProg

// Remember everything goes into curly braces of class?
{
 

// This is a method which is inside the curly braces of class.
   public static void main(String[] args)

    // Everything inside a method goes into curly braces	
    {
        
    // Statement or Instruction inside method. Note it ends with a semicolon
    System.out.println("I didn't knew JAVA was so much fun filled");
    
    // closing braces of method
    }

// closing braces of class
}

위의 간단한 Java 프로그램에 대한 자세한 기술 설명입니다.

public class MyProg

위의 클래스 이름에는 MyProg가 있고 MyProg는 누구나 액세스할 수 있는 Public 클래스입니다.

public static void main(String[] args)

여기서 메소드 이름은 공개 메소드인 main입니다. 이는 누구나 액세스할 수 있음을 의미합니다. 반환 유형은 반환 값이 없음을 의미하는 void입니다. 'Strings[] args'는 main 메소드의 인수가 args라고 불리는 배열이어야 함을 의미합니다. 지금은 '정적'의 의미에 대해 걱정하지 마세요. 필요한 경우 이에 대해 자세히 설명하도록 하겠습니다.

System.out.println("I didn't knew JAVA was so much fun filled");

System.out.ln JVM에 출력을 표준 출력(우리의 경우 Linux 명령줄)으로 인쇄하도록 요청합니다. println 문의 중괄호 사이에 있는 내용은 변수가 아닌 이상 그대로 인쇄됩니다. 변수에 대한 자세한 내용은 나중에 다루겠습니다. 명령문은 세미콜론으로 끝납니다.

지금은 뭔가 명확하지 않더라도 걱정할 필요가 없습니다. 또한 아무것도 기억할 필요가 없습니다. 그림이 명확하지 않더라도 게시물을 살펴보고 용어를 이해하고 작업하세요.

지금은 여기까지입니다. Tecmint에 계속 연결하세요. 아래 의견에 귀중한 피드백을 제공해주십시오. 우리는 다음 부분인 "Java의 클래스 및 Main 메서드"를 작업 중이며 곧 게시할 예정입니다.