iOS) μ ‘κ·Όμ œμ–΄(Access Control)

객체지ν–₯ ν”„λ‘œκ·Έλž˜λ° νŒ¨λŸ¬λ‹€μž„μ—μ„œ μ€λ‹‰ν™”λŠ” μ€‘μš”ν•œ κ°œλ… 쀑 ν•˜λ‚˜μ΄λ‹€. 이λ₯Ό κ΅¬ν˜„ν•˜κΈ° μœ„ν•œ 핡심 κΈ°λŠ₯인 μ ‘κ·Όμ œμ–΄μ— λŒ€ν•΄ μ•Œμ•„λ³΄μž. λ“€μ–΄κ°€κΈ° μ „ μ€λ‹‰ν™”ν•˜λ‹ˆκΉŒ 생각이 λ‚¬λŠ”λ° μΊ‘μŠν™”λž‘ 무엇이 λ‹€λ₯ΌκΉŒ? λͺ¨λ“ˆκ³Ό μ†ŒμŠ€νŒŒμΌμ€ λ¬΄μ—‡μΌκΉŒ? βœ… 은닉화? μΊ‘μŠν™”? 은닉화(hiding) : λ‚΄λΆ€ 데이터와 연산을 μ™ΈλΆ€μ—μ„œ μ ‘κ·Όν•˜μ§€ λͺ»ν•˜λ„둝 은닉(hiding) ν˜Ήμ€ 격리(isolation)μ‹œν‚€λŠ” 것이닀. 객체 μ™ΈλΆ€μ—μ„œ κ°μ²΄λ‚΄μ˜ 데이터 접근을 μ œν•œν•˜κ³  데이터λ₯Ό μˆ˜μ •, μ‘°μž‘ν•˜λŠ” λ™μž‘μ€ 내뢀에 두고 μ ‘κ·Ό(getter),μ„€μ •(setter)ν•˜λŠ” λ©”μ†Œλ“œλ‘œ 데이터λ₯Ό μ–»λŠ”λ‹€. μΊ‘μŠν™”(encapsulation) 캑슐 μ•Œμ•½μ— λΉ„μœ ν•  수 μžˆλ‹€. μ—°κ΄€μžˆλŠ” μ•½νš¨λ₯Ό 가진 약끼리 λͺ¨μ—¬μžˆκ³  κ°μ‹Έμ„œ μ™ΈλΆ€μ—μ„œ 무엇이 μžˆλŠ”μ§€ μ•Œ 수 μ—†λ‹€. 즉, μ—°κ΄€ μžˆλŠ” λ³€μˆ˜μ™€ 함..

iOS 2022. 8. 27. 02:48
iOS) COW(Copy-on-Write)

OptimizationTips λ¬Έμ„œμ—μ„œ Value Type(κ°’ νƒ€μž…)은 COW(Copy-on-Write) μ΅œμ ν™”λ₯Ό μ‚¬μš©ν•œλ‹€κ³  ν•©λ‹ˆλ‹€. COW 에 λŒ€ν•΄μ„œ μ•Œμ•„λ³΄κΈ° 전에 νƒ€μž…μ— λ”°λΌμ„œ μ–΄λ– ν•œ μ‹μœΌλ‘œ λ³΅μ‚¬ν•˜λŠ”μ§€ μ•Œμ•„λ΄…μ‹œλ‹€. βœ… Swift μ—μ„œ κ°’ νƒ€μž…κ³Ό μ°Έμ‘° νƒ€μž…μ˜ 볡사 방식은 λ‹€λ¦…λ‹ˆλ‹€. κ°’ νƒ€μž… : κΉŠμ€ 볡사(deep copy). 데이터 자체λ₯Ό λ³΅μ‚¬ν•˜λŠ” 방법. 독립적인 λ©”λͺ¨λ¦¬λ₯Ό μ°¨μ§€ν•˜κΈ° λ•Œλ¬Έμ— λ³΅μ‚¬ν•œ μΈμŠ€ν„΄μŠ€μ˜ 데이터λ₯Ό 바꾸더라도 원본에 영ν–₯을 주지 μ•ŠμŠ΅λ‹ˆλ‹€. μ°Έμ‘° νƒ€μž… : 얕은 볡사(shallow copy). μ΅œμ†Œν•œμ˜ λ³΅μ‚¬λ§Œ 진행. 볡사λ₯Ό ν•  λ•Œ μ£Όμ†Œκ°’μ„ κ³΅μœ ν•œλ‹€. 원본과 볡사본이 같은 μ£Όμ†Œκ°’μ„ κ³΅μœ ν•˜λ―€λ‘œ ν•œ μͺ½μ˜ 데이터λ₯Ό λ°”κΎΈλ©΄ λ‹€λ₯Έμͺ½μ— 영ν–₯을 μ€λ‹ˆλ‹€. κ°’ νƒ€μž…μ€ μˆ˜μ •ν•˜μ§€ μ•Šμ•„λ„ 맀번 데이터λ₯Ό 볡사할 λ•Œ..

iOS 2022. 8. 25. 00:01
iOS) DispatchQueueμ—μ„œ [weak self] λ₯Ό μ‚¬μš©ν•΄μ•Όλ§Œ ν•˜λ‚˜μš”?

μ’€ 더 근본적인 μ§ˆλ¬Έμ„ 던져보자. βœ… DispatchQueue μ—μ„œ strong reference cycle(κ°•ν•œ μ°Έμ‘° μˆœν™˜) 은 λ°œμƒν•  수 μžˆλŠ”κ°€? λΌλŠ” μ§ˆλ¬Έμ— λŒ€ν•΄μ„œ κ²°λ‘ μ μœΌλ‘œλŠ” λ³€μˆ˜λ‘œ μ €μž₯ν•˜μ§€ μ•ŠμœΌλ©΄ κ°•ν•œ μ°Έμ‘° μˆœν™˜μ΄ λ°œμƒν•˜μ§€ μ•ŠλŠ”λ‹€. 즉, DispatchQueue λ₯Ό μ΄λ‹ˆμ…œλΌμ΄μ €λ₯Ό 톡해 λ§Œλ“€μ–΄μ„œ λ³€μˆ˜μ— μ €μž₯ν•˜μ§€ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” 이상 κ°•ν•œ μ°Έμ‘° μˆœν™˜μ€ λ°œμƒν•˜μ§€ μ•ŠλŠ”λ‹€. DispatchQueue 의 main κ³Ό global 은 각각 νƒ€μž… ν”„λ‘œνΌν‹°μ™€ νƒ€μž… λ©”μ†Œλ“œμ΄κΈ° λ•Œλ¬Έμ— ν˜ΈμΆœν•˜λŠ” μΈμŠ€ν„΄μŠ€κ°€ 레퍼런슀 카운트λ₯Ό μ˜¬λ¦¬μ§€ μ•Šκ³ , κ°•ν•œ μ°Έμ‘° μˆœν™˜μ—μ„œ 자유둜울 수 μžˆλ‹€. βœ… [weak self] λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šμ•„λ„ 될까? κ·Έλ ‡λ‹€λ©΄ [weak self] 와 같은 캑처리슀트λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šμ•„λ„ 될까? κ·ΈλŸΌμ—λ„ λΆˆκ΅¬ν•˜κ³ ..

iOS 2022. 8. 24. 00:01
μ΅œκ·Όμ— 올라온 κΈ€
μ΅œκ·Όμ— 달린 λŒ“κΈ€
κΈ€ 보관함
Β«   2024/11   Β»
일 μ›” ν™” 수 λͺ© 금 ν† 
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
링크
Total
Today
Yesterday