티스토리 뷰
주의 사항!
- 이 글은 제가 직접 공부하는 중에 작성되고 있습니다.
- 따라서 제가 이해하는 그대로의 내용이 포함됩니다.
- 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다.
프로젝트를 개발하다 보면 적게는 수십 개, 많게는 수백 개의 클래스를 작성해야 합니다. 클래스를 체계적으로 관리하지 않으면 클래스 간의 관계가 뒤엉켜서 복잡하고 난해한 프로그램이 되어 결국 유지 보수가 어렵게 됩니다. 자바에서는 클래스를 체계적으로 관리하기 위해 패키지(package)를 사용합니다. 우리가 폴더를 만들어 파일을 저장 관리하듯이 패키지를 만들어 클래스를 저장 관리합니다. 패키지의 물리적인 형태는 파일 시스템의 폴더입니다.
패키지는 단순히 파일 시스템의 폴더 기능만 하는 것이 아니라 클래스의 일부분입니다. 패키지는 클래스를 유일하게 만들어주는 식별자 역할을 합니다. 클래스 이름이 동일하더라도 패키지가 다르면 다른 클래스로 인식됩니다. 클래스의 전체 이름은 "패키지명+클래스명"인데 패키지가 상/하위로 구분되어 있다면 도트(.)를 사용해서 다음과 같이 표현합니다.
상위패키지.하위패키지.클래스이름
예를 들어 Car 클래스가 com.mycompany 패키지에 속해 있다면 Car 클래스의 전체 이름은 com.mycompany.Car 가 되고 실제 시스템에서는 com\mycompany 폴더에 Car.class가 위치하게 됩니다.
패키지가 중요한 이유는 클래스만 따로 복사해서 다른 곳으로 이동하면 클래스는 사용할 수 없기 때문입니다. 예를 들어 Car 클래스가 com.mycompany 패키지에 소속되어 있을 경우, 파일 시스템 com\yourcampany 폴더에 Car.class를 저장하면 Car 클래스를 사용할 수 없습니다. 클래스를 이동할 경우에는 패키지 전체를 이동시켜야 합니다.
패키지 선언
패키지는 클래스를 컴파일하는 과정에서 자동적으로 생성되는 폴더입니다. 컴파일러는 클래스에 포함되어 있는 패키지 선언을 보고, 파일 시스템의 폴더로 자동 생성시킵니다. 다음은 패키지를 선언하는 방법입니다.
package 상위패키지.하위패키지;
public class ClassName { ... }
패키지 이름은 모두 소문자로 작성하는 것이 관례입니다.
패키지 선언이 포함된 클래스 컴파일
패키지 선언이 포함된 클래스를 명령 프롬프트에서 컴파일할 경우, 단순히 javac ClassName.java로 컴파일해서는 패키지 폴더가 생성되지 않습니다. 패키지 폴더가 생성되려면 javac 명령어 다음에 -d 옵션을 추가하고 패키지가 생성될 경로를 다음과 같이 지정해야 합니다.
- javac -d . //현재 폴더 내에 생성
- javac -d ..\bin //현재 폴더와 같은 위치의 bin 폴더에 생성
- javac -d C:\Temp\bin //C:\Temp\bin 폴더에 생성
메모장을 켜고 다음과 같이 코드를 작성합니다.
그리고 '파일 - 다른 이름으로 저장'을 클릭하여 파일 이름을 "Application.java"로 변경하고, 저장 위치를 "C:\Temp"로 합니다. 이제 명령 프롬프트를 열어서 "C:\Temp"위치로 이동해 줍니다.
해당 위치에 "Application.java" 파일이 있는 것을 확인합니다.
이제 다음과 같이 입력합니다. "javac -d . Application.java" 이 명령어는 패키지 폴더를 만들고 해당 폴더 안에 바이트 코드(.class)를 생성합니다.
확인해 보면 아까는 없었던 "exampackage"라는 폴더가 생겼습니다. 해당 위치에 들어가 보면 다음과 같이 "Application.class" 파일이 생성되어 있는 것을 볼 수 있습니다.
이제 다시 패키지 폴더에서 나와서 "java exampackage.Application"을 해당 프로그램이 실행됩니다.
이클립스에서 패키지 생성과 클래스 생성
이클립스에서는 패키지만 따로 생성할 수도 있고, 클래스를 생성할 때 동시에 생성할 수도 있습니다. 하지만 패키지를 먼저 생성하고, 해당 패키지에서 클래스를 생성하는 방법을 가장 많이 사용합니다. 클래스를 컴파일하는 과정에서 패키지들을 생성하는 것보다는 미리 패키지를 만들어 놓고, 여기에 포함될 클래스를 결정하는 것이 더 쉽기 때문입니다.
이클립스에서 패키지를 생성하려면 왼쪽의 Package Explorer 뷰에서 프로젝트의 src 폴더를 우클릭합니다.
그리고 'new - package'를 클릭합니다.
패키지 이름을 적을 때는 상위 패키지를 먼저 적고 도트(.)로 구분한 후 하위 패키지를 적어줍니다. 패키지를 생성하면 해당 패키지에 클래스를 생성할 차례입니다. 다음과 같이 새로 생성한 패키지를 우클릭합니다.
그다음 'new - class'를 클릭합니다. 클래스를 생성하는 것은 앞에서 다뤘었기 때문에 여기서는 더 설명하지는 않겠습니다.
'공부 일지 > JAVA 공부 일지' 카테고리의 다른 글
자바, 접근 제한자 (0) | 2021.04.07 |
---|---|
자바, import문 (0) | 2021.04.07 |
자바, final 필드와 상수 (0) | 2021.04.07 |
자바, 싱글톤(Singleton) (0) | 2021.04.07 |
자바, 정적 멤버와 static (0) | 2021.04.07 |