자바 패키지
자바 패키지는 서로 관련 있는 클래스, 인터페이스, 열거형, 어노테이션 등을 묶어 놓은 컨테이너이다. 이는 파일 시스템에서의 디렉터리와 유사한 구조를 가지며, 코드의 모듈화 및 관리 용이성을 높이는 데 중요한 역할을 한다. 패키지는 다음과 같은 주요 목적을 가진다.
- 이름 충돌 방지: 동일한 이름을 가진 클래스가 여러 패키지에 존재할 수 있도록 하여, 클래스 이름 충돌 문제를 해결한다. 패키지 이름을 통해 클래스를 고유하게 식별할 수 있다.
- 코드 구성 및 관리: 관련된 클래스들을 하나의 패키지로 묶어 관리함으로써, 코드의 가독성과 유지보수성을 향상시킨다.
- 접근 제어: 패키지 단위로 클래스 멤버에 대한 접근 권한을 설정하여, 정보 은닉 및 캡슐화를 강화한다.
public
,protected
,private
,default
(package-private) 접근 제어자를 통해 패키지 외부에서의 접근을 제한할 수 있다. - 재사용성 향상: 잘 설계된 패키지는 다른 프로젝트에서 재사용이 용이하도록 만들어, 개발 효율성을 높인다.
자바 패키지는 계층적인 구조를 가질 수 있다. 예를 들어, java.util
패키지는 java
패키지 안에 있는 util
패키지를 의미한다. 점(.)을 사용하여 패키지 계층 구조를 표현하며, 최상위 패키지 이름은 일반적으로 인터넷 도메인 이름을 역순으로 사용하는 것이 권장된다 (예: com.example.mypackage
).
특정 패키지에 속한 클래스를 사용하기 위해서는 import
문을 사용하여 해당 패키지를 명시적으로 가져오거나, 클래스 이름을 패키지 이름과 함께 완전히 명시해야 한다. 예를 들어, java.util.ArrayList
클래스를 사용하려면 import java.util.ArrayList;
를 사용하거나, 코드 내에서 java.util.ArrayList
로 직접 참조할 수 있다.
자바 표준 라이브러리 (Java Standard Library)는 수많은 패키지로 구성되어 있으며, 다양한 기능을 제공한다. 대표적인 패키지로는 java.lang
, java.util
, java.io
, java.net
등이 있다.
사용자 정의 패키지를 생성하여 프로젝트 구조를 체계화하고 코드의 재사용성을 높일 수 있다.