언어(Language)/Java

[Java] 패키지

송기동 2025. 5. 9. 15:06
728x90

패키지란?

- 자바 클래스 파일들을 폴더처럼 묶어서 관리할 수 있게 해주는 기능

📦 쉽게 말하면: 클래스 파일들을 정리정돈하는 폴더 개념이라고 보면 된다.

 

# 패키지를 사용하는 이유

- 클래스 관리 : 비슷한 기능의 클래스를 하나의 폴더로 정리 가능

- 클래스 이름 충돌 방지 : 같은 이름의 클래스라도 패키지가 다르면 사용 가능

- 접근 제한 설정 가능 : public, default 등 접근 제어자를 통해 외부 공개 여부 설정 가능


# 패키지 선언 방법

// 클래스 파일 상단에 package <패키지이름>을 선언
package com.myapp.util;

public class MyUtils {
    public static void sayHi() {
        System.out.println("Hi!");
    }
}

// com.myapp.util은 폴더 구조를 의미 /com/myapp/util/MyUtils.java

 

# 패키지 사용 (import)

// 다른 패키지에 있는 클래스를 사용하려면 import 문을 사용
import com.myapp.util.MyUtils;

public class Main {
    public static void main(String[] args) {
        MyUtils.sayHi();  // 다른 패키지 클래스 사용
    }
}

 

# 디렉토리 구조 예시

src/
├── com/
│   └── myapp/
│       ├── util/
│       │   └── MyUtils.java  (package com.myapp.util)
│       └── Main.java         (package com.myapp)

# 자바 표준 패키지 예시

- 자바에서는 미리 만들어진 유용한 패키지들이 많이 있음

패키지 이름 설명
java.lang 기본 클래스들 (String, System, Math 등) → 자동 import
java.util 유틸리티 클래스 (List, Map, Scanner 등)
java.io 입출력 처리 클래스 (File, InputStream 등)
java.net 네트워크 통신 관련 클래스
java.time 날짜와 시간 처리 클래스

# 패키지와 라이브러리 차이가 뭘까?

- 패키지는 자바 클래스들을 정리하기 위한 폴더 구조

- 라이브러리는 그 패키지들을 묶어 기능을 제공하는 재사용 가능한 모음이다.

728x90