Java™ Platform, Standard Edition 8 API Specification
해당 링크를 타고 들어오면 왼쪽에 packages와 classes 정보가 나온다. packages의 것 중 하나를 누르면 아래에 그 패키지에 속한 class의 정보가 주룩 펼쳐진다. 익숙한 Math class를 왼쪽 아래 섹션에서 찾아본다.
Math class는 위와 같은 형식으로 구성되어 있는데 java.lang 패키지(package)에 속해 있다는 것을 알 수 있다.
조금 더 스크롤해서 보면 PI와 같은 변수(Variable/Field)들에 대해서도 나와있고 이전에 사용했던 floor, ceil등 메소드(method)들의 정보도 나와 있다.
'하나의 프로그램이다 혹은 디렉토리다'라고 간단히 생각한다. Math 클래스처럼 클래스 안에는 PI와 같은 변수, floor, ceil과 같은 메소드들이 포함되어 있다. 서로 연관된 변수와 메소드를 묶어서(Grouping) 이름을 붙인 것이라고 생각하면 간단하다.
클래스가 엄청나게 많은데 정리정돈되지 않고 흩어져 있으면 필요한 것을 찾아 사용하는게 매우 어렵다. 또 이미 Math라는 클래스가 있는데 우리가 Math라는 이름의 새로운 클래스를 또 만들고 싶을 때, 같은 공간에 Math가 있으면 충돌할 수도 있다. 이처럼 연관되어 있고 비슷한 속성을 가진 클래스끼리 하나의 묶음으로 정리한 것이 패키지(Package)이다.