접근제한자
- 소스 파일 및 모듈의 코드의 일부에 대한 접근을 제한하고자 할 때 사용합니다.
- 명시적으로 코드의 세부적 구현은 숨길 수 있고 기본 인터페이스 지정이 가능합니다.
- 접근 제어자의 사용을 통해 코드의 상세 내용을 숨기고 코드의 불필요한 외부 노출을 명시적으로 제한 -> 은닉화의 특성을 구현할 수 있습니다.
- 은닉화를 사용해 접근하면 안 되는 코드로 접근해서 사용해 의도하지 않은 오류를 방지할 수 있습니다.
- 접근 제어자는 모듈과 소스 코드 기준으로 접근 수준을 판단합니다.
모듈
- import를 통해 우리의 프로젝트에서 사용할 수 있는 형태의 코드 묶음 단위를 말합니다.
- project도 하나의 모듈로 볼 수 있습니다.
- 프레임워크 하나를 하나의 모듈로 볼 수 있습니다.
- open, public을 통해 우리의 프로젝트에 접근 가능합니다.
Source File
- 하나의 프로젝트 내에서 코드를 제어할 경우, internal, fileprivate, private로 소스 파일에 대한 코드 제어를 할 수 있습니다.
접근 레벨
- Open: 개방 접근 수준
- open으로 선언한 외부 모듈의 코드는 우리의 프로젝트에서 사용 가능합니다.
- 클래스에서만 사용 가능하고, open으로 클래스를 선언한 경우 다른 모듈에서 해당 클래스를 오버라이딩 할 수 있습니다.
- Public: 공개 접근 수준
- pulbic으로 선언한 외부 모듈의 코드는 우리의 프로젝트에서 사용 불가능합니다.
- pulbic으로 선언한 경우 상속 X 오버라이딩 X
- Internal: 내부 접근 수준
- 별도의 접근 제어를 선언하지 않으면 default로 internal로 설정됩니다.
- 같은 모듈 내에서는 어떤 파일에서도 코드에 대한 접근이 가능 + 클래스 상속도 가능합니다.
- FilePrivate: 파일 내부 접근 수준
- 하나의 스위프트 파일 내부에서만 접근 가능한 접근 레벨입니다.
- 다른 스위프트에서 사용시 오류 발생
- Private: 비공개 접근 수준
- 같은 블록내에서만 접근이 가능합니다.
'IS' 카테고리의 다른 글
iOS Swift - 앱의 생명주기 (0) | 2023.03.21 |
---|---|
iOS Swift 공식 문서 Study - Property(프로퍼티) (0) | 2023.03.14 |
iOS Swift 공식 문서 Study - Class, Struct 구조체 (0) | 2023.03.09 |
iOS Swift - SocketIO(양방향 통신) (0) | 2023.02.28 |
iOS Swift - 개인 앱 출시 프로젝트 - FURY (0) | 2023.02.28 |