[swift] Swift에서 접근 수준의 종류

Swift에서는 접근 수준(Access Control)을 사용하여 모듈과 소스 파일 간에 코드의 접근을 제어할 수 있습니다. 이를 통해 모듈 간의 의존성을 줄이고 안정적인 코드를 유지할 수 있습니다. Swift에서는 네 가지의 접근 수준을 제공합니다. 이 포스트에서는 각각의 접근 수준에 대해 알아보겠습니다.

공개 접근 수준 (Public Access Level)

공개 접근 수준은 가장 높은 접근 수준으로, 다른 모듈에서 사용할 수 있는 모든 인터페이스를 나타냅니다. public 키워드를 사용하여 선언할 수 있으며, 다른 모듈에서 해당 인터페이스를 사용할 수 있습니다.

public class SomePublicClass {
    public var somePublicProperty: Int = 0
    public func somePublicMethod() {
        // 공개 메서드의 구현
    }
}

내부 접근 수준 (Internal Access Level)

내부 접근 수준은 기본적으로 모든 코드에 적용되는 접근 수준으로, 해당 모듈 내에서 자유롭게 접근할 수 있습니다. 별도의 접근 수준을 지정하지 않으면 내부 접근 수준이 적용됩니다.

class SomeInternalClass {
    var someInternalProperty: Int = 0
    func someInternalMethod() {
        // 내부 메서드의 구현
    }
}

파일-내부 접근 수준 (File-private Access Level)

파일-내부 접근 수준은 해당 파일 내에서만 접근할 수 있는 접근 수준으로, 다른 파일 내에서는 접근할 수 없습니다. private 키워드를 사용하여 선언할 수 있으며, 같은 Swift 파일 내에서만 접근 가능합니다.

fileprivate class SomeFilePrivateClass {
    fileprivate var someFilePrivateProperty: Int = 0
    fileprivate func someFilePrivateMethod() {
        // 파일-내부 메서드의 구현
    }
}

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

비공개 접근 수준은 가장 제한적인 접근 수준으로, 해당 클래스 내에서만 접근할 수 있습니다. private 키워드를 사용하여 선언할 수 있으며, 같은 클래스 내에서만 접근 가능합니다.

class SomePrivateClass {
    private var somePrivateProperty: Int = 0
    private func somePrivateMethod() {
        // 비공개 메서드의 구현
    }
}

위와 같이 Swift는 네 가지의 접근 수준을 제공하여 모듈과 소스 파일 간의 안전한 코드 접근을 보장합니다. 알맞은 접근 수준을 선택하여 코드를 구현함으로써 모듈 간의 의존성을 줄이고 유지보수에 용이한 코드를 작성할 수 있습니다.

더 많은 정보는 Swift 공식 문서를 참고하세요.