[swift] 외부 모듈에서의 접근 제어 설정

Swift는 external module(외부 모듈)에서의 접근을 제어하기 위한 다양한 방법을 제공합니다. 이를 통해 모듈을 효과적으로 보호하고 재사용할 수 있습니다.

모듈(Module)과 접근 수준(Access Level)

Swift에서 module이란 코드를 별도의 단위로 구분하여 배포 및 재사용할 수 있는 단위를 말합니다. 기본적으로 모듈 내의 코드는 다른 모듈에서 사용할 수 없으며, 이를 제어하기 위해 접근 수준 개념을 사용합니다.

접근 수준(Access Level) 종류

Swift에서는 5가지의 접근 수준을 제공합니다.

  1. Open: 모듈 외부에서도 해당 요소에 대한 접근 및 재정의가 가능합니다.
  2. Public: 모듈 외부에서는 접근 가능하지만 재정의는 불가능한 상태입니다.
  3. Internal: 같은 모듈 내에서는 어디서든 접근할 수 있지만, 외부 모듈에서는 접근할 수 없습니다. 기본 접근 수준입니다.
  4. File-private: 같은 소스 파일 내에서만 해당 요소에 접근할 수 있습니다.
  5. 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 공식 문서를 참고하세요.

위의 내용이 도움이 되었기를 바라며, 기술적인 궁금증이 있으면 언제든지 질문해주세요.