더북(TheBook)

2.5 패키지

앞에서 함수를 패키지 수준에서 정의할 수 있다고 설명했다. 그로 인해 자바 패키지 사용 방식과 코틀린 패키지 사용 방식에 큰 차이가 생긴다. 코틀린 패키지에서는 패키지가 저장된 디렉터리 구조와 패키지의 이름을 서로 일치시킬 필요가 없다. 마찬가지로 클래스를 자신의 이름과 같은 이름의 파일에 저장할 필요도 없다. 그리고 클래스가 들어 있는 패키지와 클래스가 정의된 파일이 들어 있는 디렉터리의 구조를 꼭 일치시킬 필요도 없다.

패키지는 단지 식별자에 지나지 않는다. 코틀린에는 하위 패키지(subpackage, 패키지를 포함하는 패키지)라는 개념이 없다. 파일 이름은 중요하지 않다(확장자는 .kt로 끝나야 한다). 하지만 자바처럼 패키지와 디렉터리 구조를 일치시키는 관습을 채택하는 편이 좋은 두 가지 이유가 있다.

1. 자바와 코틀린 파일을 혼합해서 사용해야 한다면 자바 파일을 패키지 이름과 일치하는 경로에 넣어야 한다. 이런 경우 코틀린 파일도 자바와 같은 방식을 택해야 한다.

2. 코틀린 소스 파일만 사용하는 경우라도 패키지와 소스 경로를 일치시키면 소스 파일을 찾아내기가 더 쉽다. 단지 (임포트문을 보면 쉽게 알 수 있는) 패키지 이름을 파일 경로로 바꾸면 파일을 찾을 수 있다.

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