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)
너무 유익하고 좋아용 자주 읽을게용!!