요약
만약 메인 메소드가 스태틱이 아니라면 해당 메소드를 포함하고 있는 클래스를 인스턴스화 해야 하는데 생성자에 인자를 받을 경우에는 JVM이 어떻게 해야 할 지를 모르기 때문에 인스턴스화 필요 없이 자동으로 메모리에 올라가게 되는 스태틱으로 선언해야만 JVM이 시작점을 찾을 수 있다.
p.s. 그런데 왜 public 이지?
비슷한 이유로 퍼블릭 접근 제어자를 붙이지 않으면 메인 메소드가 선언된 클래스 외부에서 메인 메소드를 실행할 수 없기 때문에 public을 붙여 외부에서 메인 메소드를 실행할 수 있도록 해야 한다.
참고문헌