눈 떠보니 화욜이더라..
휴일은 코딩과 함께 사라졌다
오늘도 달려보자
Access Control
소스 파일 및 모듈의 코드에서 코드의 일부에 대한 접근을 제한하고자 할 때 사용한다
코드의 세부적인 구현, 상세 내용을 숨길 수 있고 코드의 불필요한 외부 노출을 명시적으로 제한, 은닉화의 특성을 구현 가능
접근 제어자는 모듈과 소스 코드 기준으로 접든 수준을 판단
*모듈(Module)
import를 통해 프로젝트에서 사용할 수 있는 형태의 코드 묶음 단위
프로젝트도 하나의 모듈이다!
프레임워크 하나를 하나의 모듈로 볼 수 있음
open, public을 통해 프로젝트에 접근 가능
*소스 파일
프로젝트 내에서 코드 제어를 할 경우 internal, fileprivate, private로 소스 파일에 대한 코드 제어를 할 수 있다
*접근 레벨(Access Level)
open -> public -> internal -> fileprivate -> private
*Open
클래스에서만 사용 가능, open으로 클래스를 선언할 경우 다른 모듈에서 해당 클래스를 overriding가능
*Public
상속받을 수 없고 overriding 불가능하다
*Internal
별도로 접근 제어를 선언하지 않는 경우에 default로 설정되는 접근 레벨
같은 모듈 내에서는 internal의 경우 어떤 파일에서도 코드에 대한 접근이 가능하고 클래스 상속도 받을 수 있다
*Fileprivate
하나의 스위프트 파일 내부에서만 접근 가능한 접근 레벨
다른 스위프트 파일에서 fileprivate로 설정한 파일의 코드를 변경하거나 호출하려고 할 경우에는 오류가 발생
*Private
private으로 설정한 요소가 들어 있는 블록 내에서만 접근이 가능하다
'Tech > iOS' 카테고리의 다른 글
[iOS]Day43 - UIPageViewController (0) | 2022.08.16 |
---|---|
[iOS]Day43 - Custom FrameWork (0) | 2022.08.16 |
[iOS]Day39 - Authorization - Camera (0) | 2022.08.12 |
[iOS]Day38 - Privacy (0) | 2022.08.11 |
[iOS]Day37 - AwakeFromNib, PrepareForReuse (0) | 2022.08.10 |