이 포스트는 야곰님의 Swift 프로그래밍 2판을 보고 스스로 공부한 내용을 정리한 포스트 입니다.


참고 자료


접근제어(Access Control)란

  • 접근제어(Access Control)는 코드끼리 상호작용을 할 때 파일 간 또는 모듈 간에 접근을 제한할 수 있는 기능이다.

  • 접근제어(Access Control)를 통해 코드의 상세 구현은 숨기고 허용된 기능만 사용하는 인터페이스를 제공할 수 있다.

  • 객체지향 프로그래밍 패러다임에서 은닉화는 중요한 개념중 하나이다. 이를 구현하기 위한 핵심 기능이 바로 접근제어(Access Control)이다.


접근제어의 필요성

  • 객체지향 프로그래밍 패러다임에서 중요한 캡슐화와 은닉화를 구현하는 이유는 외부에서 보거나 접근하면 안 되는 코드가 있기 때문이다.

  • 불필요한 접근으로 의도치 않은 결과를 초래하거나 꼭 필요한 부분만 제공을 해야하는데 전체 코드가 노출될 가능성이 있을 때 접근제어를 이용한다.


모듈(Modules)과 소스파일(Source Files)

  • 스위프트의 접근제어는 모듈과 소스파일을 기반으로 설계되었다.

  • 모듈(Modules)은 배포할 코드의 묶음 단위이다.

    • 통상 하나의 프레임워크(Framework)나 라이브러리(Library) 또는 애플리케이션(Application)이 모듈 단위가 될 수 있다.

    • 스위프트에서는 import 키워드를 사용해 불러온다.

  • 소스파일(Source Files)은 하나의 스위프트 소스 코드 파일을 의미한다.

  • 자바나 Objective-C와 같은 기존의 프로그래밍 언어에서는 통상 파일 하나에 타입을 하나만 정의한다.

  • 스위프트에서도 보통 파일 하나에 타입 하나만 정의하지만, 때로는 소스파일(Souece File) 하나에 여러 타입(여러 개의 클래스나 구조체, 열거형 등)이나 함수 등 많은 것을 정의하거나 구현할 수도 있다.