[swift] 접근 제어를 사용하여 코드 보호하기
Swift에서는 다음과 같은 네 가지의 접근 수준이 있습니다:
- Open: 다른 모듈에서도 접근 가능하며, 오버라이딩할 수 있는 최대 수준의 접근권한을 가집니다.
- Public: 다른 모듈에서 접근 가능하긴 하지만, 오버라이딩할 수 없는 최대 수준의 접근권한을 가집니다.
- Internal: 동일 모듈 내에서만 접근 가능한 접근 수준입니다. 기본 값이며, 별도로 명시하지 않아도 사용됩니다.
- File-private: 같은 소스 파일 내에서만 접근 가능한 접근 수준입니다.
이러한 접근 수준은 코드의 일부분만 공개하고 다른 부분은 감출 수 있도록 해줍니다. 이는 코드의 유지보수성을 높이고, 외부 요인에 의한 부작용을 최소화하는 데 도움이 됩니다.
아래는 간단한 예시입니다. 다음 코드에서 InternalClass
는 ExampleModule
모듈 외부에서 접근할 수 없지만, InternalClass
내부의 internalMethod
는 해당 모듈 내의 어디서든 호출할 수 있습니다.
public class PublicClass {
internal let internalProperty = "Internal"
}
open class OpenClass {
open func openMethod() {}
}
fileprivate class FilePrivateClass {
func fileprivateMethod() {}
}
internal class InternalClass {
internal func internalMethod() {}
}
더 복잡한 코드에서는 더 많은 접근 수준을 사용하여 모듈 간, 클래스 간 또는 코드 내에서 적합한 보안 수준을 유지할 수 있습니다.