[swift] 접근 제어 규칙

Swift에서는 접근 제어를 통해 코드의 일부를 다른 코드로부터 숨기거나, 외부에서 접근할 수 있도록 하는 등의 제어가 가능합니다. 이는 소프트웨어의 모듈화, 유지보수성 및 보안에 도움이 됩니다.

접근 제어 수준

Swift에서는 다음과 같은 다섯 가지의 접근 제어 수준을 제공합니다:

public class SomePublicClass {}
internal class SomeInternalClass {}
fileprivate class SomeFilePrivateClass {}
private class SomePrivateClass {}

접근 제어 수준 지정

변수, 상수, 함수, 그리고 타입에 접근 제어 수준을 지정할 수 있습니다. 기본적으로는 internal 접근 제어 수준이 적용되며, 필요에 따라 명시적으로 지정할 수 있습니다.

public var myPublicVariable: Int
internal let myInternalConstant: Int
fileprivate func myFilePrivateFunction() {}
private class myPrivateClass {}

접근 제어 수준과 상속

부모 클래스의 접근 제어 수준보다 자식 클래스의 접근 제어 수준이 높을 수 없습니다. 또한, 오버라이딩한 멤버의 접근 제어 수준은 부모 클래스보다 더 높을 수 없습니다.

모듈 외부 접근 제어

모듈 외부에서 접근 가능한 기능과 타입을 정의할 때는, 명시적으로 public 접근 제어 수준을 지정해주어야 합니다. 그 외의 경우에는 모듈 외부에서는 접근할 수 없습니다.

참조