[swift] 접근 제어를 통한 코드 리팩토링
Swift에서는 접근 제어를 사용하여 모듈 및 소스 코드 파일 간에 접근을 제어할 수 있습니다. 이를 효과적으로 활용하여 코드를 모듈화하고 보다 관리하기 쉬운 형태로 리팩토링할 수 있습니다. 이번 글에서는 Swift에서의 접근 제어를 활용하여 코드를 리팩토링하는 방법에 대해 알아보겠습니다.
1. 접근 제어 레벨의 개요
Swift에서는 아래와 같은 네 가지의 접근 제어 레벨을 제공합니다.
- Open: 모듈 외부에서의 접근이 가능하며, 서브클래스화 또는 오버라이딩이 가능합니다.
- Public: 모듈 외부에서의 접근이 가능하지만, 서브클래스화 또는 오버라이딩이 제한됩니다.
- Internal: 모듈 내부에서의 접근만 허용됩니다. 모듈이 아닌 요소에 대해서는 기본 접근 제어 레벨입니다.
- File-private: 같은 소스 파일 내부에서만 접근이 가능합니다.
2. 코드 리팩토링을 위한 활용
2.1 모듈 내부 세부 구현 감추기
// Before
internal class SomeInternalClass {
//...
}
fileprivate enum SomeFilePrivateEnum {
//...
}
// After
public class SomePublicClass {
//...
}
private enum SomePrivateEnum {
//...
}
2.2 모듈 간 인터페이스 정의
// Before
internal class InternalClass {
//...
}
// After
public class PublicClass {
internal var internalProperty: Int
//...
}
2.3 코드 모듈화
// Before
func complexCalculation() {
//...
}
// After
private func firstStepOfCalculation() {
//...
}
private func secondStepOfCalculation() {
//...
}
public func performComplexCalculation() {
firstStepOfCalculation()
secondStepOfCalculation()
}
3. 결론
Swift의 접근 제어를 적절히 활용하여 코드를 모듈화하고 각 요소들 사이의 의존성을 명확하게 정의함으로써 유지보수가 용이한 코드를 작성할 수 있습니다. 코드 리팩토링을 통해 접근 제어 레벨을 다시 검토하고 조정함으로써 코드의 확장성과 유연성을 높일 수 있습니다.
참고 자료: Swift.org - Access Control