fileprivate let loginButton = UIButton().then {}
위 코드는 제가 프로젝트를 하면서 로그인 버튼을 만들때 쓴 코드 입니다.
저 코드에서 접근제어자는 fileprivate인데.. 습관적으로 적어서인지.. 정확히 private와 fileprivate의 차이를 알지 못하여서 공부해 보았습니다.
Swift에서는 5개의 접근레벨을 제공하는데요
Open
은 다른 모듈에서 오버라이딩과 서브클래싱이 가능하지만 Public
은 불가능 합니다.Internal
로 간주됩니다. 해당 모듈 전체에서 사용가능합니다.{}
안에서만 사용이 가능합니다.음.... 이해가 잘 되지 않는데 글만 잘 읽어 본다면
Open
> Public
> Internal
> Fileprivate
> Private
순으로 개방(?)적인 것을 알 수 있습니다ㅏ
여기서 저희가 자세히 볼 것은 Fileprivate
와 Private
이죠
이제 정말 다왔는데
위 말이 너무 어렵죠...조금 쉬운 말로 한번 바꾼다면 어떻게 할 수 있을까요..?
일단 "Fileprivate
는 같은 파일 안에서만 사용가능하다!" 라고 하면 조금 쉽죠
그럼 "Private
는 같은 코드블럭 안에서만 사용가능하다!" 라고 생각하면 될거 같네요...
오늘은 이렇게 Fileprivate
와 Private
의 차이점을 살펴봤는데...
이해가 쉽게 되지는 않네요... 나중에 꼭 몇번 더 봐야겠습니다..
개인적으로 생각을 정리하며 쓴 글이다보니 실수가 많을거 같은데 글을 읽다가 아 이건 틀렸는데?
싶은 것이 있다면 댓글로 꼭 알려주시면 감사하겠습니다!
참고
Swift Language Guide,
[Swift] AccessControl (Bill Kim's Life),
Swift) AccessControl (Zedd0202)
너무 유익하고 좋아용 자주 읽을게용!!