728x90
![]() |
|
접근제어 (Access Control)
- 접근제어란 코드끼리 상호작용을 할 때 파일 간 또는 모듈 간에 접근을 제한할 수 있는 기능
- 코드의 상세 구현은 숨기고 허용된 기능만 사용하는 인터페이스 제공
- 객체지향 프로그래밍 패러다임의 은닉화를 구현하기 위한 중요 개념
모듈 (Module)
- 배포할 코드의 묶음 단위
- 통상 하나의 프레임워크 (Framework), 라이브러리 (Library), 애플리케이션 (Application)이 모듈 단위가 될 수 있음
- import 키워드로 불러옴
소스 파일
- 하나의 스위프트 소스코드 파일
- 기존 자바와 같은 언어에서는 한 파일에 하나의 타입만 선언하지만 스위프트에서는 한 파일에 여러 개의 타입을 선언 가능
접근 수준
접근수준 | 키워드 | 접근도 | 범위 | 비고 |
개방 접근수준 | open | 위 : 높음 아래 : 낮음 |
모듈 외부까지 | - 클래스에서만 사용 - 확장 가능 |
공개 접근수준 | public | 모듈 외부까지 | ||
내부 접근수준 | Internal | 모듈 내부 | - 같은 framework, 프로젝트 - default |
|
파일외부비공개 접근 수준 | fileprivate | 파일 내부 | - 같은 소스파일(.swift) | |
비공개 접근수준 | private | 기능 정의 내부 | - 같은 클래스, 구조체 등 |
1. public - 공개 접근수준
- 어디에서든 접근 가능
- 주로 프레임워크에서 외부와 연결될 인터페이스를 구현하는데 많이 쓰임
2. open - 개방 접근수준
- public보다 높은 접근수준
- 클래스, 클래스 멤버에서만 사용 가능
- public과의 차이점
- 클래스가 정의된 모듈 밖에서도 상속 가능
- 해당 멤버가 정의된 모듈 밖의 다른 모듈에서도 재정의 가능
- 즉 다른 모듈에서도 부모 클래스로 사용하겠다는 목적
3. internal (default) - 내부 접근수준
- 기본적으로 모든 요소에 암묵적으로 지정되는 기본(default) 접근수준
- 소스파일이 속해있는 모듈 어디에서든 접근 가능
- 외부 모듈 접근 x
- 모듈 내부에서 광역적으로 사용되는 경우
4. fileprivate - 파일외부비공개 접근수준
- 해당 요소가 구현된 소스파일 내부에서만 사용 가능
- 해당 소스파일 외부에서 값이 변경 혹은 함수를 호출할 경우 부작용이 예상될 때 사용
5. private - 비공개 접근수준
- 가장 좁은 접근 범위 가짐
- 해당 요소를 정의하고 구현한 범위 내에서만 사용 가능
- 같은 소스파일 안에 구현한 다른 타입이나 기능에서도 사용 불가능
728x90
'Swift' 카테고리의 다른 글
[Swift] 오류처리 (Error Handling) (0) | 2021.01.28 |
---|---|
[Swift] 서브스크립트 (Subscript) (0) | 2021.01.17 |
[Swift] 프로토콜 (Protocol) (0) | 2021.01.02 |
[Swift] 구조체와 클래스 (0) | 2020.12.28 |
[Swift] 범위 연산자 (0) | 2020.12.28 |
댓글