[swift] 접근 제어를 통한 API 디자인 원칙
Swift 언어를 사용하면서 좋은 API를 디자인하려면 접근 제어를 올바르게 활용해야 합니다. 접근 제어는 코드의 모듈성을 강화하고 외부 사용자에게 명확한 API를 제공하는 데 도움이 됩니다.
1. 모듈과 파일 레벨에서의 접근 제어
Swift에서는 public
, internal
, fileprivate
, 그리고 private
이라는 네 가지 접근 수준을 제공합니다. 각각의 접근 수준은 특정한 범위에서의 코드 접근을 제한합니다.
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 디자인 시에는 접근 제어의 올바른 활용을 고려하여 모듈성을 높이고 외부 사용자에게 명확한 인터페이스를 제공하는 것이 중요합니다.
참고 자료: