더북(TheBook)

3.2.1 패키지와 디렉터리 구조

자바와 마찬가지로, 코틀린 파일에서도 맨 앞에 패키지 이름을 지정하면 파일에 있는 모든 최상위 선언을 지정한 패키지 내부에 넣을 수 있다. 패키지를 지정하지 않으면 컴파일러는 파일이 디폴트 최상위 패키지에 속한다고 가정한다. 디폴트 최상위 패키지는 이름이 없다.

패키지 디렉티브는 package 키워드로 시작하고 점(.)으로 구별된 식별자들로 이뤄진 패키지 전체 이름(qualified name)이 뒤에 온다. 기본적으로 이 전체 이름은 프로젝트의 전체 패키지 계층에서 루트 패키지로부터 지정한 패키지에 도달하기 위한 경로다. 예를 들어 다음 파일은

package foo.bar.util
fun readInt(radix: Int = 10) = readLine()!!.toInt(radix)

util이라는 패키지에 속하고, util은 다시 bar 패키지에 속하며, bar는 다시 foo 패키지에 속하고, foo 패키지는 루트 패키지에 속한다. 다음 파일은 패키지 계층에서 루트 패키지 바로 아래에 있는 numberUtil에 속한다.

package numberUtil
fun readDouble() = readLine()!!.toDouble()

같은 패키지 디렉티브를 사용하면 여러 파일을 같은 패키지에 넣을 수 있다. 이런 경우 패키지에는 각 파일의 모든 내용이 함께 포함된다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.