Item 8. Finalizer & Cleaner
Finalizer์ Cleaner ์ฌ์ฉ์ ํผํ๋ผ
Java์๋ finalizer
์ cleaner
๋ผ๋ ๋ ๊ฐ์ง ๊ฐ์ฒด ์๋ฉธ์๊ฐ ์กด์ฌํ๋ค.
ํ์ง๋ง ๋ ์๋ฉธ์ ๋ชจ๋ ์์ธกํ ์ ์๊ณ , ์ํฉ์ ๋ฐ๋ผ ์ํํ ์ ์๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์ ํผํด์ผ ํ๋ค.
finalizer
: Java 9๋ถํฐ deprecated ๋จcleaner
: Java 9๋ถํฐfinalizer
๋ฅผ ๋์ฒดํ๊ธฐ ์ํด ๋์ ๋์์ผ๋ ์ฌ์ ํ ์ํํ๊ณ ์์ธกํ ์ ์์
์ด ๋ ์๋ฉธ์๋ C++์ destuctor
์ ๋น์ทํด ๋ณด์ด์ง๋ง, ๋ค๋ฅธ ๊ฐ๋
์ด๊ธฐ ๋๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ ์ฐจ์ด์ ์ด ์กด์ฌํ๋ค.
C++:
destructor
๋ ๊ฐ์ฒด์ ์์ฑ์ ํ๋ฉด ๊ผญ ํ์ํ ๊ฒ์ผ๋ก ์์์ ํ์ํ๋ ๋ณดํธ์ ์ธ ๋ฐฉ๋ฒJava: ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ๋น์ง ์ปฌ๋ ํฐ๊ฐ ์์ ํ์๋ฅผ ๋ด๋นํ๋ฉฐ,
finalizer
์cleaner
๋ ์ฆ์ ์ํ๋๋ค๋ ๋ณด์ฅ์ด ์์
์๋ฉธ์๊ฐ ์ํํ ์ด์
์์์ ์ค๋ช
ํ๋ฏ์ด finalizer
์ cleaner
๋ ์ฆ์ ์ํ๋๋ค๋ ๋ณด์ฅ์ด ์๋ค.
์ ๋ ์๋ฉธ์์ ์ํ ์ฌ๋ถ๋ ๊ฐ๋น์ง ์ปฌ๋ ํฐ์ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์ ์์ธกํ ์ ์์ผ๋ฉฐ ๊ฐ๋น์ง ์ปฌ๋ ํฐ ๊ตฌํ๋ง๋ค ๋ค๋ฅด๋ค.
๋๋ฌธ์ ํ
์คํธ ํ๊ฒฝ์์๋ ์ ์์ ์ผ๋ก ๋์ํ์ง๋ง, ํ๋ก๋์
ํ๊ฒฝ์์๋ ์์์น ๋ชปํ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์๋ค.
์ฆ์ ์ํ ๋ฏธ๋ณด์ฅ: ๊ฐ๋น์ง ์ปฌ๋ ํฐ์ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์ ์ฆ์ ์ํ๋์ง ์์ ์ ์์
์์ธ ์ฒ๋ฆฌ ๋ฌธ์ :
finalizer
๋ด๋ถ์์ ๋ฐ์ํ ์์ธ๋ ๋ฌด์๋๋ฉฐ, ์ฒ๋ฆฌํ ์์ ์ด ๋จ์์๋๋ผ๋ ์ํ์ด ์ค๋จ๋จ(cleaner
๋ ํด๋น ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์์)์ฑ๋ฅ ๋ฌธ์ : ๊ฐ๋น์ง ์ปฌ๋ ํฐ๊ฐ ์๋์ผ๋ก ์๊ฑฐํ๋ ์๊ฐ์ ๋นํด ํจ์ฌ ์ค๋ ๊ฑธ๋ฆผ
๋ณด์ ๋ฌธ์ : ์์ฑ์ด ์๋ฃ๋์ง ์์ ๊ฐ์ฒด์ ํ์ ํด๋์ค์
finalizer
๊ฐ ์ํ๋ ์ ์์
finalizer
์ cleaner
์ ์ฌ์ฉ
finalizer
์ cleaner
์ ์ฌ์ฉ์์ ๋ง ์ญํ
๋ง์ฝ ํ์ผ์ด๋ ์ค๋ ๋ ๋ฑ ์ข
๋ฃํด์ผ ํ ์์์ ์๋ฉธ์ํค๊ธฐ ์ํด์ , ์์ ๋ ์๋ฉธ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค AutoCloseable
์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ ๊ฒ์ด ๋ ์ข๋ค.
๋ ์๋ฉธ์๋ AutoCloseable
์ธํฐํ์ด์ค์ close()
๋ฉ์๋๋ฅผ ํธ์ถํ์ง ์๋ ๊ฒ์ ๋๋นํ ์์ ๋ง ์ญํ ์ ํ ์ ์๋ค.
๋ค์ดํฐ๋ธ ํผ์ด
๋ค์ดํฐ๋ธ ํผ์ด๋ ์ผ๋ฐ ์๋ฐ ๊ฐ์ฒด๊ฐ ๋ค์ดํฐ๋ธ ๋ฉ์๋๋ฅผ ํตํด ์ ๊ทผํ๋ ๋ค์ดํฐ๋ธ ๊ฐ์ฒด๋ฅผ ๋งํ๋ค.
๋ค์ดํฐ๋ธ ๊ฐ์ฒด๋ ์๋ฐ ๊ฐ์ฒด๊ฐ ์๋์ฌ์ ๊ฐ๋น์ง ์ปฌ๋ ํฐ๊ฐ ํ์ํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ finalizer
์ cleaner
๋ฅผ ์ง์ ์ฌ์ฉํ์ฌ ํ์ํ๋ ๊ฒ์ด ์ข๋ค.
Last updated
Was this helpful?