규모 있는 어플리케이션을 개발하다보면 객체를 사용하는 입장에서 객체 내부적으로 사용하는 변수나 메서드에 접근함으로써 개발자가 의도하지 못한 오동작을 일으키게 될 수 있습니다.
⇒ 이런 문제로부터 객체의 로직을 보호하기 위해서 적절한 접근 제어자를 통해 외부의 접근을 허용하거나 차단 할 필요가 있습니다.
코드를 작성하는 module이나 source file에서 다른 파일에 있는 코드에 대한 접근을 명시적으로 작성하여 관리 하는 것
⇒ 다른 소스파일 및 모듈의 코드에서, 코드의 일부에 대한 액세스(접근)을 제한하는 것!
엥.. 모듈이랑 소스코드는 머징..?
하나의 프레임워크를 말한다.
우리가 Swift로 코드를 짤 때 필요에 따라 적절한 import 키워드를 추가하죠? 그 import 키워드로 추가되는 것들이 바로 모듈이다~
머릿 속에 생각나는 그거? 그거 맞아요!
바로 우리가 맨날 코드를 작성하기 위해 만드는 파일이 바로 소스파일입니다!
⇒ Swift의 접근 제어 모델을 이렇게 Module과 소스파일의 개념에 기반한답니다~!
Swift에는 총 다섯 개의 접근 레벨을 가지고 있습니다! open-> public -> internal -> file-private -> private으로 갈 수록 더 제한적이라고 생각하면 된다!
선언한 모듈 외에 다른 모듈에서도 접근이 가능하도록 합니다.