프로그래밍/Java

6. [Java] Package 개념 + 사용 방법(feat. eclipse) - 코딩도치

코딩도치 2019. 11. 21. 19:00
반응형

안녕하세요. 코딩도치 입니다~

 

오늘은 package에 대해서 알아보고 직접 만들어 보는 실습까지 하려고 합니다!

 

1. package란

 

package : 꾸러미

 

package의 뜻은 ~꾸러미인데요, Java에서 package는 class꾸러미를 의미합니다.

 

class들이 모여있는 곳을 package라고 정의한 것이죠.

 

여러분들 모두 폴더를 만들어서 파일들을 관리하시죠? package도 똑같습니다. 

 

소스를 깔끔하게 관리하기 위해서 관련 있는 소스들끼리 모아 놓는 공간인 것이죠.

 

eclipse를 이용해서 프로젝트에 package를 만들어 볼까요?

2019/11/14 - [프로그래밍/Java] - 3. [Java] 이클립스(eclipse) Java 프로젝트 생성 방법 - 코딩도치

 

3. [Java] 이클립스(eclipse) Java 프로젝트 생성 방법 - 코딩도치

안녕하세요. 코딩도치 입니다~ 오늘은 이클립스를 이용한 Java 프로젝트 생성 방법에 대해서 알아보도록 하겠습니다! 제가 사용한 이클립스(eclipse) 버전은 저번에 설치한 가장 최신 버전(2019-09)입니다. 1. 이..

codingffler.tistory.com

2. package 생성

 

저는 저번 시간에 만들었던 Codingdoci 프로젝트에 package 생성을 해보겠습니다.

eclipse로 프로젝트를 여시면, 위와 같이 프로젝트를 구성하는 src 디렉토리를 보실 수 있습니다.

 

프로젝트의 workspace에 들어가서 프로젝트 구조를 살펴보면

위와 같이 src폴더 아래에 아무것도 없는 것을 볼 수 있습니다.

 

이제 다시 eclipse로 돌아와서, src 디렉토리에서 마우스 우클릭을 해주세요.

New > Package를 클릭하시면, 아래와 같은 팝업창이 나오게 됩니다.

 

위 창에서 package이름을 설정하게 됩니다.

 

저는 codingdoci.example.main이라는 이름을 설정해주도록 하겠습니다. Finish를 눌러주세요~

(package의 이름은 임의로 정하셔도 무방합니다!)

 

제가 설정한 package 이름을 보시면 중간중간 ' . '이 보이시나요?

 

여기서 ' . '하위 디렉토리를 의미하게 됩니다.

 

이름에 ' . '을 넣어줌으로써 하위 디렉토리 구조를 생성할 수 있는 것입니다.

 

무슨 말인지 모르시겠다고요? 아래를 보시면 바로 이해하실 수 있을 거예요!

자, 이렇게 package가 잘 만들어졌나요?

 

그럼 실제 프로젝트의 폴더 구성이 어떻게 변하였는지 살펴보도록 하겠습니다.

처음에 아무것도 없던 src 폴더 아래에 codingdoci라는 폴더가 생겼네요!

codingdoci 폴더 안에는 example 폴더가,

example 폴더 안에는 main폴더가 생겼습니다.

 

이렇게 제가 설정한 codingdoci.example.main package가 프로젝트에 반영된 것입니다.

 

각각은 디렉토리의 이름이 되고, ' . '을 기준으로 하위 디렉토리로 생성되는 것입니다.

 

이렇게 package를 생성해 보았는데요. 

 

사실 package에는 제가 위에서 언급한 소스 관리보다 더 특별한 사용 이유가 있습니다.

 

바로 class의 고유성 확보입니다.

 

앞서 package는 관련 있는 class들을 모아놓는 장소라고 언급했는데요.

 

이러한 package가 자신에게 포함되어 있는 class에 고유성을 부여하게 됩니다.

 

Java언어를 이용해서 객체 지향 프로그래밍을 하게 되면 여러 객체(class)들을 조합하여 프로그램을 구성하게 됩니다.

 

그런데 이때, 안에 소스 내용은 다르지만 동일한 이름을 가진 객체(class)가 여러 개 있을 수 있습니다.

 

예를 들어볼까요?

 

codingdoci.example.main이라는 package안에 test라는 이름의 객체(class)가 있고,

codingdoci.exmaple.sub라는 package 안에 test라는 이름의 객체(class)가 있다고 해보겠습니다.

 

package는 다르고 이름은 동일한 객체(class)가 두 개 있습니다.

 

실제로 이러한 경우가 가능하고, 많이 사용됩니다.

 

우리는 프로그램을 만들면서 test라는 객체(class)를 사용하게 될 것입니다.

 

그렇다면 각각의 객체(class)를 어떻게 구분할까요?

 

바로, 어느 package에 포함되어 있느냐로 구분하게 되는 것입니다.

 

실제로는 codingdoci.example.main.test객체(class)와 codingdoci.example.sub.test객체(class)로 인식이 되는 것이죠.

 

class의 사용을 원활하게 하기 위해서 package 설계를 잘하는 것이 좋겠죠?

 

이렇게 오늘은 package에 대해서 알아보았습니다.

 

class에 대한 개념이 없어 조금 불편하셨던 분들이 계셨을 수도 있을 것 같습니다.

 

바로 다음 포스팅에서 class에 대한 개념을 가지고 돌아오겠습니다!

 

감사합니다.

반응형