참조 : Swift 스위프트 프로그래밍 3판 Swift 5, 저자 야곰 (한빛미디어) , The Swift Programming Language Swift 5.6 Edition (iBooks)(https://books.apple.com/kr/book/the-swift-programming-language-swift-5-6/id881256329)
접근제어란?
- 코드끼리 상호작용을 할 때 파일 간 또는 모듈 간에 접근을 제한할 수 있는 기능
- 접근제어를 통해 코드의 상세 구현은 숨기고, 허용된 기능만 사용하는 인터페이스를 제공 가능
접근제어의 필요성
- 객체지향 프로그래밍 패러다임에서 캡슐화와 은닉화를 구현하는 이유는 외부에서 보거나 접근하면 안 되는 코드가 있기 때문
- 불필요한 접근으로 의도치 않은 결과를 초래하거나 꼭 필요한 부분만 제공해야하는데, 전체 코드가 노출될 가능성이 있을 때 접근제어를 이용
모듈과 소스파일
- 모듈(Module) : 배포할 코드의 묶음 단위, 통상 하나의 프레임워크나 라이브러리 또는 애플리케이션이 모듈 단위가 될 수 있음
- import 키워드를 사용
- 소스파일 : 하나의 스위프트 소스 코드 파일
- 보통 파일 하나에 타입 하나만 정의하지만, 때로는 소스파일 하나에 여러 타입(여러개의 클래스, 구조체, 열거형 등)이나 함수 등 많은 것을 정의하거나 구현 가능
접근수준(Access Level)
- 각 타입(클래스, 구조체, 열거형 등)에 특정 접근수준을 지정할 수 있고, 타입 내부의 프로퍼티, 메서드, 이니셜라이저, 서브스크립트 각각에도 접근 수준 지정 가능