ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Access Control (μ ‘κ·Ό μ œμ–΄)
    iOS/🟠 Swift 2021. 2. 17. 19:05

    μ ‘κ·Όμ œμ–΄λŠ” '파일 κ°„ λ˜λŠ” λͺ¨λ“ˆ 간에 접근을 μ œν•œν•  수 μžˆλŠ” κΈ°λŠ₯' μž…λ‹ˆλ‹€.

     

    import ν•œ λͺ¨λ“ˆμ—μ„œ μ ‘κ·Όν•  수 μžˆλŠ” κΈ°λŠ₯을 μ œν•œν•˜λŠ” μš©λ„λ‘œ μ‚¬μš©λ©λ‹ˆλ‹€.

     

    μŠ€μœ„ν”„νŠΈμ˜ μ ‘κ·Όμ œμ–΄λŠ” λͺ¨λ“ˆκ³Ό μ†ŒμŠ€νŒŒμΌμ„ 기반으둜 μ„€κ³„λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

     

    λͺ¨λ“ˆμ€ 배포할 μ½”λ“œμ˜ 묢음 λ‹¨μœ„ μž…λ‹ˆλ‹€.

    톡상 ν•˜λ‚˜μ˜ ν”„λ ˆμž„μ›Œν¬, 라이브러리, λ˜λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ λͺ¨λ“ˆ λ‹¨μœ„κ°€ λ©λ‹ˆλ‹€.

     

    μ†ŒμŠ€νŒŒμΌμ€ ν•˜λ‚˜μ˜ μŠ€μœ„ν”„νŠΈ μ†ŒμŠ€μ½”λ“œ νŒŒμΌμ„ μ˜λ―Έν•©λ‹ˆλ‹€.

     


    ν‚€μ›Œλ“œμ— 따라 μ ‘κ·Όν•  수 μžˆλŠ” λ²”μœ„κ°€ λ‹¬λΌμ§€λŠ”λ°, 4κ°€μ§€λ‘œ λ‚˜λˆŒ 수 μžˆμŠ΅λ‹ˆλ‹€.

     

    1. μžμ‹ μ΄ κ΅¬ν˜„λœ κΈ°λŠ₯ μ •μ˜ λ‚΄λΆ€

    2. μžμ‹ μ΄ κ΅¬ν˜„λœ 파일 λ‚΄λΆ€

    3. μžμ‹ μ΄ κ΅¬ν˜„λœ 파일이 ν¬ν•¨λœ λͺ¨λ“ˆ λ‚΄λΆ€

    4. λͺ¨λ“ˆμ„ importν•œ 또 λ‹€λ₯Έ λͺ¨λ“ˆ λ“±μ˜ μ™ΈλΆ€


     

    ν‚€μ›Œλ“œ λ²”μœ„ λΉ„κ³ 
    open λͺ¨λ“ˆ μ™ΈλΆ€κΉŒμ§€ κ°€λŠ₯ ν΄λž˜μŠ€μ—μ„œλ§Œ μ‚¬μš© κ°€λŠ₯
    public λͺ¨λ“ˆ μ™ΈλΆ€κΉŒμ§€ κ°€λŠ₯  
    Internal λͺ¨λ“ˆ λ‚΄λΆ€  
    fileprivate 파일 λ‚΄λΆ€  
    private κΈ°λŠ₯ μ •μ˜ λ‚΄λΆ€  

     

     

    open

    ν΄λž˜μŠ€μ—μ„œλ§Œ μ‚¬μš© κ°€λŠ₯ν•œ μ ‘κ·Ό μ œμ–΄ ν‚€μ›Œλ“œ μž…λ‹ˆλ‹€.

    open μ ‘κ·Ό μˆ˜μ€€μœΌλ‘œ μ§€μ •λœ ν΄λž˜μŠ€λŠ” μžμ‹ μ΄ κ΅¬ν˜„λœ λͺ¨λ“ˆ λ°–μ˜ λ‹€λ₯Έ λͺ¨λ“ˆμ—μ„œ 상속할 수 있고, μž¬μ •μ˜ 될 수 μžˆμŠ΅λ‹ˆλ‹€.

     

    internal

    μ ‘κ·Ό μˆ˜μ€€μ„ λͺ…μ‹œμ  (explicitly) 으둜 μ„€μ •ν•˜μ§€ μ•Šμ•˜λ‹€λ©΄, μ•”μ‹œμ  (implicitly) 으둜 μžλ™μœΌλ‘œ μ„€μ •λ˜λŠ” μ ‘κ·Ό μˆ˜μ€€μž…λ‹ˆλ‹€.

    internal 둜 μ„€μ •λœ κ°œμ²΄λŠ”, κ·Έ λͺ¨λ“ˆμ„ κ°€μ Έλ‹€ μ“°λŠ” λ‹€λ₯Έ λͺ¨λ“ˆμ—μ„œλŠ” μ ‘κ·Όν•  수 μ—†μŠ΅λ‹ˆλ‹€.

     

    private

    κ°€μž₯ μ œν•œμ μΈ λ²”μœ„λ‘œ, κ·Έ κΈ°λŠ₯을 μ •μ˜ν•˜κ³  κ΅¬ν˜„ν•œ λ²”μœ„ λ‚΄μ—μ„œλ§Œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

     

    λ²”μœ„λΌλŠ” 단어λ₯Ό λΈ”λ‘μœΌλ‘œ μΉ˜ν™˜ν•΄μ„œ 이해해도 무리가 μ—†λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

     

    μ •μ˜λœ 블둝 이외에 extension μ—μ„œκΉŒμ§€λ§Œ 접근이 κ°€λŠ₯ν•©λ‹ˆλ‹€.

     

     

    λ‚˜λ¨Έμ§€ 두 ν‚€μ›Œλ“œ ( fileprivate, public ) λŠ” μœ„μ˜ ν‘œλ§ŒμœΌλ‘œλ„ μΆ©λΆ„νžˆ 이해할 수 있기 λ•Œλ¬Έμ— μƒλž΅ν•˜μ˜€μŠ΅λ‹ˆλ‹€.


     

    μ°Έκ³  사항

    'μƒμœ„ μš”μ†Œλ³΄λ‹€ ν•˜μœ„μš”μ†Œκ°€ 더 높은 μ ‘κ·Ό μˆ˜μ€€μ„ κ°€μ§ˆ 수 μ—†μŠ΅λ‹ˆλ‹€.'

     

    예λ₯Ό λ“€μ–΄, private 으둜 μ •μ˜λœ 클래슀 λ‚΄λΆ€μ—μ„œ fileprivate μ΄μƒμ˜ 접근성을 가진 μ ‘κ·Όμ œμ–΄λ₯Ό μ •μ˜ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

    μ—„λ°€νžˆ μ΄μ•ΌκΈ°ν•˜λ©΄ 선언은 κ°€λŠ₯ν•˜μ§€λ§Œ, 같은 private 으둜 μ·¨κΈ‰λ©λ‹ˆλ‹€.

     

     

     

    끝!


     

    λŒ“κΈ€

μ–΄μ œλ³΄λ‹€ λ°œμ „ν•œ λ‚˜