2 분 소요

개발 시작

개발 환경 구축(Windows)

  1. JDK Download

    저의 실행 파일 폴더 경로는 C:\Program Files\Java\jdk-11\bin 입니다.

    🔗실행 파일은 JDK의 bin 디렉토리에 존재합니다.
    터미널이나 커맨드 라인에서 java, javac를 어느 위치에서나 직접 호출할 수 있도록 “환경 변수”를 설정해야 합니다.


  2. 환경 변수 설정

    고급 시스템 설정환경 변수
      저는 하단의 시스템 변수를 건들겠습니다.

    •     상단: 현재 사용자 계정에만 적용
    • ✔ 하단: 모든 사용자 게정과 시스템 전체에 적용

      [PATH에 경로 추가]
      Path 변수 더블클릭 → 새로 만들기 → 실행 파일 경로 추가(ex.C:\Program Files\JetBrains\jdk-11\bin)

    [JAVA_HOME] 환경 변수 추가
    새로 만들기 → 이름: JAVA_HOME, 값: JDK 경로(ex.C:\Program Files\JetBrains\jdk-11)


      환경 변수란 OS에서 시스템이나 프로그램의 작동 방식을 설정하는 데 사용하는 변수입니다. 값은 키-값 쌍인 문자열 형태로 저장됩니다. 하나의 환경 변수에 여러 값이 있는 경우 Windows는 ;으로 구분합니다.

      PATH 환경변수는 OS가 프로그램이나 실행 파일을 찾을 때, 파일의 위치(directory)를 파악하는 데 사용합니다. 파일의 경로(directory)를 PATH 환경 변수에 추가하면 해당 파일은 어떤 경로에서든 이름만으로 실행할 수 있습니다.

      JAVA_HOME 환경변수 빌드 도구(gradle, maven), IDE(intelliJ), Java 기반 응용 프로그램 등(Tomcat)에서 JDK의 위치를 찾기 위해 사용하는 환경 변수입니다. JDK 폴더까지의 경로로 설정하면 됩니다.


  3. 설정 확인

    명령 프롬프트에서 java, javac 명령어를 실행해도 되지만 귀찮으니 java -version으로 합니다.


Java 소스 코드 작성

  실행을 위한 Java 소스코드는 반드시 클래스 형태로 작성해야 하며 최소 하나의 entry point가 있어야 합니다.


클래스 형태

  먼저 Java에서 모든 코드는 Class 안에 존재해야 합니다.

package com.ljh;

import com.ljh.OtherClass;

public class ClassName {

    public ClassName(){ // 기본 생성자
    /* 참고로 요렇게 파라미터도 블록 내 구현도 없는 녀석을 기본 생성자라고 합니다.
       생성자를 명시적으로 선언하지 않으면 Java 컴파일러가 자동으로 기본 생성자를 생성해줘요.
       자동으로 생성해준다는 걸 꼭 기억해야 합니다!
    */
    }

    public void methodName() { //메서드
        OtherClass otherClass = new OtherClass();
    }
}

package

  • 해당 소스 파일의 패키지를 선언합니다.
    • Class 명을 이름(first name), 패키지를 성(family name)으로 비유해서 이해했습니다.
  • 반드시 소스 파일의 최상단에 위치하며, 소스 파일이 위치한 디렉터리와 일치해야 합니다.
  • 명시하지 않을 시, default package에 포함됩니다. (eclipse)

import

  • 소스 파일에 사용된 클래스의 패키지 정보를 컴파일러에게 제공합니다.
    • 컴파일된 byte 코드에는 import 문에 해당하는 부분이 없습니다. 따라서 runtime에 참조나 로드에 사용하지 않습니다.
    • 다른 패키지의 class를 사용 시, 성(패키지)과 이름(Class 명)을 명시해야 하지만, import를 하면 이름만으로 사용할 수 있는 거죠.

public class

  • 하나의 소스 파일에 public class는 단 한개만 존재할 수 있습니다.

소스 파일 이름

  • public class가 있는 경우, public class와 대소문자까지 동일해야 합니다.
  • public class가 없는 경우, 포함된 class 중 하나를 선택합니다.
    • 하나의 소스 파일에 여러 개의 class가 있으면 컴파일 시, 클래스마다 class 파일이 생성됩니다.

Entry Point(main method)

  Java 프로그램을 실행하기 위해서는 반드시 하나의 main method를 포함해야 합니다.
main method의 형식은 다음과 같습니다.

public class MainClass {
    public static void main(String[] args) {

    }
}

  main method는 java.exe에 의해 호출되도록 미리 약속한 부분으로 프로그램의 시작점(Entry Point)입니다. main method를 포함한 class를 java.exe로 실행하면, JVM이 main method를 호출하는 거죠.

따라서 반드시 main method의 선언은 형식과 일치해야 합니다.

실행 과정

1. Compile

  작성한 소스 파일을 JVM에서 실행할 수 있는 코드로 컴파일합니다.

2. Load

  JVM이 프로그램 실행에 필요한 클래스(.class 파일)를 메모리에 로드합니다. 이때, 클래스 로더를 사용하며 main method가 포함된 클래스가 첫 번째 대상이 됩니다.

  JVM이 실행할 수 있는 형태로 준비합니다.

4. 초기화

  클래스가 사용되기 직전 static 키워드에 해당하는 녀석들을 초기화합니다.

5. 실행

  프로그램의 시작점인 main method가 실행됩니다.

  마무으리

  실행 과정은 JVM 공부 하고, 보충하도록 하겠습니다!@! 개인적으로 글씨가 작아야 예쁘다고 생각하지만, 가독성을 생각하면 크기를 키워야하나 싶어요,, 호호호


👀 참고: 남궁성, 'Java의 정석'

📑 목차: Java 목차