GGURUPiOS

[Swift] 접근제어(Access Control)란? 본문

Swift/문법 파헤치기

[Swift] 접근제어(Access Control)란?

꾸럽 2023. 12. 5. 17:53

안녕하세요.

이번시간에는 Swift의 접근제어(acces control)에 대해 알아보도록 하겠습니다.


 

접근 제어란?

특정 코드 접근을 제한하는 것 (소스파일, 모듈)

 

접근 레벨 종류 

  • Open & Public: 정의한 모듈의 모든 소스파일과 정의한 모듈을 가져옴, 다른 모듈의 소스파일에서 엔티티를 사용가능
    (일반적으로 프레임워크)
    !Open은 클래스와 클래스 멤버에만 적용되고,서브 클래스와 재정의 가능
  • Internal: 정의한 모듈의 모든 소스 파일 내에서 사용할 수 있지만, 모듈 외부에서는 불가능
    (일반적으로 앱 또는 프레임워크 내부 구조체)
  • File-private: 자체 정의한 소스 파일로 사용제한
    세부 내용은 파일 전체에서 사용되고, 기능의 특정 부분의 구현 세부정보를 가리기 위해 사용
  • Private: 엔티티를 둘러싸고 있는 선언과 동일한 파일에 있는 해당 선언의 확장으로 사용을 제한

원칙

어떤 엔티티도 더 낮은 액세스 수준을 가진 다른 엔티티의 관점에서 정의 불가능

 

예를들어,

  • public 변수는 internal, file-private, private으로 선언된 타입으로 정의할 수 없음
  • 함수는 파라미터, 리턴타입보다 높은 접근 수준을 가질 수 없음

 

 

출처

https://bbiguduk.gitbook.io/swift/language-guide-1/access-control#access-control-syntax

 

접근 제어 (Access Control) - Swift

정의한 모든 타입 별칭은 접근 제어의 목적을 위해 고유한 타입으로 처리됩니다. 타입 별칭은 별칭이 지정된 타입의 접근 수준보다 작거나 같은 접근 수준을 가질 수 있습니다. 예를 들어 private

bbiguduk.gitbook.io