notes
IOS - Swift 접근 제어자(Access Control)
Swift 접근 제어자 private·fileprivate·internal·public·open 차이 정리.
Swift 접근 제어자 종류
1. open
- 외부 모듈에서 상속과 오버라이드 모두 허용
- 주로 라이브러리, 프레임워크에서 사용
open class OpenClass { }
2. public
- 외부 모듈에서 사용만 가능, 상속/오버라이드 불가
- 라이브러리의 API를 외부에 공개할 때 사용
public class PublicClass { }
3. internal (기본값)
- 같은 모듈(앱, 프레임워크) 내에서만 사용 가능
- 별도 명시하지 않으면 기본값
internal class InternalClass { }
class DefaultInternalClass { } // internal과 동일
4. fileprivate
- 같은 파일 내에서만 접근 가능
- 파일 단위로 캡슐화할 때 사용
fileprivate class FilePrivateClass { }
5. private
- 같은 타입(클래스, 구조체, 익스텐션) 내에서만 접근 가능
- 가장 강력한 은닉
private class PrivateClass { }
요약 표
모듈/파일/타입 어디까지 보여줄지 헷갈려서 표로만 정리해 둔다. 앱 코드는 대체로 internal(기본) + 진짜 숨길 것만 private/fileprivate면 충분하고, open/public은 프레임워크·패키지 공개 API 만들 때 나온다.