Swift의 접근 제어자는 코드의 가시성과 접근 가능 범위를 제어하여 데이터 은닉과 캡슐화를 구현하는 중요한 도구입니다.
각 접근 제어자의 특징과 언제 사용하는지를 간단히 요약
1. open
• 특징
• 가장 높은 접근 수준.
• 다른 모듈에서 접근, 상속, 오버라이드 모두 가능.
• 언제 사용하는가?
• 프레임워크를 개발할 때, 외부 모듈에서 클래스나 메서드를 상속 및 오버라이드할 수 있도록 허용하고 싶을 때.
• 확장 가능성을 열어두고자 할 때.
2. public
• 특징:
• 다른 모듈에서 접근 가능하지만 상속 및 오버라이드는 불가능.
• 언제 사용하는가?
• 외부 모듈에서 사용할 수 있는 API를 제공하되, 상속이나 오버라이드는 막고 싶을 때.
• 안정적인 인터페이스만 외부에 제공하고 내부 동작은 제어할 때.
3. internal (기본 접근 수준)
• 특징:
• 동일 모듈 내에서만 접근 가능.
• 기본 설정으로, 명시하지 않으면 internal로 간주.
• 언제 사용하는가?
• 앱이나 프레임워크 내부에서만 사용하는 로직이므로 외부에 공개할 필요가 없을 때.
• 모듈 내에서 자유롭게 접근하되, 모듈 외부와는 차단하고 싶을 때.
4. fileprivate
• 특징:
• 동일 파일 내에서만 접근 가능.
• 언제 사용하는가?
• 특정 파일에서만 사용되는 헬퍼 함수나 클래스가 있을 때.
• 파일 내 여러 타입 간 상호작용이 필요하지만, 다른 파일에서는 접근하지 않도록 제한하고 싶을 때.
5. private
• 특징:
• 동일 타입 내에서만 접근 가능.
• 동일 타입 내의 익스텐션에서도 접근 가능.
• 언제 사용하는가?
• 클래스나 구조체의 내부에서만 사용되는 속성이나 메서드를 외부에 노출하지 않고 철저히 보호하고 싶을 때.
• 완전한 캡슐화를 원할 때.
접근 제어자 사용 요령
• 최소 권한 원칙: 가능한 가장 낮은 수준의 접근 제어자를 사용하여 데이터와 기능을 보호할 수 있습니다.
• 모듈 간 의존성 최소화: 외부 모듈에 노출할 필요가 없는 코드는 internal 이하로 설정해 모듈 간 결합도를 줄일 수 있습니다.
• 공개 API 설계 시: 외부에 공개할 필요가 있는 클래스나 함수는 public이나 open으로 설정하고, 내부 동작을 제어하려면 private 또는 fileprivate을 사용합니다.
'SwiftUI' 카테고리의 다른 글
Swift - Core Bluetooth 블루투스 통신 (0) | 2024.11.19 |
---|---|
SwiftUI - 소켓 통신으로 영상 전송받기 (0) | 2024.11.13 |
SwiftUI - 소켓 통신 (5) | 2024.11.12 |
SwiftUI - 커스텀 카메라 (0) | 2024.11.11 |
WidgetKit - UserDefault 로 위젯과 앱 데이터 공유하기 (0) | 2024.10.23 |