코린이 탈출기

chapter 3.2 - 패키지 본문

책/깡샘의 코틀린 프로그래밍

chapter 3.2 - 패키지

50HEE 2021. 8. 11. 21:30

3.2.1 패키지 기본 개념

패키지(package)란 관련된 클래스들을 묶기 위한 물리적인 개념입니다.

물리적인 개념이란 실제 클래스가 위치하는 폴더를 의미합니다.

 

import 구문은 외부 파일에 선언된 구성요소를 현재 파일에서 이용하고자 할 때 사용합니다.

위에서 말한 패키지 내에 만들어진 클래스끼리는 별도의 import 구문 없이 사용할 수 있습니다.

하지만 다른 패키지에 선언된 클래스의 경우에는 import 구문으로 클래스에서 사용하겠다고 선언하고 사용해야 합니다.

즉, 같은 패키지 내에서의 클래스끼리는 변수나 함수 등을 import 구문 없이 사용할 수 있지만, 다른 패키지의 경우에는 import 구문을 선언해야 합니다.

 

 

 

3.2.2 가상 패키지

앞에서 설명한 패키지의 개념과 임포트해서 사용한다는 개념은 사실 대부분 프로그래밍 언어와 차이가 없습니다.

그런데 코틀린에서는 패키지가 꼭 실제 물리적인 폴더와 같을 필요는 없습니다.

즉, 코틀린 파일이 있는 폴더와 다른 패키지명을 사용할 수 있다는 의미입니다.

코드를 작성할 때 패키지 명을 다른 파일의 위치로 바꾸어도 상관은 없습니다.

생성 당시에는 기존의 파일에 위치하지만, 코드 작성 시 패키지 명을 다른 파일의 위치로 바꾼 다음에 컴파일하여 런타임할 때는 클래스 파일의 위치는 패키지 명과 같게 됩니다.

 

 

 

3.2.3 변수 / 함수 임포트

클래스를 다른 패키지에서 사용하고 싶을 경우에는 임포트를 통해서 사용하였습니다.

그러면 클래스 내부에 있는 함수나 변수가 아닌 파일에 있는 변수나 함수는 어떻게 해야 할까요?

방법은 클래스와 동일하게 임포트를 사용하면 됩니다.

변수나 함수를 직접 임포트하여 사용할 수 있는 것은 묶지 않은 변수와 함수를 최상위 레벨로 관리하기 때문입니다.

즉, 패키지 내에 선언된 전역변수나 전역함수처럼 취급합니다.

코틀린과 자바에서는 전역변수나 전역함수라는 개념은 없지만, 개발자가 그처럼 이용할 수 있게 내부적으로 지원하는 것으로 생각하면 됩니다.

 

 

 

3.2.4 기본 패키지

코틀린에서 다음의 패키지는 별도의 import 구문 없이 사용할 수 있습니다.

kotlin.*
kotlin.annotation.*
kotlin.collections.*
kotlin.comparisons.* (since 1.1)
kotlin.io.*
kotlin.ranges.*
kotlin.sequences.*
kotlin.text.*
java.lang.*
kotlin.jvm.*

 

 

 

3.2.5 이름 변경해서 임포트하기

클래스를 임포트할 때 이름을 바꿔서 다른 이름으로 사용할 수 있습니다.

임포트할 당시 as라는 예약어를 이용하여 변경할 수 있습니다.

import java.text.Test1 as Test2

위와 같이 Test 1이라는 클래스를 임포트하는 경우 as를 이용하여 Test 2로 바꾸어보았습니다.

이름을 변경하는 이유는 같은 이름의 여러 패키지가 하나의 패키지에서 이용하려 할 때 유용합니다.

' > 깡샘의 코틀린 프로그래밍' 카테고리의 다른 글

chapter 3.1 - 코틀린 파일 정의  (0) 2021.08.06
Comments