반응형
Access Control
- 다른 소스 파일 또는 모듈의 코드에서 코드 부분에 대한 엑세스를 제한
- 코드의 구현 세부 정보를 숨기고 해당 코드에 엑세스하고 사용할 수 있는 기본 인터페이스를 지정 가능
모듈과 소스파일 구분
- 모듈: 배포 단위
- 프레임워크 또는 응용프래그램을 import로 다른 모듈로 가져올 수 있는 성격
- 소스파일: 단순히 소스코드 파일이므로 소스 파일에서 여러 유형에 대한 access control 정의가 가능
Access level
open | 모든 소스 파일에서 해당 level 접근 가능 + 모든 곳에서 서브클래싱 가능 |
public | 모든 소스 파일에서 해당 level 접근 가능 + 같은 모듈 내에서만 서브클래싱 가능 |
internal (외부 모듈에서 코드 확인 불가) | 같은 모듈 내에서만 접근 가능 |
fileprivate (외부 모듈에서 코드 확인도 불가) | 같은 소스파일 내에서만 접근 가능 |
private (외부 모듈에서 코드 확인도 불가) | 클래스 내부에서만 접근 가능 |
디폴트가 internal인 이유는?
- 일반적으로 단일 대상으로 특정 앱을 만드는데, 이 앱의 접근은 앱 모듈 외부에서 사용하게 만들 필요가 없기 때문
- 단, 외부에서 해당 모듈의 코드를 비공개하고 싶은 경우 fileprivate, private 둘 중 하나로 설정해야 가능
반응형
'iOS > Swift' 카테고리의 다른 글
[Swift] self?. vs guard let self = self (0) | 2024.07.03 |
---|---|
[Swift] 의존성 주입 Dependency Injection (0) | 2024.06.11 |
[Swift] designated init 과 convenience init (0) | 2024.05.30 |
[Swift] inout 파라미터 (0) | 2024.05.28 |
[Swift] Generics 제네릭 (0) | 2023.12.13 |