항상 JAVA 프로그램을 보면서, 또 실행하면서 짜증난 것이 바로 이 Package가 아닐까 싶다. 학부 시절, Web Service Application을 분석하는데 계속 class 파일을 못 찾는다면서 에러가 나는 게 아닌가. 폴더 뒤져보면 분명히 파일이 있는데, 실행하면 없단다. 아 놔 이런 조카 크레파스 십팔색 같으니!!!! 라고 머리를 쥐어뜯었지만 결국 탈모만 가속화 ㅋㅋㅋㅋ 지금 생각하면 정말 어처구니 없는 짓이기도 하고, 역시나 기초라는 것의 중요성을 다시금 깨닫게 한달까? 우선 Namespace는 의미적으로 관련이 있는 클래스를 모아서 그룹화 한 것이다. '.' 로 구별해서 구조적, 단계적으로 기술하게 되며, Namespace를 사용하기 위해서는 import 라는 예약어가 필요!! 무슨말인고 하니, 다음 그림을 보자. 이 그림을 보면 자바에서 많이 쓰이는 String과 Graphics Class, Bean이라고 해야할까?? 여튼 이 녀석이, Java라는 namespace 안에 lang과 awt라는 namesapce가 있고, 그 안에 존재를 하는거다. 그래서 오른쪽과 같이 java.lang.*; 라고 적어주면, java 안의 lang 에 있는 모든 Beans 를 쓰겠습니다!! 라고 선언해주는 것이다. 이 경우, java.lang.String 에 있는 객체를 사용할 수 있게 되었으므로, 새로운 String 객체 s를 만들 수 있다. 또한, awt 의 Graphics 를 사용할 수 있게 되어서, Graphics g 라는 파라메터도 받을 수 있는 것이라는!! 지금까지 습관적으로, 그리고 아무런 생각 없이 import java.util.*; 라던가 적었는데, 반성하자. (퍼벅) 자, 이 namespace를 실제적으로 실현하기 위한 개념이 바로 package 개념이다. 관계된 여러 class와 파일들을 정해진 위치에 지정해서 찾기도 쉽고 참조...