ARC
ARC ๋ชฉ์ฐจ
Swift์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๋ชจ๋ธ
๊ฐ ํ์๊ณผ ์ฐธ์กฐ ํ์์ ๋น๊ต
๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ (์ฝ๋, ๋ฐ์ดํฐ, ํ, ์คํ)
์ธ์ด ๋ณ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฒ
ARC ์๋ ์๋ฆฌ
ARC์ MRC
๊ฐํ ์ฐธ์กฐ ์ฌ์ดํด๊ณผ ๋ฉ๋ชจ๋ฆฌ ๋์
๊ฐํ ์ฐธ์กฐ ์ฌ์ดํด์ด๋?
ํด๊ฒฐ ๋ฐฉ์
์์ ์ฝ๋
Swift์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๋ชจ๋ธ
๋ณต์ต) ๊ฐ ํ์๊ณผ ์ฐธ์กฐ ํ์
๊ฐ ํ์ (Value Type)
Baisic Type, ํํ, ๊ตฌ์กฐ์ฒด, ์ด๊ฑฐํ, ์ปฌ๋ ์ ๋ฑ์ด ํด๋น๋๋ค.
Stack ์์ญ์ ๊ฐ์ด ์ ์ฅ๋๋ค.
ํ์์์๋ ํญ์ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์ด ๋ณต์ฌ๋์ด ์ ๋ฌ๋๋ค.
์ฌ์ฉ์ด ๋๋๋ฉด, Stackํ๋ ์์์ ์์์ ์ ๊ฑฐ๋๋ฏ๋ก ๋ณ๋๋ก ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ํ ํ์ ์๋ค.
์ฐธ์กฐ ํ์ (Reference Type)
ํด๋์ค, ํด๋ก์ ๊ฐ ํด๋น๋๋ค.
ํ์์์ ํญ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์๋ฅผ ์ ๋ฌํ๋ค. (Heap์ ์ฃผ์๋ฅผ Stack์ ์ ์ฅ)
Heap ์์ญ์ ์ค์ ๊ฐ๋ค์ด ์ ์ฅ๋๋ค.
**RC(Reference Counting, ์ฐธ์กฐ ์นด์ดํ )**์ ํตํด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๋ค.
Swift์์ ์ฌ์ฉํ๋ ARC ๋ชจ๋ธ
๋ณต์ต) ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ - ์ฝ๋ฐํ์ค
์ฝ๋์์ญ
CPU๊ฐ ์คํํ ์ ์๋ ์ค์ง์ ๋ช ๋ น์ด๋ค์ด ๋ชจ์ฌ์๋ ๊ณต๊ฐ (๋ชจ๋ ์ฝ๋, ํ๋ก๊ทธ๋จ์ด ์กด์ฌ)
get Only
์ฝ๋์์ญ์ ํ์ํ ๋ฐ์ดํฐ๋ค์ด ๋ฐ์ดํฐ, ํ, ์คํ ์์ญ์ ์ ์ฅ๋์ด์๋ค.
๋ฐ์ดํฐ = ์ ์ญ ๋ณ์, ํ์ ์์ฑ ๋ฑ ๊ณตํต์ผ๋ก ๊ณต์ ๋๋ ๋ฐ์ดํฐ
ํ = ๋์ ํ ๋น์ผ๋ก ํฌ๊ธฐ๊ฐ ํฌ๊ณ , ๊ด๋ฆฌํ ํ์๊ฐ ์๋ ๋ฐ์ดํฐ
์คํ = ํจ์ ์คํ์ ์ํ ์์ ๊ณต๊ฐ
๋ฐ์ดํฐ ์์ญ
๊ณตํต์ผ๋ก ๊ณต์ ํ๊ธฐ ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค.
์ ์ญ ๋ณ์, ํ์ ์์ฑ์ ์ ์ฅํ๋ค.
๋ถ์ด๋นต ํ์ด ์ ์ฅ๋์ด ์๋ค.
์ฑ์ด ์คํ๋๋ ๋์์ ๋ถ๋ณ์ ์ฑ์ง์ ๊ฐ๋๋ค.
ํ ์์ญ
์ธ์คํด์ค๋ฅผ ๋์ ์ผ๋ก ํ ๋นํ๋ค. (๋์ ํ ๋น)
์ผ๋ฐ์ ์ผ๋ก ๊ธด ์๊ฐ๋์ ์ ์ฅํ๋ค.
ํ์ฐ์ ์ผ๋ก ๋๋ฆด ์๋ฐ์ ์๋ค.
๊ด๋ฆฌํ์ง ์์ผ๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋์ ํ์์ด ๋ฐ์ํด ์ฑ์ด ์ข ๋ฃ๋ ์ ์๋ค.
๋ฉ๋ชจ๋ฆฌ ๋์ ํ์(Memory Leak): ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ ๊ฑฐ๋์ง ์๋ ํ์
๊ฐ๋ฐ์๊ฐ ์ง์ ๊ด๋ฆฌํด์ฃผ์ด์ผํ๋ค.
์คํ ์์ญ
ํจ์ ์คํ์ ์ํ ์์์ ๊ณต๊ฐ์ด๋ค.
ํฌ๊ธฐ๊ฐ ์๊ณ ๋น ๋ฅด๊ฒ ์ฌ์ฉํ๊ธฐ ์ํ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋์ด ์๋ค.
์๋์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๊ฐ ์ด๋ฃจ์ด์ง๋ค.
์ธ์ด ๋ณ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฒ
์๋ฐ์ GC (Garbage Collector)
๋ฐํ์์ ํ ์์ญ์ ์๋์ผ๋ก ์ค์บํด์ ์์์ ๊ด๋ฆฌํด์ค
์ค์บํ๋ ์๋๊ฐ ์์ด์ ๋๋ ค์ง! (์ธ์ ์ด๋ ์์ ์ ์ด๋ฃจ์ด์ง๋์ง๋ ์ ์ ์์)
objective - c
์ฐธ์กฐ ์ซ์(RC)๋ฅผ ์ธ๋ ๊ฒ์ ํตํด ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ / ์ปดํ์ผ ์ ๋ฉ๋ชจ๋ฆฌ ํด์ ์์ ๊ฒฐ์
์๋์ผ๋ก ์ซ์ ์ธ๋ ๊ฒ์ด MRC (๊ฐ๋ฐ์๊ฐ ์๋์ผ๋ก ๊ณ์ฐ)
์๋์ผ๋ก ์ซ์ ์ธ๋ ๊ฒ์ด ARC
์ปดํ์ผ๋ฌ๊ฐ ์์์ ์ฝ๋๋ฅผ ์ฌ์ด์ค โ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์์์ ํด์ฃผ๋๊ฒ ์๋๊ณ ์ซ์๋ฅผ ์ ๋๋ก ์ธ ์ค๋ค๋๊ฒ์! ๋ฉ๋ชจ๋ฆฌ ํด์ ๊ฐ ์ ๋๋๋ก, ์ด๋ก ์ ์ ์๊ณ ์ฌ์ฉํด์ผํจ.
Swift
ARC (Automatic RC)
๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ค.
ARC ์๋ ์๋ฆฌ
ํด๋์ค์ ์ธ์คํด์ค๊ฐ ์์ฑ๋ ๋๋ง๋ค ARC๋ ์ธ์คํด์ค์ ๋ํ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ค.
์ธ์คํด์ค, ๊ด๋ จ ํ๋กํผํฐ ๊ฐ, ์ธ์คํด์ค ํ์ ์ ๋ํ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ค.
์ธ์คํด์ค๊ฐ ๋์ด์ ํ์ํ์ง ์์ผ๋ฉด, ARC๋ ์ฌ์ฉ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น ํด์ ํ๋ค. โ ํด๋์ค ์ธ์คํด์ค๊ฐ ํ์ํ์ง ์์ ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฐจ์งํ์ง ์๋๋ค.
์ธ์คํด์ค์ ์ฐธ์กฐ๊ฐ ํ๋๋ผ๋ ์กด์ฌํ๋ค๋ฉด, ARC๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น ํด์ ํ์ง ์๋๋ค. โ ์ด๋ฅผ ์ํด ํด๋์ค ์ธ์คํด์ค๋ฅผ ํ ๋นํ ๋๋ง๋ค ๊ฐํ ์ฐธ์กฐ๋ฅผ ๋ง๋ค๊ฒ ๋๋ค. ์ฐธ์กฐ๋ ํด๋น ์ธ์คํด์ค๋ฅผ ์ ์งํ๊ณ , ๊ฐํ ์ฐธ์กฐ๊ฐ ๋จ์์๋ ํ ํ ๋น ํด์ ๋ฅผ ํ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ ๊ฐํ ์ฐธ์กฐ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
ARC์ MRC
ARC(Automatic RC)
MRC
์ด์ ์ธ์ด๋ค์ MRC์ ๊ฐ์ด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋์ผ๋ก ๊ด๋ฆฌํ๋ค.
ํ๋ ์ธ์ด์ ๊ฒฝ์ฐ ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ค.
์ปดํ์ผ๋ฌ๊ฐ retain() โ release() ํด์ ์ฝ๋๋ฅผ ์ฝ์ ํ๋ค๊ณ ์๊ฐ
์ด์ ์ธ์ด๋ค์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋ ๊ด๋ฆฌํ์ (MRC)
ํ๋ ์ธ์ด์ ๊ฒฝ์ฐ ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๋ชจ๋ธ ์ฌ์ฉ
Swift๋ ์ปดํ์ผ๋ฌ๊ฐ
retain()
ํ ๋น ์ฝ๋ โrelease()
ํด์ ์ฝ๋๋ฅผ ์ฝ์ ํ๋ค๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ ๋ํ ์ค์๋ฅผ ๋ฐฉ์งํ์ฌ ํ๋ก๊ทธ๋จ์ ์์ ์ฑ์ด ์ฆ๊ฐ๋๋ค.
ARC ๊ธฐ๋ฐ
๋๋ฅผ ๊ฐ๋ฆฌํค๋ ์์ ์๊ฐ ์์ผ๋ฉด ํด์ ๋๋ค๋ ์์น์ ๊ฐ์ง๊ณ ์๋ค.
์์ ์ ์ฑ
ํ๋ ์ด์์ ์์ ์๊ฐ ์๋ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ง๋จ
์ฐธ์กฐ ์นด์ดํ
๋๋ฅผ ๊ฐ๋ฆฌํค๋ ์์ ์ ์นด์ดํ
ARC ๋์
์ด๋ป๊ฒ ์๋ ์ฐธ์กฐ ์นด์ดํ ์ด ๋์ํ๋๊ฐ?
์์ ์ธ์ด์ ๊ฒฝ์ฐ ๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ๋ฐ์๋ค์ด ์๋ ๊ด๋ฆฌํ๋ค. (retain, release)
ํ๋์ ์ธ์ด๋ ๋๋ถ๋ถ ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ฉฐ, Swift์ ๊ฒฝ์ฐ ์ปดํ์ผ๋ฌ๊ฐ retain() โ release()์ฝ๋๋ฅผ ์ฝ์ ํ๋ค๊ณ ๋ณด๋ฉด๋๋ค.
ํ๋ก๊ทธ๋จ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ ๋ํ ์์ ์ฑ์ด ์ฆ๊ฐํ๋ค.
์ฐธ์กฐ ์ฌ์ดํด๊ณผ ๋ฉ๋ชจ๋ฆฌ ๋์
๊ฐํ ์ฐธ์กฐ ์ฌ์ดํด์ด๋?
ํด๋์ค์ ์ ์ฅ์์ฑ์ ํน์ ์ธ์คํด์ค๋ฅผ ์๋ก ์ฐธ์กฐํ๋ ๊ฒ์ด๋ค.
Stack ์์ญ์์๋ ์ฌ๋ผ์ก์ง๋ง, RC๊ฐ 1๋ก ์ ์ฅ๋์ด์์ด ๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ ๋ฐ์ํ๋ค.
์ฆ, ๊ฐ์ฒด๊ฐ ์๋ก๋ฅผ ์ฐธ์กฐํ๋ ๊ฐํ ์ฐธ์กฐ ์ฌ์ดํด
๋ณ์์ ์ฐธ์กฐ์ nil์ ํ ๋นํด๋, ํด์ ๊ฐ ๋์ง ์๋ ๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ ๋ฐ์ํ๋ค.
ํด๊ฒฐ ๋ฐฉ์
๊ฐ๋ฆฌํค๋ ์ธ์คํด์ค์ RC์ ์ซ์๋ฅผ ์ฌ๋ผ๊ฐ์ง ์๊ฒ ํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ ์๋ค.
๋ด๊ฐ ๊ฐ๋ฆฌํค๋ ์๋ก์ ๊ฐ์ RC์ ์ ์ฉ์ํค์ง ์๋๋ค.
๊ฐํ ์ฐธ์กฐ ์ฌ์ดํด์ ๋ง๋ค์ง ์๊ณ ๋ ์๋ก๋ฅผ ์ฐธ์กฐํ ์ ์๋ค.
์ฝํ์ฐธ์กฐ (
Weak Reference
)์์ ์์ ๋นํด ๋ณด๋ค ์งง์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ฐ์ง ์ธ์คํด์ค๋ฅผ ์ฐธ์กฐํ ๋ ์ฃผ๋ก ์ฌ์ฉ
(๋ค๋ฅธ ์ธ์คํด์ค์ ์๋ช ์ด ์งง์ ๊ฒฝ์ฐ. ์ฆ, ๋ค๋ฅธ ์ธ์คํด์ค๊ฐ ๋จผ์ ํ ๋น ํด์ ๋ ์ ์์ ๋)
๊ฐ์ด ์์ด์ง๋ฉด nil์ ์๋ ํ ๋น
์ธ์คํด์ค๊ฐ ํ ๋น ํด์ ๋๋ฉด, ์๋์ผ๋ก nil๋ก ์ฝํ ์ฐธ์กฐ๋ก ์ค์ ํ๋ค.
์ฐธ๊ณ ) ์ด ๋๋ ์์ฑ๊ฐ์์๊ฐ ํธ์ถ๋์ง ์๋๋ค.
์์๋ก ์ ์ธํ ์ ์๋ค.
๋ฐํ์์ ๊ฐ์ nil๋ก ๋ณ๊ฒฝํ๋ ๊ฒ์ ํ๋ฝํด์ผํ๊ธฐ ๋๋ฌธ์ ํญ์ ๋ณ์๋ก ์ ์ธ๋๋ค.
๋ฏธ์์ ์ฐธ์กฐ (
Unowned Reference
)RC๋ฅผ ๊ณ ๋ คํ์ฌ ์ฐธ์กฐ ํด์ ์์๋ฅผ ์ฃผ์ํด์ผํจ.
Swift 5.3 ๋ฒ์ ์ดํ, ์ต์ ๋ ์ ์ธ์ด ๊ฐ๋ฅ
๊ฐ์ด ์์ด์ ธ๋ nil ์๋ํ ๋น ํ์ง ์์
์์ ์๋ณด๋ค ์ธ์คํด์ค์ ์๋ช ์ฃผ๊ธฐ๊ฐ ๋ ๊ธธ๊ฑฐ๋, ๊ฐ์ ๊ฒฝ์ฐ ์ฌ์ฉ
ํญ์ A ๊ฐ์ฒด๊ฐ ๋ ์งง๊ฒ ์ด ๋ A๋ ๋น์์ ์ฐธ์กฐ ์ฌ์ฉ
์ฐธ์กฐ๊ฐ ํญ์ ํ ๋น ํด์ ๋์ง ์๋ ์ธ์คํด์ค๋ฅผ ์ฐธ์กฐํ๋ค๊ณ ํ์ ํ๋ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ ๊ฒ
์ธ์คํด์ค๊ฐ ํ ๋น ํด์ ๋ ํ์ ๋ฏธ์์ ์ฐธ์กฐ์ ๊ฐ์ ์ ๊ทผํ๋ ค๊ณ ํ๋ฉด, ๋ฐํ์ ์๋ฌ ๋ฐ์
๊ณตํต์
๊ฐ๋ฆฌํค๋ ์ธ์คํด์ค์ RC๋ฅผ ์ฌ๋ผ๊ฐ์ง ์๊ฒ ํจ (์ธ์คํด์ค ์ฌ์ด์ ๊ฐํ ์ฐธ์กฐ๋ฅผ ์ ๊ฑฐํ๋ค.)
์ธ์คํด์ค์ ์ ๊ทผ์ ๊ฐ๋ฅํ์ง๋ง, ์ธ์คํด์ค๋ฅผ ์ ์ง์ํค๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๋ค.
์ฐจ์ด์
weak : ์์ ์์ ๋นํด ๋ณด๋ค ์งง์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ฐ์ง ์ธ์คํด์ค๋ฅผ ์ฐธ์กฐํ ๋ ์ฌ์ฉํ๋ค.
unwoned : ์์ ์๋ณด๋ค ์ธ์คํด์ค์ ์๋ช ์ฃผ๊ธฐ๊ฐ ๋ ๊ธธ๊ฑฐ๋ ๊ฐ์ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ค.
โ ์ค์ ๋ก๋ weak๋ฅผ ๋ ๋ง์ด ์ฌ์ฉํ๋ค. (๋น์์ ์ฐธ์กฐ๋ ํ๋ฒ ๋ ๊ณ ๋ คํด์ผํ๋๊น)
unowned
๊ฐ ์กฐ๊ธ ๋ ๋น ๋ฆ!์ค์ ๋ก๋ unowned๋ ์ฝ๋๋ฅผ ๋ ์์ฑํด์ผํ๊ธฐ๋๋ฌธ์ weak์ ๋ ๋ง์ด ์ฌ์ฉํ๊ธฐ๋ ํจ
์์ ์ฝ๋
์ฝํ์ฐธ์กฐ
์ฝํ์ฐธ์กฐ๋ ์ฐธ์กฐํ๊ณ ์๋ ์ธ์คํด์ค๊ฐ ์ฌ๋ผ์ง๋ฉด, ํด๋น ๋ณ์๋ฅผ nil์ ์๋์ผ๋ก ํ ๋นํ๋ค.
๋น์์ ์ฐธ์กฐ (Unowned reference)
๋น์์ ์ฐธ์กฐ์ ๊ฒฝ์ฐ, ์ฐธ์กฐํ๊ณ ์๋ ์ธ์คํด์ค๊ฐ ์ฌ๋ผ์ง๋ฉด nil๋ก ์ด๊ธฐํ๋์ง ์์.
โ nil๋ก ํ ๋นํ๋ ์ฝ๋๋ฅผ ์ถ๊ฐํด์ผํ๋ค. (์ ํ๋ฉด ์ฑ์ด ์ข ๋ฃ๋จ)
์ฐธ์กฐํ๊ณ ์๋ ์ธ์คํด์ค๊ฐ ์ฌ๋ผ์ง๋ฉด, nil๋ก ์ด๊ธฐํ๋์ง ์๋๋ค.
๊ฐ์ฒด ๋ด์์ ํด๋ก์ ์ ์ฌ์ฉ
๐ก (์์ฝ) ํด๋ก์ ์ ๋ํ ๊ฐํ ์ฐธ์กฐ ์ฌ์ดํด
ํด๋์ค ์ธ์คํด์ค ์์ฑ์ ํด๋ก์ ํ ๋น ํ, ํด๋ก์ ์์ ์ธ์คํด์ค ์บก์ฒํ๋ ๊ฒฝ์ฐ ๋ฐ์
โ self๋ฅผ ์บก์ฒํ์ฌ ๊ฐํ ์ฐธ์กฐ ์ฌ์ดํด์ ์์ฑํ๊ฒ ๋๋ค.
โ ํด๋ก์ ๋ ํด๋์ค์ ๊ฐ์ ์ฐธ์กฐ ํ์ ์ด๊ธฐ ๋๋ฌธ์ด๋ค!!
์ผ๋ฐ์ ์ธ ํด๋ก์ ์ ์ฌ์ฉ
ํด๋ก์ ๋ด์์ ๊ฐ์ฒด์ ์์ฑ ๋ฐ ๋ฉ์๋์ ์ ๊ทผํ ๋
**self**
ํค์๋ ๋ฐ๋์ ์ฌ์ฉํด์ผํ๋ค.๊ฐํ ์ฐธ์กฐ๋ฅผ ํ๊ณ ์๋ค๋ ๊ฒ์ ํ์ํ๊ธฐ ์ํด์์ด๋ค.
๊ตฌ์กฐ์ฒด์ ๊ฒฝ์ฐ, self ์๋ต์ด ๊ฐ๋ฅํ๋ค.
Swift5.3 ์ดํ [self]๋ก ํ ์ ์์
์ฐ๋ ๋๋ฅผ ์ฌ๋ฌ๊ฐ ์ฐ๋ ๊ฒฝ์ฐ, ์๋ก์ด Stack์ ๋ง๋ค๊ฒ ๋๋ค.
์ฐ๊ด๋ ์ผ์ ์ฒ๋ฆฌํ ์ ์๋ ๊ฒ๋ค์ Stack ๋ด์์๋ง ์กด์ฌ! ๊ฐ ์ฐ๋ ๋ ๋ณ Stack
๊ทธ๋ฐ๋ฐ, code, data, heap์ Stack๋ผ๋ฆฌ ๋ค๊ฐ์ด ๊ณต์ ํ๋ค!
ํด๋ก์ ์ ์บก์ฒ๋ฆฌ์คํธ - ๊ฐํ ์ฐธ์กฐ ์ฌ์ดํด ํด๊ฒฐ (strong reference cycle)
ํด๋ก์ ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์บก์ฒ ํ์์ด ๋ฐ์ํ๋ค.
ํด๋ก์ ์ ์ธ์คํด์ค๊ฐ ๊ฐํ ์ฐธ์กฐ๋ก, ์๋ก ๊ฐ๋ฆฌํค๊ณ ์๋ ๊ฒ = Strong Reference Cycle
๋ฉ๋ชจ๋ฆฌ์์ ์ ์์ ์ผ๋ก ํด์ ๋์ง ์๊ณ , ๋ฉ๋ชจ๋ฆฌ ๋์ ํ์์ด ๋ฐ์ํ๋ค.
์บก์ฒ ๋ฆฌ์คํธ ๋ด์์ ์ฝํ ์ฐธ์กฐ, ๋๋ ๋น์์ ์ฐธ์กฐ๋ฅผ ์ ์ธํด์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
์ฝ๋ ๊ฐ ๊ด๊ณ์ ๋ฐ๋ผ ์ ํํด์ผํ๋ค. (๋ณดํต weak๊ณผ ์ฌ์ฉํ๋ค)
Last updated