본문 바로가기
추가 공부/Java

[Java] Main 클래스와 main 메서드

by shyun00 2023. 3. 2.

코드를 작성하고 코드를 실행할때 Main 클래스와 main 메서드를 보게된다.

 

public class Main {  // 메인 클래스
    public static void main (String[] args) { // 메인 메서드
    // 프로그램 실행 코드
    }
}

Main 클래스와 main 메서드는 프로그램 시작과 관련되어있다.

 

JVM 동작과 관련이 있는데, JVM은 메인 메서드를 가지고 있는 클래스를 메인 클래스로 인식한다.

프로그램을 실행하면 메인 클래스의  메인 메서드가 호출되면서 프로그램이 시작된다.

 

따라서 메인 메서드는 프로그램의 진입점(entry point)가 되며, 메인 메서드가 없으면 프로그램이 실행되지 않는다.

(JUnit 같은 테스트 프레임워크 처럼 일부 특수한 경우는 main 메서드 없이도 동작이 가능하다.)

 

따라서 여러개의 클래스를 생성하여 코드를 작성한 경우, 일반적으로 메인 클래스에서 동작을 수행한다.

프로젝트 전체 동작은 여러 클래스가 함께 수행하지만, 실질적으로는 메인 클래스에서 다른 클래스를 조합하여 프로그램 동작을 결정하게 된다.

 

이 때 중요한 개념중 하나가 캡슐화인데 메인 클래스에서 다른 클래스의 내부 구현에 대한 세부사항을 알 필요는 없다. 

만약 다른 클래스의 세부사항을 메인클래스에서 직접 관여할 경우 (인스턴스를 직접 생성하고 작동을 직접 결정하거나, 다른 클래스의 private 필드에 접근하거나) 객체간 결합도가 높아져 코드의 유지보수가 어려워진다.

 

따라서, 프로그램이 변경되어야할 경우라도 메인 클래스는 수정하지 않을 수 있도록 기능과 관련된 부분은 캡슐화를 통해 별도로 구현하는것이 좋다. (프로그램 변경되어도 메인 클래스는 수정하지 않고 해당 기능을 가진 클래스만 수정하도록 설정)

'추가 공부 > Java' 카테고리의 다른 글

예외 처리, 예외 전가 (Exception)  (0) 2023.03.07