접근제한자

  • 소스 파일 및 모듈의 코드의 일부에 대한 접근을 제한하고자 할 때 사용합니다.
  • 명시적으로 코드의 세부적 구현은 숨길 수 있고 기본 인터페이스 지정이 가능합니다.
  • 접근 제어자의 사용을 통해 코드의 상세 내용을 숨기고 코드의 불필요한 외부 노출을 명시적으로 제한 -> 은닉화의 특성을 구현할 수 있습니다.
  • 은닉화를 사용해 접근하면 안 되는 코드로 접근해서 사용해 의도하지 않은 오류를 방지할 수 있습니다.
  • 접근 제어자는 모듈과 소스 코드 기준으로 접근 수준을 판단합니다.

모듈

  • import를 통해 우리의 프로젝트에서 사용할 수 있는 형태의 코드 묶음 단위를 말합니다.
  • project도 하나의 모듈로 볼 수 있습니다.
  • 프레임워크 하나를 하나의 모듈로 볼 수 있습니다.
  • open, public을 통해 우리의 프로젝트에 접근 가능합니다.

Source File

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

접근 레벨

  • Open: 개방 접근 수준
    • open으로 선언한 외부 모듈의 코드는 우리의 프로젝트에서 사용 가능합니다.
    • 클래스에서만 사용 가능하고, open으로 클래스를 선언한 경우 다른 모듈에서 해당 클래스를 오버라이딩 할 수 있습니다.
  • Public: 공개 접근 수준
    • pulbic으로 선언한 외부 모듈의 코드는 우리의 프로젝트에서 사용 불가능합니다.
    • pulbic으로 선언한 경우 상속 X 오버라이딩 X
  • Internal: 내부 접근 수준
    • 별도의 접근 제어를 선언하지 않으면 default로 internal로 설정됩니다.
    • 같은 모듈 내에서는 어떤 파일에서도 코드에 대한 접근이 가능 + 클래스 상속도 가능합니다.
  • FilePrivate: 파일 내부 접근 수준
    • 하나의 스위프트 파일 내부에서만 접근 가능한 접근 레벨입니다.
    • 다른 스위프트에서 사용시 오류 발생
  • Private: 비공개 접근 수준
    • 같은 블록내에서만 접근이 가능합니다.

+ Recent posts