[swift] 외부 모듈에서의 접근 제어 설정
Swift는 external module(외부 모듈)에서의 접근을 제어하기 위한 다양한 방법을 제공합니다. 이를 통해 모듈을 효과적으로 보호하고 재사용할 수 있습니다.
모듈(Module)과 접근 수준(Access Level)
Swift에서 module이란 코드를 별도의 단위로 구분하여 배포 및 재사용할 수 있는 단위를 말합니다. 기본적으로 모듈 내의 코드는 다른 모듈에서 사용할 수 없으며, 이를 제어하기 위해 접근 수준 개념을 사용합니다.
접근 수준(Access Level) 종류
Swift에서는 5가지의 접근 수준을 제공합니다.
- Open: 모듈 외부에서도 해당 요소에 대한 접근 및 재정의가 가능합니다.
- Public: 모듈 외부에서는 접근 가능하지만 재정의는 불가능한 상태입니다.
- Internal: 같은 모듈 내에서는 어디서든 접근할 수 있지만, 외부 모듈에서는 접근할 수 없습니다. 기본 접근 수준입니다.
- File-private: 같은 소스 파일 내에서만 해당 요소에 접근할 수 있습니다.
- Private: 해당 요소를 포함하고 있는 범위에서만 접근할 수 있습니다.
public class SomePublicClass {}
internal class SomeInternalClass {}
fileprivate class SomeFilePrivateClass {}
private class SomePrivateClass {}
외부 모듈에서의 접근 제어
다른 모듈에서의 접근을 설정하기 위해서는 import
키워드를 사용한 후 해당 모듈의 접근 수준에 맞게 요소를 선언합니다.
예를 들어, 외부 모듈에서 Public
이나 Open
으로 선언된 요소에 접근하기 위해서는 해당 모듈을 import
한 후에 해당 요소에 접근할 수 있습니다.
import SomeModule
let publicInstance = SomePublicClass()
반면에 Internal
, File-private
, Private
로 선언된 요소는 외부 모듈에서는 접근할 수 없습니다.
결론
Swift의 접근 수준 개념을 활용하여 모듈을 보호하고 재사용할 수 있습니다. 외부 모듈에서의 접근을 제어함으로써 안정성과 유연성을 동시에 확보할 수 있습니다.
더 많은 정보는 Swift 공식 문서를 참고하세요.
위의 내용이 도움이 되었기를 바라며, 기술적인 궁금증이 있으면 언제든지 질문해주세요.