[swift] 아무 접근 제어 지시자도 없는 경우의 특징

Swift에서는 접근 제어 지시자가 없는 경우에 대한 기본 동작 방식이 있습니다. 이렇게 하면 코드의 유연성을 높일 수 있습니다. 아래에서는 아무 접근 제어 지시자가 없는 경우의 특징들을 살펴보겠습니다.

1. 기본적으로 internal 접근 제어 지시자

아무 접근 제어 지시자가 명시되지 않은 경우, Swift는 기본적으로 internal 접근 제어 지시자를 적용합니다. 이는 해당 엔터티가 모듈 외부에선 비공개되지만 동일 모듈 내에서는 접근이 가능하다는 것을 의미합니다.

2. 모듈의 기본적인 캡슐화

아무 접근 제어 지시자가 명시되지 않은 경우, 코드의 캡슐화가 모듈 단위로 이루어집니다. 이는 해당 모듈 외부에선 비공개로 간주되지만, 동일 모듈 내에서는 공개됩니다.

// ModuleA.swift
class MyClass {
    func myMethod() {
        // 모듈 내부에서 호출 가능
    }
}

3. 다른 모듈에서의 접근

아무 접근 제어 지시자가 명시되지 않은 경우, 다른 모듈에서 해당 엔터티에 접근하려면 명시적으로 공개해야 합니다. 이는 해당 엔터티를 외부에서 접근 가능하도록 만드는 과정입니다.

// ModuleB.swift
import ModuleA

let myClass = MyClass() // 에러: MyClass는 공개되어 있지 않음

결론

아무 접근 제어 지시자가 명시되지 않은 경우, Swift에서는 기본적으로 internal 접근 제어 지시자가 적용됩니다. 이로써 코드의 캡슐화가 모듈 단위로 이루어지며, 다른 모듈에서 접근을 원하는 엔터티는 명시적으로 공개해야 합니다.

이는 Swift 코드의 유연성을 높여주며, 모듈 간의 결합도를 낮출 수 있도록 도와줍니다.

참고 문헌: The Swift Programming Language - Access Control