Package를 나누어 주는 이유

1755 단어 자바자바

패키지(pakage)

  • 관련된 클래스들을 모아서 관리할 수 있도록 한다.
  • 한 곳에서 수백, 수천 개의 클래스를 찾는 수고를 덜어준다.
  • 배포할 때 관련된 소스 코드들을 묶어서 배포하고 재사용할 수 있도록 한다.
  • 각 프로젝트나 소프트웨어 간의 소스 코드 충돌을 방지한다.

패키지 구현

  • 프로그램 구현 디렉토리(src/main/java, src/test/java) 아래에 패키지 이름을 추가한다.

  • 패키지에 클래스를 추가하는 경우 package 키워드를 활용해 클래스가 어느 패키지에 위치하는지 명시해야 한다

    package cars.car;
    
     public class carName {
     }

왜 패키지(package)로 클래스들을 나누어 관리할까❓❓

패키지(package)로 클래스를 나누어 관리하는 가장 큰 이유는 클래스명의 고유성을 보장하기 위해서 이다.
예를 들어 패키지(package) 구분 없이 자동차 경주를 하는 프로그램을 만들고 있다고 가정하자. 개발자는 자동차의 이름을 저장하는 객체를 따로 생성해 관리하고 싶어 아래 사진처럼 Name클래스를 따로 분리 해주었다.

그런데 제 3자의 입장에서 위 사진을 보면 Name클래스가 Car클래스의 자동차 이름을 위한 것인지, 아니면 Player클래스의 플레이어 이름을 위한 것인지 모호하다. 또한, Player클래스를 위한 Name클래스를 추가로 생성하면 기존의 Car클래스를 위한 Name클래스의 고유성을 침범하여 충돌이 발생한다.
이러한 문제를 해결하기 위해 패키지(package)로 연관된 클래스들을 나누어 관리하는 것이다.

위 사진을 보면 car패키지와 player패키지로 연관된 클래스를 나누어준 것을 볼수 있다.
위와 같이 패키지(package)를 나누어 줌으로써 같은 이름을 가진 Name클래스 두개가 Car, Player를 위한 클래스로써 각각의 고유성을 가지고 충돌을 피하는것을 볼 수 있다.


이외에도, 패키지(package)를 통해 관련된 기능끼리 클래스를 나눔으로써 코드의 재사용성을 높히고 유지보수를 용이하게 한다는 장점이 있다.

좋은 웹페이지 즐겨찾기