iOS) MVVM + RxSwift, RxCocoa 적용

βœ… RxSwift λŠ” mvvm κ³Ό ν•¨κ»˜ μ“°κΈ°λ‘œ 유λͺ…ν•œλ° κ·Έ 이유λ₯Ό μ•Œμ•„λ³΄μž λ¦¬μ•‘ν‹°λΈŒ ν”„λ‘œκ·Έλž˜λ°μ€ μ½”λ“œ μ—…λ°μ΄νŠΈκ°€ 변경사항을 μžλ™μœΌλ‘œ λ°˜μ˜ν•˜λ„λ‘ μ„€μ •ν•  수 μžˆλ‹€λ©΄ μ’‹κ² λ‹€λŠ” μƒκ°μ—μ„œ μΆœλ°œν•œ κ²ƒμž…λ‹ˆλ‹€. κ·Έλž˜μ„œ 데이터 슀트림과 λ³€κ²½ μ‚¬ν•­μ˜ μ „νŒŒλ₯Ό μ€‘μ‹¬μœΌλ‘œ ν•˜λŠ” 비동기 ν”„λ‘œκ·Έλž˜λ°μ΄λΌκ³  정리할 수 μžˆμŠ΅λ‹ˆλ‹€. 이처럼 λ¦¬μ•‘ν‹°λΈŒ ν”„λ‘œκ·Έλž˜λ°μ„ μ‚¬μš©ν•˜λŠ” μ΄μœ λŠ” νŠΉμ • μƒνƒœλ₯Ό μœ μ§€ν•˜λŠ” 것보닀 λ‘œμ§μ— 쑰금 더 집쀑할 수 있기 λ•Œλ¬Έμž…λ‹ˆλ‹€. 이런 λ¦¬μ•‘ν‹°λΈŒ ν”„λ‘œκ·Έλž˜λ°μ˜ μ‚¬μš©μ„ ν•  수 μžˆλŠ” μ˜€ν”ˆ μ†ŒμŠ€ λΌμ΄λΈŒλŸ¬λ¦¬κ°€ ReactiveX 이고, Swift 와 ν•¨κ»˜ μ‚¬μš©ν•  수 μžˆλŠ” 것이 λ°”λ‘œ RxSwift μž…λ‹ˆλ‹€. 그리고 RxSwift λŠ” mvvm νŒ¨ν„΄μ—μ„œ 데이터 λ°”μΈλ”©μ˜ λŒ€ν‘œμ μΈ λ°©λ²•μœΌλ‘œ μ†Œκ°œλ©λ‹ˆλ‹€. mvvm νŒ¨ν„΄μ—μ„œλŠ” view model 을..

iOS/RxSwift 2023. 8. 31. 21:47
iOS) κ°•ν•œ μˆœν™˜ μ°Έμ‘°(Strong Reference Cycle)λŠ” μ–΄λ–€ κ²½μš°μ— λ°œμƒν•˜λ‚˜μš”?

"μΈμŠ€ν„΄μŠ€κ°€ 계속 μ‚¬μš©λ˜μ•Ό ν•˜κΈ° λ•Œλ¬Έμ— λ©”λͺ¨λ¦¬μ— λ‚¨μ•„μžˆμ–΄μ•Ό ν•œλ‹€." λΌλŠ” λͺ…뢄을 μ£ΌλŠ” 것이 Strong Reference(κ°•ν•œ μ°Έμ‘°)μž…λ‹ˆλ‹€. 레퍼런슀 μΉ΄μš΄νŠΈκ°€ 증가될 λ•ŒλŠ” κ°•ν•œ 참쑰인 κ²½μš°μ— ν•΄λ‹Ήν•©λ‹ˆλ‹€. 이 κ°•ν•œ μ°Έμ‘°λŠ” λ³„λ„μ˜ μ‹λ³„μžλ₯Ό λͺ…μ‹œν•˜μ§€ μ•ŠμœΌλ©΄ κ°•ν•œ 참쑰둜 μ—¬κ²¨μ§‘λ‹ˆλ‹€. μ΄λ•Œ μ–΄λ–€ 상황에 λŒ€ν•΄μ„œ 클래슀의 μΈμŠ€ν„΄μŠ€μ˜ μ‚¬μš©μ΄ λλ‚¬μŒμ—λ„ λΆˆκ΅¬ν•˜κ³  레퍼런슀 μΉ΄μš΄νŠΈκ°€ 0이 λ˜μ§€ μ•Šμ•„ λ©”λͺ¨λ¦¬μ—μ„œ 사라지지 μ•ŠλŠ” memory leak 이 λ°œμƒν•˜λŠ” 것을 κ°•ν•œμ°Έμ‘° μˆœν™˜(strong reference cycle)이닀. μ–Έμ œ λ°œμƒν•˜λ‚˜μš”? 두 개 μ΄μƒμ˜ μΈμŠ€ν„΄μŠ€κ°€ μ„œλ‘œλ₯Ό κ°•ν•˜κ²Œ μ°Έμ‘°ν•˜μ—¬ λ°œμƒν•˜κ²Œ λœλ‹€. λ³€μˆ˜μ— μΈμŠ€ν„΄μŠ€λ₯Ό ν• λ‹Ήν•˜λ©° μƒκΈ°λŠ” 레퍼런슀 카운트 이외에 μ„œλ‘œκ°€ μ°Έμ‘°ν•˜λ©΄μ„œ 레퍼런슀 μΉ΄μš΄νŠΈκ°€ μΆ”κ°€λ‘œ 증가. nil 을 ν• ..

iOS 2023. 7. 12. 18:29
μ΅œκ·Όμ— 올라온 κΈ€
μ΅œκ·Όμ— 달린 λŒ“κΈ€
κΈ€ 보관함
Β«   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