파이썬 개발자로 일하다가 자바를 새로 공부하기 시작했다. 첫 강의에서는 IntelliJ 설치와 프로젝트 기본 구조를 다뤘는데, 파이썬과는 꽤 다른 부분들이 있어서 정리해 두려고 한다.
1. IntelliJ가 만들어주는 프로젝트 구조
프로젝트를 생성하면 IntelliJ가 자동으로 아래 세 폴더를 만들어준다.
- src (Source) — 앞으로 작성할 .java 파일들이 모두 여기에 들어간다. 실제 비즈니스 로직이 위치하는 핵심 폴더다.
- out — .java 파일을 컴파일한 결과물인 .class 파일이 저장되는 곳이다. 빌드할 때마다 자동으로 다시 생성되므로, 실수로 지워도 전혀 문제없다.
- .idea — IntelliJ가 이 프로젝트를 관리하기 위한 설정 파일들이 담긴 폴더다. 직접 건드릴 필요 없고, 보통 Git에도 포함시키지 않는다 (.gitignore에 추가하는 게 일반적이다).
2. Main.java와 main 메서드 해부하기
프로젝트를 만들면 샘플 코드로 아래가 생성된다.
public class Main {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
자바 프로그램이 실행되면 JVM(자바 가상 머신)은 가장 먼저 public static void main(String[] args) 시그니처를 찾는다. 이게 없으면 프로그램 자체가 실행되지 않는다.
각 키워드가 무엇을 의미하는지 하나씩 살펴보면 다음과 같다.
키워드 지금 단계에서의 의미 나중에 깊게 배울 개념
| public | 어디서든 이 메서드에 접근할 수 있다 | 접근 제어자 |
| static | 객체를 생성하지 않아도 바로 실행할 수 있다 | 정적 멤버, 메모리 영역 |
| void | 실행 후 반환할 값이 없다 | 리턴 타입 |
| main | 프로그램의 시작 지점이다 (메서드 이름) | 메서드 정의 |
| String[] args | 프로그램 실행 시 외부에서 넘겨줄 수 있는 데이터 묶음 | 배열, 파라미터 |
지금 단계에서는 각 키워드의 역할 정도만 이해하고 넘어가도 충분하다. static이나 접근 제어자 같은 개념은 이후 강의에서 훨씬 자세히 다루게 된다.
3. 왜 모든 코드는 class 안에 있어야 할까?
파이썬은 .py 파일을 열고 바로 코드를 작성해도 실행된다. 하지만 자바는 "모든 코드는 반드시 클래스 안에 있어야 한다" 는 규칙이 언어 차원에서 강제된다.
파이썬 개발자 입장에서는 처음엔 다소 번거롭게 느껴질 수 있지만, 이 구조 덕분에 대규모 프로젝트에서 코드를 체계적으로 관리하기 쉬워진다고 한다.
한 가지 주의할 점은, 파일명과 클래스 이름이 반드시 일치해야 한다는 것이다.
Main.java → public class Main ✅
Main.java → public class App ❌ (컴파일 에러 발생)
첫 강의라 내용 자체는 가볍지만, 파이썬과의 차이를 의식하면서 보니 생각보다 흥미로웠다. 다음 강의부터는 본격적으로 자바의 자료형과 연산자를 다룰 예정이다.
'Java' 카테고리의 다른 글
| Java 입문 2강 — Java란 무엇인가, 그리고 실행까지의 여정 (0) | 2026.05.12 |
|---|