본문 바로가기

프로그래밍 언어 기초/JAVA

Chaper 7. 패키지(Package)와 import

7. 패키지(Package)란?

 전문 프로그래머가 아니더라도 컴퓨터를 사용해본 일반인이라도 컴퓨터에 파일을 어떻게 저장하는지는 알고 계실 것입니다. 보통 바탕화면에 저장하거나 혹은 C드라이브에 별도의 폴더를 만들어서 그곳에 저장하는 것이 일반적이죠. 요즘은 클라우드 저장소도 있긴 하지만요! 이와 같이 어떤 파일과 같은 데이터가 저장된 경로는 디렉토리(Directory)라고 부릅니다. 우리나라로 비유하면 도로명 주소나 지번 주소에 해당한다고 볼 수 있습니다. 자바에서도 마찬가지로 확장자가 .java인 파일을 특정 경로에 저장하여 관리하게 되는데요, 이 때 이러한 자바 클래스들을 모아 놓은 디렉토리를 자바에서는 특별히 패키지(Package)라고 부르게 됩니다. 이 패키지는 C\local\mydata 와 같은 형식이 아니라 com.java.package와 같은 형식으로 작성하게 되는데요. 여기서 .\와 실제로도 같은 의미이기 때문에 같다고 생각하셔도 무방합니다.

 

  방을 깔끔하게 정리하고, 잘 관리하려면 정리 정돈이 필수겠죠? 마찬가지로 개발자도 자바 파일을 한곳에 모아둔다면 아무리 파일 이름에 온갖 수식어를 붙여서 분류해두었더라도, 나중에 다시 살펴보게 되면 이게 뭐지 하면서 혼란을 겪게 될 것입니다. 그래서 자바 파일을 관리할 때에는 이러한 패키지를 통해서 분류하고 관리하는 것이 일반적입니다. 만약 자바 파일을 별도로 분리하지 않았다면 그 자바 파일은 default package에 저장되게 됩니다.

 

  패키지는 다음 장에서 배울 접근 제한자와 연관이 있습니다. 만약 내가 만든 파일을 다른 프로그래머가 허락도 없이 마음대로 수정하거나, 열심히 작성한 코드 전체를 지워버린다면 어떨까요? 상상만으로도 정말 화가 나는 상황일 것 같습니다. 이처럼 외부에서 이미 작성해둔 자바의 클래스들을 가져다 사용하는 것은 허용해도, 수정하거나 삭제하는 등의 행위를 금하는 데 사용되는 것이 접근 제한자입니다. 이 내용은 다음 챕터에서 살펴보도록 할게요.

 

 개발자가 작성한 패키지 자바 파일을 저장했다면, 그것을 개발자가 다른 자바 파일에서 사용하기 위해서는 불러와 사용하는 작업이 필요합니다. 이 작업을 import라고 합니다. 자바에서는 다른 디렉토리에 존재하는 자바의 소스 파일들이나 파일 묶음(라이브러리) 등을 가져다 쓸 수 있으며, 앞서 배운 ArrayList와 같은 자료구조도 결국은 이 import를 통해서 불러와 사용한 경우입니다. 당연하게도 import되지 않은 다른 자바 파일은 사용할 수 없으며 컴파일 오류를 발생시킬 수 있습니다.

 

자세한 내용은 아래의 코드를 참조해주세요.

 

package com.tstory.chap7; // package 키워드를 통해 자바 파일의 디렉토리를 명시한다.

import com.tstory.chap6.Parent; // import로 다른 자바 파일을 불러와 사용 가능하다.
import com.tstory.chap6.*; // 만약 해당 경로에 모든 파일들(라이브러리)를 사용하고 싶다면 * 를 사용한다.
import java.util.ArrayList; // java/util/ArrayList라는 파일(라이브러리)을 불러와 사용함을 선언

public class importTest {

	public static void main(String[] args) {
		
		Parent p1 = new Parent(); // 다른 디렉토리에 있더라도 사용 가능!
		ArrayList arr = new ArrayList<>(); // 메인 메소드에서 정상 사용!
		
	}

}