"์•ˆ๋…•ํ•˜์„ธ์š”! ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘์— ๋Œ€ํ•œ ๋˜ ๋‹ค๋ฅธ ์ž‘์€ ๊ตํ›ˆ์„ ์ฃผ๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค."

์ด๋ฏธ ์•Œ๊ณ  ์žˆ๋“ฏ์ด Java ๋จธ์‹  ์ž์ฒด๋Š” ๊ฐ์ฒด๊ฐ€ ๋ถˆํ•„์š”ํ•ด์ง€๋ฉด ์ด๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜์—ฌ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

"๊ทธ๋ž˜. ๋„ˆ๋ž‘ ๋ฆฌ์‹œ๊ฐ€ ์•„๊นŒ ์–˜๊ธฐํ•ด์คฌ์–ด. ์ž์„ธํ•œ ๊ฑด ๊ธฐ์–ต์ด ์•ˆ ๋‚˜."

"์•Œ์•˜์–ด. ๊ทธ๋Ÿผ ๋‹ค์‹œ ํ•ด๋ณด์ž."

๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜ - 1

"๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜์ž๋งˆ์ž JVM์ด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์ฒด์— ๋Œ€ํ•œ ๊ด€์‹ฌ์€ ์ฐธ์กฐ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋‹ˆํ„ฐ๋ง๋ฉ๋‹ˆ๋‹ค.  ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘, ์ฆ‰ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๋ณ€์ˆ˜๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•ด์ œ๋˜๋Š” ์ ˆ์ฐจ ์ค‘์— ๊ฐ์ฒด๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์ฒด. "

"๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ๊ฐ€ ๋ฌด์—‡์ด๋ฉฐ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ์กฐ๊ธˆ ๋ง์”€ํ•ด ์ฃผ์‹ญ์‹œ์˜ค."

"์ข‹์Šต๋‹ˆ๋‹ค. ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘์€ ๊ธฐ๋ณธ ์Šค๋ ˆ๋“œ์—์„œ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. 5๋ถ„๋งˆ๋‹ค ๋˜๋Š” ๋” ์ž์ฃผ. ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์œผ๋ฉด Java ์‹œ์Šคํ…œ์ด ๋ชจ๋“  ์Šค๋ ˆ๋“œ๋ฅผ ์ผ์‹œ ์ค‘๋‹จํ•˜๊ณ  ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฐœ์ฒด๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค."

"ํ•˜์ง€๋งŒ ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ์ด์ œ ํฌ๊ธฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฐจ์„ธ๋Œ€ ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ๋Š” ๋ฐฐํ›„์—์„œ ๋ณ„๋„์˜ ์Šค๋ ˆ๋“œ์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ๋™์‹œ ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค."

"๊ทธ๋ ‡๊ตฐ์š”. ๊ฐœ์ฒด ์‚ญ์ œ ์—ฌ๋ถ€๋Š” ์ •ํ™•ํžˆ ์–ด๋–ป๊ฒŒ ๊ฒฐ์ •๋˜๋Š” ๊ฒ๋‹ˆ๊นŒ?"

"๊ฐ์ฒด์— ๋Œ€ํ•œ ์ฐธ์กฐ ์ˆ˜๋ฅผ ์„ธ๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋Š” ๊ทธ๋‹ค์ง€ ํšจ๊ณผ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์„œ๋กœ๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๊ฐ์ฒด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ๋‹ค๋ฅธ ๊ฐ์ฒด๋Š” ์ฐธ์กฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค."

"๊ทธ๋ž˜์„œ Java๋Š” ๋‹ค๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ทจํ•ฉ๋‹ˆ๋‹ค.  Java๋Š” ๊ฐ์ฒด๋ฅผ ๋„๋‹ฌ ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด์™€ ๋„๋‹ฌ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด๋กœ ๋‚˜๋ˆ•๋‹ˆ๋‹ค.  ๊ฐ์ฒด๋Š” ๋‹ค๋ฅธ ๋„๋‹ฌ ๊ฐ€๋Šฅํ•œ(์‚ด์•„ ์žˆ๋Š”) ๊ฐ์ฒด๊ฐ€ ์ฐธ์กฐํ•˜๋Š” ๊ฒฝ์šฐ ๋„๋‹ฌ ๊ฐ€๋Šฅํ•œ(ํ™œ์„ฑ) ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋„๋‹ฌ ๊ฐ€๋Šฅ์„ฑ์€ ์Šค๋ ˆ๋“œ์—์„œ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ์‹คํ–‰ ์ค‘์ธ ์Šค๋ ˆ๋“œ๋Š” ํ•ญ์ƒ ๋„๋‹ฌ ๊ฐ€๋Šฅํ•œ(ํ™œ์„ฑ) ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค. , ์•„๋ฌด๋„ ์–ธ๊ธ‰ํ•˜์ง€ ์•Š๋”๋ผ๋„."

"์ข‹์•„. ์•Œ ๊ฒƒ ๊ฐ™์•„."

"๋ถˆํ•„์š”ํ•œ ๊ฐ์ฒด๋ฅผ ์‚ญ์ œํ•˜๋Š” ์‹ค์ œ ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘์€ ์–ด๋–ป๊ฒŒ ์ด๋ฃจ์–ด์ง€๋‚˜์š”?"

"๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. Java์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๊ด€๋ก€์— ๋”ฐ๋ผ ๋‘ ๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋‰˜๋ฉฐ ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘ ์‹œ๊ฐ„์ด ๋˜๋ฉด ๋ชจ๋“  ์‚ด์•„ ์žˆ๋Š”(๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š”) ๊ฐœ์ฒด๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„์œผ๋กœ ๋ณต์‚ฌ๋˜๊ณ  ์ด์ „ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋ชจ๋‘ ํ•ด์ œ๋ฉ๋‹ˆ๋‹ค."

"ํฅ๋ฏธ๋กœ์šด ์ ‘๊ทผ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์ฐธ์กฐ๋ฅผ ์„ธ์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค. ๋„๋‹ฌ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ฐœ์ฒด๋ฅผ ๋ณต์‚ฌํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ๋ชจ๋‘ ์“ฐ๋ ˆ๊ธฐ์ž…๋‹ˆ๋‹ค."

"๊ทธ๊ฒƒ๋ณด๋‹ค ์กฐ๊ธˆ ๋” ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค. Java ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ๊ฐ์ฒด๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‘ ๊ฐ€์ง€ ๋ฒ”์ฃผ๋กœ ๋‚˜๋‰œ๋‹ค๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜๋ช…์ด ๊ธด(ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋Š” ์ „์ฒด ์‹œ๊ฐ„ ๋™์•ˆ ์กด์žฌ) ์ˆ˜๋ช…์ด ์งง์€(๋ฉ”์„œ๋“œ์—์„œ ํ•„์š”ํ•˜๊ณ  ยซ๋กœ์ปฌ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•จ) ยป ์ž‘์—…)."

"์žฅ์ˆ˜ ๊ฐœ์ฒด๋ฅผ ์ˆ˜๋ช…์ด ์งง์€ ๊ฐœ์ฒด์™€ ๋ถ„๋ฆฌํ•˜์—ฌ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ๋” ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ๊ฐœ์ฒด์˜ ์ˆ˜๋ช…์„ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋งˆ๋ จํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค."

"๊ทธ๋ž˜์„œ ๋ชจ๋“  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ยซ์„ธ๋Œ€ยป๋กœ ๋‚˜๋ˆ„์—ˆ์Šต๋‹ˆ๋‹ค. 1์„ธ๋Œ€ ๊ฐ์ฒด, 2์„ธ๋Œ€ ๊ฐ์ฒด ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋น„์›Œ์งˆ ๋•Œ๋งˆ๋‹ค ์ƒ์„ฑ ์นด์šดํ„ฐ๊ฐ€ 1์”ฉ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ํŠน์ • ๊ฐ์ฒด๊ฐ€ ์—ฌ๋Ÿฌ ์„ธ๋Œ€์— ์กด์žฌํ•˜๋ฉด ์ˆ˜๋ช…์ด ๊ธด ๊ฒƒ์œผ๋กœ ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค."

"์˜ค๋Š˜๋‚  ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๋Š” Java์˜ ๋งค์šฐ ๋ณต์žกํ•˜๊ณ  ํšจ์œจ์ ์ธ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ๋งŽ์€ ๋ถ€๋ถ„์ด ์ถ”์ธกํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํœด๋ฆฌ์Šคํ‹ฑ ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ ์‚ฌ์šฉ์ž์˜ ๋ง์„ ๋“ฃ์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค."

"์˜๋ฏธ?"

"Java์—๋Š” System.gc () ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ( GC ) ๊ฐœ์ฒด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค ."

"๋˜ํ•œ System.runFinalization()์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ญ์ œํ•  ๊ฐœ์ฒด์˜ finalize ๋ฉ”์„œ๋“œ๋ฅผ ๊ฐ•์ œ๋กœ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‚ฌ์‹ค Java ์„ค๋ช…์„œ์— ๋”ฐ๋ฅด๋ฉด ์ด๊ฒƒ์€ ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘์ด ์‹œ์ž‘๋˜๊ฑฐ๋‚˜ finalize ( ) ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.  ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ๋Š” ์–ธ์ œ ํ˜ธ์ถœํ• ์ง€, ๋ฌด์—‡์„ ํ˜ธ์ถœํ• ์ง€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. "

"์šฐ์™€! ์•Œ์•„์ค˜์„œ ๋ฐ˜๊ฐ€์›Œ."

"๊ทธ๋Ÿฌ๋‚˜ ๋” ๋งŽ์€ ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์•„์‹œ๋‹ค์‹œํ”ผ Java์—์„œ ์ผ๋ถ€ ๊ฐœ์ฒด๋Š” ๋‹ค๋ฅธ ๊ฐœ์ฒด๋ฅผ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค. ์ด ์ฐธ์กฐ ๋„คํŠธ์›Œํฌ๋Š” ๊ฐœ์ฒด๋ฅผ ์‚ญ์ œํ•ด์•ผ ํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค."

"๊ทธ๋ฆฌ๊ณ  ๋ณด์„ธ์š”. Java์—๋Š” ์ด ํ”„๋กœ์„ธ์Šค์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ๋Š” ํŠน์ˆ˜ ์ฐธ์กฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠน์ˆ˜ ๋ž˜ํผ ํด๋ž˜์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค."

" SoftReference  ๋Š” ์†Œํ”„ํŠธ ์ฐธ์กฐ์ž…๋‹ˆ๋‹ค."

" WeakReference  ๋Š” ์•ฝํ•œ ์ฐธ์กฐ์ž…๋‹ˆ๋‹ค."

" PhantomReference ๋Š” ํŒฌํ…€ ์ฐธ์กฐ์ž…๋‹ˆ๋‹ค."

"์–ด... ์ด๊ฑด ๋‚ด๋ถ€ ํด๋ž˜์Šค, ์ค‘์ฒฉ ํด๋ž˜์Šค, ์ค‘์ฒฉ ์ต๋ช… ํด๋ž˜์Šค, ๋กœ์ปฌ ํด๋ž˜์Šค๊ฐ€ ์ƒ๊ฐ๋‚˜๋„ค์š”. ์ด๋ฆ„์€ ๋‹ค๋ฅด์ง€๋งŒ ๋ฌด์—‡์„ ์œ„ํ•œ ๊ฒƒ์ธ์ง€ ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค."

"๋งํ•ด๋ด, ์•„๋ฏธ๊ณ , ๋‹น์‹ ์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๋˜์—ˆ๋‹ค. ์ด์ œ ๋‹น์‹ ์€ ํด๋ž˜์Šค ์ด๋ฆ„ ๋•Œ๋ฌธ์— ํ™”๋ฅผ ๋‚ด๋ฉฐ ๋งํ•˜๊ธฐ๋ฅผ "๊ทธ๊ฒƒ๋“ค์€ ์ •๋ณด๊ฐ€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š๊ณ , ํ•˜๋‚˜์˜ ์ด๋ฆ„(!)์œผ๋กœ ์ด ํด๋ž˜์Šค๊ฐ€ ๋ฌด์—‡์„ ํ•˜๋Š”์ง€, ์–ด๋–ป๊ฒŒ, ๊ทธ๋ฆฌ๊ณ  ์™œ"."

"์™€์šฐ. ๋ˆˆ์น˜์ฑ„์ง€๋„ ๋ชปํ–ˆ๋Š”๋ฐ. ๋„ˆ๋ฌด ๋ป”ํ•˜์ž–์•„."

"์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. SoftReferences์— ๋Œ€ํ•ด ๋ง์”€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค."

"์ด๋Ÿฌํ•œ ์ฐธ์กฐ๋Š” ์บ์‹ฑ์„ ์œ„ํ•ด ํŠน๋ณ„ํžˆ ์„ค๊ณ„๋˜์—ˆ์ง€๋งŒ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ์žฌ๋Ÿ‰์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค."

"๋‹ค์Œ์€ ์ด๋Ÿฌํ•œ ์ฐธ์กฐ์˜ ์˜ˆ์ž…๋‹ˆ๋‹ค."

์˜ˆ
// Create a Cat object
Cat cat = new Cat();

// Create a soft reference to a Cat object
SoftReference<Cat> catRef = new SoftReference<Cat>(cat);

// Now only the catRef soft reference points at the object
cat = null;

// Now the ordinary cat variable also references the object
cat = catRef.get();

// Clear the soft reference
catRef.clear();

"๊ฐ์ฒด์— ๋Œ€ํ•œ ์œ ์ผํ•œ ์ฐธ์กฐ๊ฐ€ ์†Œํ”„ํŠธ์ธ ๊ฒฝ์šฐ ๊ณ„์†ํ•ด์„œ ์ž‘๋™ํ•˜๋ฉฐ '๋ถ€๋“œ๋Ÿฝ๊ฒŒ ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ์Œ'์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค."

"๊ทธ๋Ÿฌ๋‚˜!  ํ”„๋กœ๊ทธ๋žจ์— ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์œผ๋ฉด ์†Œํ”„ํŠธ ์ฐธ์กฐ๋กœ๋งŒ ์ฐธ์กฐ๋˜๋Š” ๊ฐ์ฒด๋Š” ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ์— ์˜ํ•ด ์‚ญ์ œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.  ๊ฐ‘์ž๊ธฐ ํ”„๋กœ๊ทธ๋žจ์— ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์œผ๋ฉด OutOfMemoryException ์„ ๋ฐœ์ƒ์‹œํ‚ค๊ธฐ ์ „์— ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ๊ฐ€ ๋ชจ๋“  ๊ฐ์ฒด๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ์†Œํ”„ํŠธ ์ฐธ์กฐ์— ์˜ํ•ด ์ฐธ์กฐ๋˜๊ณ  ํ”„๋กœ๊ทธ๋žจ์— ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์„ ๋‹ค์‹œ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค."

"ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ์ด ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ž์ฃผ ์š”์ฒญํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋žจ์€ SoftReference๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ทธ ์ค‘ ์ผ๋ถ€๋ฅผ ์บ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์†Œํ”„ํŠธ ์ฐธ์กฐ์— ์˜ํ•ด ์†Œ๋ฉธ๋˜์ง€ ์•Š์€ ๊ฐ์ฒด๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋งŽ์€ ๋ถ€๋ถ„์„ ์ฐจ์ง€ํ•˜๋ฉด ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ๊ฐ€ ๊ฐ„๋‹จํžˆ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ๋‹ค. ์•„๋ฆ„๋‹ค์›Œ!"

"๊ทธ๋ž˜. ๋‚˜๋„ ์ข‹์•„ํ–ˆ์–ด."

"์Œ, ํ•œ ๊ฐ€์ง€ ์ž‘์€ ์ถ”๊ฐ€ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค. SoftReference ํด๋ž˜์Šค์—๋Š” ๋‘ ๊ฐ€์ง€ ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. get() ๋ฉ”์„œ๋“œ๋Š” SoftReference์—์„œ ์ฐธ์กฐํ•˜๋Š” ๊ฐœ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค . ๊ฐœ์ฒด๊ฐ€ ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ์— ์˜ํ•ด ์‚ญ์ œ๋œ ๊ฒฝ์šฐ get ( ) ๋ฉ”์„œ๋“œ๊ฐ€ ๊ฐ‘์ž๊ธฐ null์„ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค."

"๋˜ํ•œ ์‚ฌ์šฉ์ž๋Š” clear() ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๋ช…์‹œ์ ์œผ๋กœ SoftReference๋ฅผ ์ง€์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค . ์ด ๊ฒฝ์šฐ SoftReference ๊ฐœ์ฒด ๋‚ด๋ถ€์˜ ์•ฝํ•œ ๋งํฌ๊ฐ€ ํŒŒ๊ดด๋ฉ๋‹ˆ๋‹ค."

"์ง€๊ธˆ์€ ์—ฌ๊ธฐ๊นŒ์ง€์ž…๋‹ˆ๋‹ค."

"ํฅ๋ฏธ๋กœ์šด ์ด์•ผ๊ธฐ ๊ณ ๋งˆ์›Œ์š”, Ellie. ์ •๋ง ์žฌ๋ฏธ์žˆ์—ˆ์–ด์š”."