JAVA | [기본] IntelliJ 프로젝트 구조 & 패키지 이해하기
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
Java 초보 개발자, IntelliJ 사용자
핵심 요약
- 패키지(package)는 src/ 디렉토리 내 폴더 구조와 1:1 매핑되어 네임스페이스를 구성
- public 클래스는 파일명과 동일해야 하며,
package
키워드로 패키지 선언 (예:package com.example.utils;
) - 접근 제어자(public, default, protected, private)는 클래스/메서드/필드의 접근 범위를 결정
섹션별 세부 요약
1. 패키지의 개념
src/
폴더 내 폴더는 패키지로 간주되며, 물리적 폴더와 논리적 네임스페이스가 동일- 중첩된 폴더(
com/example/utils
)는 하위 패키지(com.example.utils)로 정의 가능 - 클래스는 패키지 단위로 그룹화되어 관리
2. 패키지 선언 규칙
.java
파일 최상단에package
키워드로 패키지 명시 (예:package com.example.utils;
)- 파일 경로와 패키지 명은 일치해야 함 (예:
src/com/example/utils/Helper.java
) - 한 파일에 public 클래스는 하나만 허용 (파일명 = 클래스명.java)
3. 클래스 구조 예시
- 기본 구조:
```java
package com.example; // 패키지 선언
import java.util.List; // 외부 클래스 임포트
public class MyClass { // public 클래스는 파일명과 동일해야 함
private int value;
public MyClass(int value) { ... } // 생성자
public void doSomething() { ... } // 메서드
public static void main(String[] args) { ... } // 실행 진입점
}
```
4. 접근 제어자 설명
- public : 모든 클래스 접근 가능
- default (기본값) : 동일 패키지 내부만 접근 가능
- protected : 동일 패키지 + 자식 클래스 접근 가능
- private : 동일 클래스 내부만 접근 가능
5. import 문 사용 예시
- 동일 패키지 외부 클래스 사용 시 반드시 import
```java
import com.example.model.User; // com.example.model 패키지의 User 클래스
import util.StringUtils; // util 패키지의 StringUtils 클래스
```
결론
- 패키지 구조는
src/
폴더 내 폴더와 1:1 매핑하여 정의하고,package
키워드로 명시 - public 클래스는 파일명과 동일하게 작성하며, 접근 제어자로 코드의 접근 범위를 엄격히 제어
- 다른 패키지의 클래스를 사용할 경우 import 문 필수 (예:
import com.example.model.User;
)