Amenable
Amenable's Blog
Amenable
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (189)
    • ๐Ÿ“‚ JAVA (87)
      • ์ดํŽ™ํ‹ฐ๋ธŒ ์ž๋ฐ” (65)
      • ์ฃผ์š” ๊ฐœ๋… (22)
    • ๐Ÿ“‚ ๊ฐœ๋ฐœ ์„œ์  (22)
      • ์‹ค์šฉ์ฃผ์˜ ํ”„๋กœ๊ทธ๋ž˜๋จธ (1)
      • ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์‚ฌ์‹ค๊ณผ ์˜คํ•ด (2)
      • ํด๋ฆฐ ์ฝ”๋“œ (8)
      • ํ•จ๊ป˜ ์ž๋ผ๊ธฐ (1)
      • ๊ทธ๋ฆผ์œผ๋กœ ๋ฐฐ์šฐ๋Š” HTTP&Network Basic (10)
    • ๐Ÿ“‚ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (8)
      • ๊ฐœ๋… (8)
      • ๋ฌธ์ œํ’€์ด (0)
    • ๐Ÿ“‚ ๋„คํŠธ์›Œํฌ (14)
      • ๊ฐœ๋… (6)
      • ์„ฑ๊ณต๊ณผ ์‹คํŒจ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” 1%์˜ ๋„คํŠธ์›Œํฌ ์›๋ฆฌ (8)
    • ๐Ÿ“‚ ์Šคํ”„๋ง (13)
      • ๊ธฐ๋ณธ ๊ฐœ๋… (13)
    • ๐Ÿ“‚ WEB (5)
    • ๐Ÿ“‚ ์ž๋ฃŒ๊ตฌ์กฐ (12)
      • ๊ฐœ๋… (2)
      • ์ •๋ ฌ (8)
      • ํŠธ๋ฆฌ (2)
    • ๐Ÿ“‚ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (10)
      • ์ตœ์†Œ์‹ ์žฅํŠธ๋ฆฌ (2)
      • ์ตœ๋‹จ ๊ฒฝ๋กœ (2)
      • ๋ฌธ์ž์—ด (2)
      • ETC (4)
    • ๐Ÿ“‚ ์•Œ๊ณ ๋ฆฌ์ฆ˜_๋ฌธ์ œํ’€์ด (4)
      • BOJ_๋ฐฑ์ค€ (4)
    • ๐Ÿ“‚ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (3)
    • ๐Ÿ“‚ DevOps (2)
      • ๋ฐฐํฌ (2)
    • ๐Ÿ“‚ ํ›„๊ธฐ (8)
      • ์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค(ํ”„๋ฆฌ์ฝ”์Šค) (4)
      • 2023๋…„ (3)
      • 2024๋…„ (1)
    • ๐Ÿ“‚ ํšŒ๊ณ  (1)
      • 2023๋…„ (1)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ๐Ÿš€ GitHub

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
Amenable

Amenable's Blog

finalizer์™€ cleaner ์‚ฌ์šฉ์„ ํ”ผํ•˜๋ผ - [2์žฅ ๊ฐ์ฒด ์ƒ์„ฑ๊ณผ ํŒŒ๊ดด(์•„์ดํ…œ8)]
๐Ÿ“‚ JAVA/์ดํŽ™ํ‹ฐ๋ธŒ ์ž๋ฐ”

finalizer์™€ cleaner ์‚ฌ์šฉ์„ ํ”ผํ•˜๋ผ - [2์žฅ ๊ฐ์ฒด ์ƒ์„ฑ๊ณผ ํŒŒ๊ดด(์•„์ดํ…œ8)]

2023. 1. 3. 15:55

  ์ž๋ฐ”๋Š” finalizer์™€ cleaner๋ผ๋Š” ๋‘ ๊ฐ€์ง€ ๊ฐ์ฒด ์†Œ๋ฉธ์ž๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฌธ์ œ์ ์œผ๋กœ ์ธํ•ด ์‚ฌ์šฉ์ด ์ž์ œ๋œ๋‹ค.
ํ•ด๋‹น ๊ธ€์—์„œ ๋ฌธ์ œ์ ๋“ค๊ณผ ์ ์ ˆํ•œ ์“ฐ์ž„์ƒˆ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž.

 

๐Ÿ“ข๋ฌธ์ œ์  1. finalizer์™€ cleaner๋Š” ์ฆ‰์‹œ ์ˆ˜ํ–‰๋œ๋‹ค๋Š” ๋ณด์žฅ์ด ์—†๋‹ค.

  finalizer๋‚˜ cleaner๋ฅผ ์–ผ๋งˆ๋‚˜ ์‹ ์†ํžˆ ์ˆ˜ํ–‰ํ• ์ง€๋Š” ์ „์ ์œผ๋กœ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋‹ฌ๋ ธ์œผ๋ฉฐ, ์ด๋Š” ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ ๊ตฌํ˜„๋งˆ๋‹ค ์ฒœ์ฐจ๋งŒ๋ณ„์ด๋‹ค. finalizer๋‚˜ cleaner ์ˆ˜ํ–‰ ์‹œ์ ์— ์˜์กดํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ๋™์ž‘ ๋˜ํ•œ ๋งˆ์ฐฌ๊ฐ€์ง€๋‹ค.

 

๐Ÿ“ข๋ฌธ์ œ์  2. finalizer์™€ cleaner๋Š” ์‹คํ–‰๋˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋‹ค.

  ์ด๋Š” ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋Š” ์ผ๋ถ€ ๊ฐ์ฒด์— ๋”ธ๋ฆฐ ์ข…๋ฃŒ ์ž‘์—…์„ ์ „ํ˜€ ์ˆ˜ํ–‰ํ•˜์ง€ ๋ชปํ•œ ์ฑ„ ํ”„๋กœ๊ทธ๋žจ์ด ์ค‘๋‹จ๋  ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ์–˜๊ธฐ๋‹ค. ๋”ฐ๋ผ์„œ ํ”„๋กœ๊ทธ๋žจ ์ƒ์• ์ฃผ๊ธฐ์™€ ์ƒ๊ด€์—†๋Š”, ์ƒํƒœ๋ฅผ ์˜๊ตฌ์ ์œผ๋กœ ์ˆ˜์ •ํ•˜๋Š” ์ž‘์—…์—์„œ๋Š” ์ ˆ๋Œ€ finalizer๋‚˜ cleaner์— ์˜์กดํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค.
  ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ™์€ ๊ณต์œ  ์ž์›์˜ ์˜๊ตฌ ๋ฝ(lock) ํ•ด์ œ๋ฅผ finalizer๋‚˜ cleaner์— ๋งก๊ฒจ ๋†“์œผ๋ฉด ๋ถ„์‚ฐ ์‹œ์Šคํ…œ ์ „์ฒด๊ฐ€ ์„œ์„œํžˆ ๋ฉˆ์ถœ ๊ฒƒ์ด๋‹ค.

 

๐Ÿ“ข๋ฌธ์ œ์  3. finalizer ๋™์ž‘ ์ค‘์— ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ •๋ฆฌ ์ž‘์—…์ด ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋‹ค.

  ์žก์ง€ ๋ชปํ•œ ์˜ˆ์™ธ ๋•Œ๋ฌธ์— ํ•ด๋‹น ๊ฐ์ฒด๋Š” ์ž์นซ ๋งˆ๋ฌด๋ฆฌ๊ฐ€ ๋œ ๋œ ์ƒํƒœ๋กœ ๋‚จ์„ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ๊ฐ€ ์ด์ฒ˜๋Ÿผ ํ›ผ์†๋œ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๋ ค ํ•œ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ• ์ง€ ์˜ˆ์ธกํ•  ์ˆ˜ ์—†๋‹ค. ๋ณดํ†ต์˜ ๊ฒฝ์šฐ์—” ์žก์ง€ ๋ชปํ•œ ์˜ˆ์™ธ๊ฐ€ ์Šค๋ ˆ๋“œ๋ฅผ ์ค‘๋‹จ์‹œํ‚ค๊ณ  ์Šคํƒ ์ถ”์  ๋‚ด์—ญ์„ ์ถœ๋ ฅํ•˜๊ฒ ์ง€๋งŒ, ๊ฐ™์€ ์ผ์ด finalizer์—์„œ ์ผ์–ด๋‚œ๋‹ค๋ฉด ๊ฒฝ๊ณ ์กฐ์ฐจ ์ถœ๋ ฅํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

๐Ÿ“ข๋ฌธ์ œ์  4. finalizer์™€ cleaner๋Š” ์‹ฌ๊ฐํ•œ ์„ฑ๋Šฅ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค.

  finalizer๊ฐ€ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ์˜ ํšจ์œจ์„ ๋–จ์–ด๋œจ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ๋™๋ฐ˜ํ•œ๋‹ค. 

 

๐Ÿ“ข๋ฌธ์ œ์  5. finalizer๋Š” ๋ณด์•ˆ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค.

  ์ƒ์„ฑ์ž๋‚˜ ์ง๋ ฌํ™” ๊ณผ์ •์—์„œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด, ์ด ์ƒ์„ฑ๋˜๋‹ค ๋งŒ ๊ฐ์ฒด์—์„œ ์•…์˜์ ์ธ ํ•˜์œ„ ํด๋ž˜์Šค์˜ finalizer๊ฐ€ ์ˆ˜ํ–‰๋  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. ์ด finalizer๋Š” ์ •์  ํ•„๋“œ์— ์ž์‹ ์˜ ์ฐธ์กฐ๋ฅผ ํ• ๋‹นํ•˜์—ฌ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๊ฐ€ ์ˆ˜์ง‘ํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ๋ง‰์„ ์ˆ˜ ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์ผ๊ทธ๋Ÿฌ์ง„ ๊ฐ์ฒด๊ฐ€ ๋งŒ๋“ค์–ด์ง€๊ณ  ๋‚˜๋ฉด, ์ด ๊ฐ์ฒด์˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ด ์• ์ดˆ์—๋Š” ํ—ˆ์šฉ๋˜์ง€ ์•Š์•˜์„ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฑด ์ผ๋„ ์•„๋‹ˆ๋‹ค. 
  final์ด ์•„๋‹Œ ํด๋ž˜์Šค๋ฅผ finalizer ๊ณต๊ฒฉ์œผ๋กœ๋ถ€ํ„ฐ ๋ฐฉ์–ดํ•˜๋ ค๋ฉด ์•„๋ฌด ์ผ๋„ ํ•˜์ง€ ์•Š๋Š” finalize ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค๊ณ  final๋กœ ์„ ์–ธํ•˜์ž.

 

๐Ÿš€์ ์ ˆํ•œ ์‚ฌ์šฉ 1. ์ž์› ๋ฐ˜๋‚ฉ์šฉ ์•ˆ์ „๋ง์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

  cleaner๋‚˜ finalizer๊ฐ€ ์ฆ‰์‹œ (ํ˜น์€ ๋๊นŒ์ง€) ํ˜ธ์ถœ๋˜๋ฆฌ๋ผ๋Š” ๋ณด์žฅ์€ ์—†์ง€๋งŒ, ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ•˜์ง€ ์•Š์€ ์ž์› ํšŒ์ˆ˜๋ฅผ ๋Šฆ๊ฒŒ๋ผ๋„ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์•„์˜ˆ ์•ˆ ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค๋Š” ๋‚ซ๋‹ค.

 

๐Ÿš€์ ์ ˆํ•œ ์‚ฌ์šฉ 2. ๋„ค์ดํ‹ฐ๋ธŒ ํ”ผ์–ด ์ž์› ํšŒ์ˆ˜

  ๋„ค์ดํ‹ฐ๋ธŒ ํ”ผ์–ด๋ž€ ์ผ๋ฐ˜ ์ž๋ฐ” ๊ฐ์ฒด๊ฐ€ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ๊ธฐ๋Šฅ์„ ์œ„์ž„ํ•œ ๋„ค์ดํ‹ฐ๋ธŒ ๊ฐ์ฒด๋ฅผ ๋งํ•œ๋‹ค. ์ด๋Š” ์ž๋ฐ” ๊ฐ์ฒด๊ฐ€ ์•„๋‹ˆ๋‹ˆ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๋Š” ๊ทธ ์กด์žฌ๋ฅผ ์•Œ์ง€ ๋ชปํ•œ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ ์ž๋ฐ” ํ”ผ์–ด๋ฅผ ํšŒ์ˆ˜ํ•  ๋•Œ ๋„ค์ดํ‹ฐ๋ธŒ ๊ฐ์ฒด๊นŒ์ง€ ํšŒ์ˆ˜ํ•˜์ง€ ๋ชปํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ cleaner๋‚˜ finalizer๊ฐ€ ๋‚˜์„œ์„œ ์ฒ˜๋ฆฌํ•˜๊ธฐ์— ์ ๋‹นํ•œ ์ž‘์—…์ด๋‹ค. 
  ๋‹จ, ์„ฑ๋Šฅ ์ €ํ•˜๋ฅผ ๊ฐ๋‹นํ•  ์ˆ˜ ์žˆ๊ณ  ๋„ค์ดํ‹ฐ๋ธŒ ํ”ผ์–ด๊ฐ€ ์‹ฌ๊ฐํ•œ ์ž์›์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์„ ๋•Œ์—๋งŒ ํ•ด๋‹น๋œ๋‹ค. ์„ฑ๋Šฅ ์ €ํ•˜๋ฅผ ๊ฐ๋‹นํ•  ์ˆ˜ ์—†๊ฑฐ๋‚˜ ๋„ค์ดํ‹ฐ๋ธŒ ํ”ผ์–ด๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์ž์›์„ ์ฆ‰์‹œ ํšŒ์ˆ˜ํ•ด์•ผ ํ•œ๋‹ค๋ฉด close ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

 

ํ•ด๋‹น ๊ธ€์€ ๋ฐฑ๊ธฐ์„  ๋‹˜์˜ '์ดํŽ™ํ‹ฐ๋ธŒ ์ž๋ฐ” ์™„๋ฒฝ ๊ณต๋žต'์„ ์ˆ˜๊ฐ•ํ•˜๊ณ  ์ž‘์„ฑํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

'๐Ÿ“‚ JAVA > ์ดํŽ™ํ‹ฐ๋ธŒ ์ž๋ฐ”' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

equals๋Š” ์ผ๋ฐ˜ ๊ทœ์•ฝ์„ ์ง€์ผœ ์žฌ์ •์˜ํ•˜๋ผ(1) - [3์žฅ. ๋ชจ๋“  ๊ฐ์ฒด์˜ ๊ณตํ†ต ๋ฉ”์„œ๋“œ(์•„์ดํ…œ10)]  (0) 2023.01.05
try-finally ๋ณด๋‹ค๋Š” try-with-resources๋ฅผ ์‚ฌ์šฉํ•˜๋ผ - [2์žฅ ๊ฐ์ฒด ์ƒ์„ฑ๊ณผ ํŒŒ๊ดด(์•„์ดํ…œ9)]  (0) 2023.01.03
๋‹ค ์“ด ๊ฐ์ฒด ์ฐธ์กฐ๋ฅผ ํ•ด์ œํ•˜๋ผ - [2์žฅ ๊ฐ์ฒด ์ƒ์„ฑ๊ณผ ํŒŒ๊ดด(์•„์ดํ…œ7)]  (0) 2022.12.25
๋ถˆํ•„์š”ํ•œ ๊ฐ์ฒด ์ƒ์„ฑ์„ ํ”ผํ•˜๋ผ - [2์žฅ ๊ฐ์ฒด ์ƒ์„ฑ๊ณผ ํŒŒ๊ดด(์•„์ดํ…œ6)]  (0) 2022.11.29
์ž์›์„ ์ง์ ‘ ๋ช…์‹œํ•˜์ง€ ๋ง๊ณ  ์˜์กด ๊ฐ์ฒด ์ฃผ์ž…์„ ์‚ฌ์šฉํ•˜๋ผ - [2์žฅ ๊ฐ์ฒด ์ƒ์„ฑ๊ณผ ํŒŒ๊ดด(์•„์ดํ…œ5)]  (0) 2022.11.28
    '๐Ÿ“‚ JAVA/์ดํŽ™ํ‹ฐ๋ธŒ ์ž๋ฐ”' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • equals๋Š” ์ผ๋ฐ˜ ๊ทœ์•ฝ์„ ์ง€์ผœ ์žฌ์ •์˜ํ•˜๋ผ(1) - [3์žฅ. ๋ชจ๋“  ๊ฐ์ฒด์˜ ๊ณตํ†ต ๋ฉ”์„œ๋“œ(์•„์ดํ…œ10)]
    • try-finally ๋ณด๋‹ค๋Š” try-with-resources๋ฅผ ์‚ฌ์šฉํ•˜๋ผ - [2์žฅ ๊ฐ์ฒด ์ƒ์„ฑ๊ณผ ํŒŒ๊ดด(์•„์ดํ…œ9)]
    • ๋‹ค ์“ด ๊ฐ์ฒด ์ฐธ์กฐ๋ฅผ ํ•ด์ œํ•˜๋ผ - [2์žฅ ๊ฐ์ฒด ์ƒ์„ฑ๊ณผ ํŒŒ๊ดด(์•„์ดํ…œ7)]
    • ๋ถˆํ•„์š”ํ•œ ๊ฐ์ฒด ์ƒ์„ฑ์„ ํ”ผํ•˜๋ผ - [2์žฅ ๊ฐ์ฒด ์ƒ์„ฑ๊ณผ ํŒŒ๊ดด(์•„์ดํ…œ6)]
    Amenable
    Amenable
    CS, ์ž๋ฐ”, ์ž๋ฃŒ๊ตฌ์กฐ, ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์Šคํ”„๋ง, ์Šคํ”„๋ง ๋ถ€ํŠธ์— ํ•ด๋‹นํ•˜๋Š” ๊ฐœ๋ฐœ์— ๊ด€ํ•œ ๋‚ด์šฉ์„ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”