Skip to content

internal의 범위는 어디까지일까?

이진혁 edited this page Jun 9, 2021 · 3 revisions

개요

코틀린에서는 public(default), internal, protected, private이라는 접근 제어 지시자를 제공합니다.
internal을 제외한 모든 접근 제어 지시자는 익숙합니다.
자바에서 제공하는 package-private을 대신한 것이라고도 생각했지만,
코틀린에서의 패키지는 클래스를 나누는 네임스페이스의 역할만 하기 때문에
package-private이 존재할 수 없습니다.

internal은 모듈 단위로 접근을 제어하는 것으로 module-private이라고 부를 수도 있습니다.
그러면 이 모듈의 범위는 어디까지일까요?

실험해보기

모듈이라고 하면 자바 9에 추가된 모듈을 떠올릴 수도 있지만 가장 쉽게 떠오르는 것은 Gradle(그레이들) 프로젝트의 서브 프로젝트입니다.