패키지(package)
자바는 클래스의 구분을 위해 패키지를 사용합니다.
패키지는 클래스들을 논리적으로 그룹화하여 충돌을 방지하고, 클래스의 이름을 명확하게 지정하는 데 도움을 줍니다.
FQCN (Fully Qualified Class Name)
클래스의 정규화된 이름은 패키지를 포함하여 클래스를 명시적으로 지정하는 방법입니다. 이를 사용하면 라이브러리명이 겹칠 때 충돌을 피하고 원하는 클래스를 명확히 지정할 수 있습니다.
만약 같은 이름의 클래스가 다른 패키지에 있을 때, import 문을 사용하여 해당 클래스를 구분하면 됩니다. 자바에서 import 문은 다음과 같이 사용됩니다:
// 패키지가 com.example.package1인 MyClass 클래스를 import
import com.example.package1.MyClass;
// 패키지가 com.example.package2인 MyClass 클래스를 import
import com.example.package2.MyClass;
public class Main {
public static void main(String[] args) {
// 각각 다른 패키지에 있는 MyClass를 사용
com.example.package1.MyClass obj1 = new com.example.package1.MyClass();
com.example.package2.MyClass obj2 = new com.example.package2.MyClass();
// import 문을 사용하여 MyClass를 구분하여 사용
MyClass obj3 = new MyClass(); // com.example.package1.MyClass
MyClass obj4 = new MyClass(); // com.example.package2.MyClass
}
}
왜 클래스의 정규화된 이름(FQCN)을 사용해야 하는가?
충돌을 피하기 위해: 서로 다른 라이브러리들이 동일한 클래스 이름을 사용하는 경우가 있습니다. 이때 클래스의 정규화된 이름을 사용하면 충돌을 피할 수 있습니다.
코드 가독성: 패키지 이름을 포함한 정규화된 이름은 코드의 가독성을 향상시킵니다. 클래스가 속한 패키지를 알 수 있기 때문에 코드를 더 명확하게 이해할 수 있습니다.
유지보수: 코드가 복잡해지고 프로젝트가 커질수록 클래스의 충돌 가능성이 높아집니다. 정규화된 이름을 사용하면 유지보수에 도움이 됩니다.
'Backend > JAVA' 카테고리의 다른 글
[Java] java.lang 패키지의 System (0) | 2023.10.12 |
---|---|
JAVA에서 html 다루기 (Jsoup) (0) | 2023.08.16 |
JAVA 문자열 비교 (== 연산자와 equals 메서드의 차이) (0) | 2023.07.25 |
자바 메모리 구조(with Constant Pool) (0) | 2023.07.25 |
Java 객체 형변환 (mapper.convertValue) (0) | 2023.06.14 |