[swift] 접근 제어(Access Control)

내부 접근 수준(Internal Access Level)

기본적인 접근 수준이며, 동일한 모듈 내에서는 모든 요소에 액세스할 수 있습니다. 별도의 키워드를 지정하지 않으면 모든 코드는 내부 액세스 수준으로 처리됩니다.

internal class InternalClass {
    internal var internalProperty: Int
    
    internal init(internalProperty: Int) {
        self.internalProperty = internalProperty
    }
}

개방 접근 수준(Open Access Level)

외부 모듈에서도 상속이 가능한 접근 수준입니다. 주로 외부로 공개하고자 하는 것에 사용됩니다.

open class OpenClass {
    open var openProperty: String
    
    public init(openProperty: String) {
        self.openProperty = openProperty
    }
}

비공개 접근 수준(Private Access Level)

코드 내에서만 액세스할 수 있는 최고 수준의 접근 제어입니다. 보통 클래스 내부의 세부 구현을 숨기고자 할 때 사용됩니다.

private class PrivateClass {
    private var privateProperty: Double
    
    private init(privateProperty: Double) {
        self.privateProperty = privateProperty
    }
}

모듈 간 상호 작용 및 코드 구성을 보호하려면 접근 제어를 사용하여 개발하면서 안정성과 보안을 강화할 수 있습니다.

참조: Swift 공식 문서 - Access Control