[Java] ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜(Garbage Collection) ๊ธฐ๋ณธ ๊ฐœ๋…

2025. 10. 18. 18:49ยทโ˜•Java

๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์ด๋ž€? (Garbage Collection, GC)

C/C++ ๊ฐ™์€ ์–ธ์–ด์—์„œ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ `free()` ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์‚ฌ์šฉ์ด ๋๋‚œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•ด์ œํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ Java์—์„œ๋Š” JVM์˜ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๊ฐ€ ์ฃผ๊ธฐ์ ์œผ๋กœ ๊ฒ€์‚ฌํ•˜์—ฌ ๋ถˆํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์•Œ์•„์„œ ์ •๋ฆฌํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋Ÿด ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

 

๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์ด๋ž€,

JVM์˜ Heap ์˜์—ญ์—์„œ ๋™์ ์œผ๋กœ ํ• ๋‹นํ–ˆ๋˜ ๋ฉ”๋ชจ๋ฆฌ ์ค‘

ํ•„์š” ์—†๊ฒŒ ๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ฐ์ฒด(garbage)๋ฅผ ๋ชจ์•„ ์ฃผ๊ธฐ์ ์œผ๋กœ ์ œ๊ฑฐํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค.

 

  • ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ๋ฐฉ์ง€: ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ๋ฅผ ์žŠ์–ด๋ฒ„๋ ค ํ”„๋กœ๊ทธ๋žจ์ด ๋น„์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋˜๊ฑฐ๋‚˜ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋˜๋Š” ํ˜„์ƒ(OOM ์—๋Ÿฌ)์„ GC๊ฐ€ ์ž๋™์œผ๋กœ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐœ๋ฐœ ์ƒ์‚ฐ์„ฑ ํ–ฅ์ƒ: ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ ๋กœ์ง ๋Œ€์‹  ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜ ๋Œ€์ƒ

๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์€ ํž™(Heap) ์˜์—ญ์—์„œ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์ž๋ฐ”์—์„œ `new` ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑ๋˜๋Š” ๋ชจ๋“  ๊ฐ์ฒด์˜ ์‹ค์ œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๋Š” ๊ณต๊ฐ„์ด๊ธฐ ๋•Œ๋ฌธ์—

๋” ์ด์ƒ ํ•„์š” ์—†๋Š” ๊ฐ์ฒด๋“ค์€ ํž™ ์˜์—ญ์— ์žˆ์Šต๋‹ˆ๋‹ค.

 

GC๋Š” ์–ด๋–ค ๊ฐ์ฒด๊ฐ€ ์“ฐ๋ ˆ๊ธฐ์ธ์ง€ ํŒ๋‹จํ•  ๋•Œ ์ ‘๊ทผ ๊ฐ€๋Šฅ์„ฑ(Reachability)์„ ๊ธฐ์ค€์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

  • Reachable: ๊ฐ์ฒด๊ฐ€ ์ฐธ์กฐ๋˜๊ณ  ์žˆ๋Š” ์ƒํƒœ
    • ์Šคํƒ ์˜์—ญ์ด๋‚˜ ๋ฉ”์„œ๋“œ ์˜์—ญ ๊ฐ™์€ ์˜์—ญ์—์„œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ๋ ˆํผ๋Ÿฐ์Šค๊ฐ€ ์žˆ๋Š” ์ƒํƒœ
  • Unreachable: ๊ฐ์ฒด๊ฐ€ ์ฐธ์กฐ๋˜๊ณ  ์žˆ์ง€ ์•Š์€ ์ƒํƒœ
    • ์–ด๋–ค ์ฐธ์กฐ์—์„œ๋„ ๋„๋‹ฌํ•  ์ˆ˜ ์—†๋Š” ๊ฐ์ฒด๋Š” ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๊ฐ€๋น„์ง€๋กœ ํŒ๋‹จํ•˜์—ฌ GC์˜ ์ˆ˜์ง‘ ๋Œ€์ƒ์ด ๋ฉ๋‹ˆ๋‹ค.

 

 

GC ๋•Œ๋งˆ๋‹ค ๋ชจ๋“  ๊ฐ์ฒด์˜ ์ ‘๊ทผ ๊ฐ€๋Šฅ์„ฑ์„ ๋งค๋ฒˆ ๊ฒ€์‚ฌํ•˜๋Š” ๊ฒƒ์„ ๋น„ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.

์ž๋ฐ”์˜ GC๋Š” ์„ธ๋Œ€ ๊ฐ€์„ค(Generational Hypothesis)๋ผ๋Š” ์ „๋žต์„ ์ฑ„ํƒํ•˜์—ฌ ํž™ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์„ธ๋Œ€๋ณ„๋กœ ๋‚˜๋ˆ„์–ด ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 

  • ๋Œ€๋ถ€๋ถ„์˜ ๊ฐ์ฒด๋Š” ๊ธˆ๋ฐฉ ์ ‘๊ทผ ๋ถˆ๊ฐ€๋Šฅํ•œ ์ƒํƒœ(Unreachable)๊ฐ€ ๋œ๋‹ค.
  • ์˜ค๋ž˜๋œ ๊ฐ์ฒด์—์„œ ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋กœ์˜ ์ฐธ์กฐ๋Š” ์•„์ฃผ ์ ๊ฒŒ ์กด์žฌํ•œ๋‹ค.

์ด๋Ÿฌํ•œ ์ด๋ก ์„ ๊ธฐ๋ฐ˜์œผ๋กœ, ์„ธ๋Œ€ ๊ฐ€์„ค์€

๋Œ€๋ถ€๋ถ„์˜ ๊ฐ์ฒด๋Š” ๋งค์šฐ ์งง์€ ์‹œ๊ฐ„ ๋™์•ˆ๋งŒ ์‚ฌ์šฉ๋˜๊ณ  ์†Œ๋ฉธ๋˜๋Š” ์ผํšŒ์„ฑ์ด๊ณ , ์˜ค๋ž˜ ์‚ด์•„๋‚จ์€ ๊ฐ์ฒด๋Š” ์•„์ฃผ ์˜ค๋žซ๋™์•ˆ ์‚ฌ์šฉ๋œ๋‹ค๋Š” ๊ฐ€์„ค์ž…๋‹ˆ๋‹ค.

 

์ด ๊ฐ€์„ค์„ ๋ฐ”ํƒ•์œผ๋กœ ํž™ ์˜์—ญ์„ ๋‘ ๊ณต๊ฐ„์œผ๋กœ ๋‚˜๋ˆ•๋‹ˆ๋‹ค.

 

  • ์ Š์€ ์„ธ๋Œ€(Young Generation)
    • ์ƒˆ๋กญ๊ฒŒ ์ƒ์„ฑ๋œ ๊ฐ์ฒด๊ฐ€ ํ• ๋‹น๋˜๋Š” ์˜์—ญ
    • ๋Œ€๋ถ€๋ถ„์˜ ๊ฐ์ฒด๊ฐ€ ๊ธˆ๋ฐฉ Unreachable ์ƒํƒœ๊ฐ€ ๋˜๊ธฐ ๋•Œ๋ฌธ์—, ๋งŽ์€ ๊ฐ์ฒด๊ฐ€ ์ด๊ณณ์— ์žˆ๋‹ค๊ฐ€ ์†Œ๋ฉธ
    • ๊ฐ์ฒด๊ฐ€ ๋น ๋ฅด๊ฒŒ ์†Œ๋ฉธ๋œ๋‹ค๋Š” ๊ฐ€์„ค์— ๋”ฐ๋ผ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์ด ๋งค์šฐ ์ž์ฃผ ๋ฐœ์ƒ
    • ์ Š์€ ์„ธ๋Œ€์— ๋Œ€ํ•œ ๊ฐ€๋น„์ง€ ์ปฌ๋ ฅ์„ผ์„ Minor GC๋ผ๊ณ  ๋ถ€๋ฆ„
  • ์˜ค๋ž˜๋œ ์„ธ๋Œ€(Old Generation)
    • ์ Š์€ ์„ธ๋Œ€์—์„œ ์—ฌ๋Ÿฌ ๋ฒˆ์˜ Minor GC๋ฅผ ๊ฒฌ๋ŽŒ๋‚ด์–ด ์œ—์„ธ๋Œ€๋กœ ์Šน๊ฒฉ๋œ(Promotion), ์˜ค๋ž˜ ์‚ด์•„๋‚จ์€ ๊ฐ์ฒด๋“ค์ด ์œ„์น˜ํ•œ ์˜์—ญ
    • ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์ด ์ƒ๋Œ€์ ์œผ๋กœ ๋œ ๋ฐœ์ƒ
    • ์˜ค๋ž˜๋œ ์„ธ๋Œ€์— ๋Œ€ํ•œ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์„ Major GC ๋˜๋Š” Full GC๋ผ๊ณ  ๋ถ€๋ฆ„

์ด๋Ÿฌํ•œ ์„ธ๋Œ€๋ณ„ ๋ถ„ํ• ์„ ํ†ตํ•ด GC๋Š” ์ „์ฒด ํž™์„ ๊ฒ€์‚ฌํ•˜๋Š” ๋Œ€์‹ ,

๊ฐ์ฒด๊ฐ€ ๋น ๋ฅด๊ฒŒ ์ฃฝ๋Š” Young Generation์— ์ง‘์ค‘ํ•˜์—ฌ ์ „์ฒด์ ์ธ GC ์„ฑ๋Šฅ์„ ์˜ฌ๋ฆฝ๋‹ˆ๋‹ค.


๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜ ๋™์ž‘ ๋ฐฉ์‹

๐Ÿ›‘ Stop The World

  • ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด JVM์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‹คํ–‰์„ ๋ฉˆ์ถ”๋Š” ์ž‘์—…

GC๊ฐ€ ์‹คํ–‰๋  ๋•Œ๋Š” GC๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์Šค๋ ˆ๋“œ๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“œ ์Šค๋ ˆ๋“œ๋“ค์˜ ์ž‘์—…์ด ์ผ์‹œ์ ์œผ๋กœ ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค.

GC๊ฐ€ ์™„๋ฃŒ๋œ ํ›„ ์ž‘์—…์ด ์žฌ๊ฐœ๋ฉ๋‹ˆ๋‹ค.

๐Ÿงน Mark and Sweep

Mark-Sweep์€ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์ด ๋™์ž‘ํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ ์ฒญ์†Œ ๊ณผ์ •์ž…๋‹ˆ๋‹ค.

 

Stop The World๋ฅผ ํ†ตํ•ด ๋ชจ๋“  ์ž‘์—…์„ ์ค‘๋‹จ์‹œํ‚จ ํ›„ GC๋Š” ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๊ฐ์ฒด๊ฐ€ ์žˆ๋Š”์ง€ ํƒ์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.
Unreachableํ•œ ๊ฐ์ฒด๋“ค์€ ์‚ญ์ œํ•  ๋ฉ”๋ชจ๋ฆฌ๋กœ Markํ•ฉ๋‹ˆ๋‹ค.
์ด๋ ‡๊ฒŒ Mark๋œ ๊ฐ์ฒด๋“ค์„ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์„ Sweep์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

  • Mark: ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ์™€ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‹๋ณ„ํ•˜๋Š” ์ž‘์—…
    • ๊ทธ๋ž˜ํ”„ ์ˆœํšŒ๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐ๋œ ๊ฐ์ฒด๋“ค์„ ์ฐพ์•„๋‚ด์–ด ๊ฐ๊ฐ ์–ด๋–ค ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š”์ง€ ์ฐพ์•„์„œ ๋งˆํ‚น
  • Sweep: Mark ๋‹จ๊ณ„์—์„œ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ์œผ๋กœ ์‹๋ณ„๋œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•ด์ œํ•˜๋Š” ์ž‘์—…
    • Unreachable ๊ฐ์ฒด๋“ค์„ Heap์—์„œ ์ œ๊ฑฐ
  • Compact(Optional): ํŒŒํŽธํ™”๋œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ์•ž์—์„œ๋ถ€ํ„ฐ ์ฑ„์›Œ๋‚˜๊ฐ€๋Š” ์ž‘์—…
    • Sweep ํ›„์— ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ผ๋ถ€ ๊ฐ์ฒด๋“ค์ด ์‚ญ์ œ๋˜๋ฉด ๋นˆ ๊ณต๊ฐ„๋“ค์ด ์—ฌ๊ธฐ์ €๊ธฐ ํฉ์–ด์ง„, ํŒŒํŽธํ™”๋œ ์ƒํƒœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.
    • ์ด ๋นˆ ๊ณต๊ฐ„์„ ๋ชจ์œผ๊ธฐ ์œ„ํ•ด ์‚ด์•„๋‚จ์€ ๊ฐ์ฒด๋“ค์„ ๋ฉ”๋ชจ๋ฆฌ ์‹œ์ž‘์ ์œผ๋กœ ์ด๋™์‹œ์ผœ ์—ฐ์†๋œ ๋นˆ ์—ฌ์œ  ๊ณต๊ฐ„์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜ ์ฃผ์˜์‚ฌํ•ญ

๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๊ฐ€ ์ž๋™์œผ๋กœ ์ฒญ์†Œ๋ฅผ ํ•ด์ค€๋‹ค๋Š”๋ฐ

์ด ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์–ธ์ œ ํ•ด์ œ๋˜๋Š”์ง€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ •ํ™•ํžˆ ์•Œ ์ˆ˜ ์—†์–ด ์ œ์–ดํ•˜๊ธฐ ํž˜๋“ค๋ฉฐ,

๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์ด ์‹คํ–‰ํ•˜๋Š” ๋™์•ˆ์—๋Š” ๋‹ค๋ฅธ ๋™์ž‘์„ ๋ฉˆ์ถ”๊ธฐ ๋•Œ๋ฌธ์—(Stop The World) ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹ค์‹œ๊ฐ„์„ฑ์ด ์ค‘์š”ํ•œ ํ”„๋กœ๊ทธ๋žจ์ด๋ผ๋ฉด ๊ฐ€๋น„์ง€ ์ปฌ๋ ฅ์„ผ์ด ๋„ˆ๋ฌด ์ž์ฃผ ์ผ์–ด๋‚œ๋‹ค๋ฉด ์„ฑ๋Šฅ ๋ฌธ์ œ๊ฐ€ ๋„๋“œ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋”ฐ๋ผ์„œ ์„œ๋น„์Šค ์ด์šฉ์— ์ฐจ์งˆ์ด ์ƒ๊ธธ ์ˆ˜ ์žˆ์–ด ์ด Stop The World ์‹œ๊ฐ„์„ ์ตœ์†Œํ™”ํ•˜๋Š” ๊ฒƒ์ด

๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜ ์„ฑ๋Šฅ ๊ฐœ์„ ์˜ ์ฃผ์š” ํฌ์ธํŠธ์ž…๋‹ˆ๋‹ค.

 

์ด๋Ÿฌํ•œ ์ž‘์—…์„ GC ํŠœ๋‹์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.


์ฐธ๊ณ ์ž๋ฃŒ

  • โ˜• ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜ ๋™์ž‘ ์›๋ฆฌ & GC ์ข…๋ฅ˜ ๐Ÿ’ฏ ์ด์ •๋ฆฌ
  • [Java] Garbage Collection(๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜)์˜ ๊ฐœ๋… ๋ฐ ๋™์ž‘ ์›๋ฆฌ (1/2)

'โ˜•Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Java] ์œ„์ƒ ์ •๋ ฌ(Topological Sort) ๊ฐœ๋…๊ณผ ๊ตฌํ˜„  (0) 2025.11.14
[Java] ์šฐ์„ ์ˆœ์œ„ ํ(Priority Queue) ๊ฐœ๋…๊ณผ ์ž๋ฐ” ๊ธฐ๋ณธ ๋ฉ”์†Œ๋“œ  (0) 2025.11.13
[Java] JVM์ด๋ž€? ๊ฐœ๋…๊ณผ ์ž๋ฐ” ์ปดํŒŒ์ผ ๊ณผ์ • ์ดํ•ดํ•˜๊ธฐ  (0) 2025.10.03
[Java] ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ์˜ ๊ฒฝ์Ÿ ์ƒํƒœ์™€ ํ•ด๊ฒฐ ์ „๋žต ์ •๋ฆฌ  (1) 2025.06.02
[์ž๋ฃŒ๊ตฌ์กฐ][Java] HashSet ์ค‘๋ณต ์ œ๊ฑฐ ๋™์ž‘ ์›๋ฆฌ: HashSet์€ ์–ด๋–ป๊ฒŒ ์ค‘๋ณต์„ ํ™•์ธํ•˜๋‚˜์š”?  (0) 2025.02.13
'โ˜•Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Java] ์œ„์ƒ ์ •๋ ฌ(Topological Sort) ๊ฐœ๋…๊ณผ ๊ตฌํ˜„
  • [Java] ์šฐ์„ ์ˆœ์œ„ ํ(Priority Queue) ๊ฐœ๋…๊ณผ ์ž๋ฐ” ๊ธฐ๋ณธ ๋ฉ”์†Œ๋“œ
  • [Java] JVM์ด๋ž€? ๊ฐœ๋…๊ณผ ์ž๋ฐ” ์ปดํŒŒ์ผ ๊ณผ์ • ์ดํ•ดํ•˜๊ธฐ
  • [Java] ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ์˜ ๊ฒฝ์Ÿ ์ƒํƒœ์™€ ํ•ด๊ฒฐ ์ „๋žต ์ •๋ฆฌ
์†Œ์˜ ๐Ÿ€
์†Œ์˜ ๐Ÿ€
Hello World โœจ
  • ์†Œ์˜ ๐Ÿ€
    Soyoung's Dev Lab
    ์†Œ์˜ ๐Ÿ€
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
  • ๊ธ€์“ฐ๊ธฐ ๊ด€๋ฆฌ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (79)
      • ๐Ÿ“ข ๊ฒŒ์‹œํŒ (0)
      • ๐ŸŒฟSpring (20)
      • โ˜•Java (7)
        • ์ฝ”๋”ฉํ…Œ์ŠคํŠธ (7)
      • โš™๏ธ CS (26)
        • ๐Ÿ›œ ๋„คํŠธ์›Œํฌ (5)
        • ๐Ÿ“Š ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (8)
        • ๐Ÿ–ฒ๏ธ์šด์˜์ฒด์ œ (9)
        • ๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ & ์•Œ๊ณ ๋ฆฌ์ฆ˜ (4)
      • ๐Ÿ“ค ๋ฐฐํฌ (4)
        • Docker (4)
        • AWS (0)
      • ๐Ÿ“ฐ ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ (12)
      • ๐Ÿ–ฅ๏ธ ํ”„๋กœ์ ํŠธ (0)
      • ๐Ÿ‘ฉ‍๐Ÿ’ป ํ™œ๋™ & ํ›„๊ธฐ (1)
      • ๐Ÿต ์ด์•ผ๊ธฐ (2)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํƒœ๊ทธ
  • ๋งํฌ

    • github
    • velog
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    Spring Security
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    ์šด์˜์ฒด์ œ
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
    ๊ฐœ๋ฐœ
    ์ž๋ฃŒ๊ตฌ์กฐ
    docker
    ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
    ๋ฐฐํฌ
    Java
    ์ฝ”๋“œ์ž‡ ์Šคํ”„๋ฆฐํŠธ
    ์œ„ํด๋ฆฌ ํŽ˜์ดํผ
    ๊ธฐ์ˆ  ๋ฉด์ ‘
    ๋„คํŠธ์›Œํฌ
    ์„œ๋ฒ„
    ๊ฐ์ฒด์ง€ํ–ฅํ”„๋กœ๊ทธ๋ž˜๋ฐ
    Spring
    GIT
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
์†Œ์˜ ๐Ÿ€
[Java] ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜(Garbage Collection) ๊ธฐ๋ณธ ๊ฐœ๋…
์ƒ๋‹จ์œผ๋กœ

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