본문 바로가기

Tech/iOS

[iOS]Day43 - Access Control

728x90

눈 떠보니 화욜이더라..

휴일은 코딩과 함께 사라졌다

오늘도 달려보자


Access Control

소스 파일 및 모듈의 코드에서 코드의 일부에 대한 접근을 제한하고자 할 때 사용한다

코드의 세부적인 구현, 상세 내용을 숨길 수 있고 코드의 불필요한 외부 노출을 명시적으로 제한, 은닉화의 특성을 구현 가능

접근 제어자는 모듈과 소스 코드 기준으로 접든 수준을 판단

 

*모듈(Module)

import를 통해 프로젝트에서 사용할 수 있는 형태의 코드 묶음 단위

프로젝트도 하나의 모듈이다!

프레임워크 하나를 하나의 모듈로 볼 수 있음

open, public을 통해 프로젝트에 접근 가능

 

*소스 파일

프로젝트 내에서 코드 제어를 할 경우 internal, fileprivate, private로 소스 파일에 대한 코드 제어를 할 수 있다

 

*접근 레벨(Access Level)

open -> public -> internal -> fileprivate -> private

 

*Open

클래스에서만 사용 가능, open으로 클래스를 선언할 경우 다른 모듈에서 해당 클래스를 overriding가능

error

*Public

상속받을 수 없고 overriding 불가능하다

 

 

error

*Internal

별도로 접근 제어를 선언하지 않는 경우에 default로 설정되는 접근 레벨

같은 모듈 내에서는 internal의 경우 어떤 파일에서도 코드에 대한 접근이 가능하고 클래스 상속도 받을 수 있다

 

error

 

*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