[swift] 접근 제어를 통한 API 디자인 원칙

Swift 언어를 사용하면서 좋은 API를 디자인하려면 접근 제어를 올바르게 활용해야 합니다. 접근 제어는 코드의 모듈성을 강화하고 외부 사용자에게 명확한 API를 제공하는 데 도움이 됩니다.

1. 모듈과 파일 레벨에서의 접근 제어

Swift에서는 public, internal, fileprivate, 그리고 private이라는 네 가지 접근 수준을 제공합니다. 각각의 접근 수준은 특정한 범위에서의 코드 접근을 제한합니다.

API를 디자인할 때, 최소한의 범위로 접근 수준을 지정하여 정보 은닉을 유지하는 것이 중요합니다.

2. 접근 제어의 적절한 활용

다음은 몇 가지 API 디자인 시 접근 제어를 적절하게 활용하는 예시입니다.

2.1. 메서드 및 프로퍼티

외부에서 접근할 필요가 없는 경우, 해당 멤버를 private 또는 fileprivate으로 선언하여 내부 구현의 은닉성을 유지할 수 있습니다.

struct MyStruct {
    fileprivate var internalData: Int

    private func performInternalTask() {
        // 구현 내용
    }
}

2.2. 공개 인터페이스

외부 모듈에서 사용할 API를 디자인할 때는 주로 public 접근 수준을 활용합니다. 이를 통해 명확하고 안정적인 API를 제공할 수 있습니다.

public struct MyPublicStruct {
    public var publicProperty: Int
    
    public func publicMethod() {
        // 구현 내용
    }
}

3. 접근 제어의 장점

접근 제어를 적절하게 활용하면 다음과 같은 장점을 누릴 수 있습니다.

API 디자인 시에는 접근 제어의 올바른 활용을 고려하여 모듈성을 높이고 외부 사용자에게 명확한 인터페이스를 제공하는 것이 중요합니다.


참고 자료: