๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด ๊ธ€

(377)
[Java][JVM] ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜ Garbage Collection ์ถœ์ฒ˜ChatGPTGarbate Collection(๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜, GC)์€ Java Virtual Machine(JVM)์—์„œ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์ž๋™ํ™”ํ•˜๋Š” ํ•ต์‹ฌ ๊ธฐ๋Šฅ์ด๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ๋ช…์‹œ์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ๋ฅผ ํ•˜์ง€ ์•Š๊ณ ๋„ ์•ˆ์ „ํ•˜๊ฒŒ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์„ ํ†ตํ•ด ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์ž๋™์œผ๋กœ ํšŒ์ˆ˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ  ํ”„๋กœ๊ทธ๋žจ์˜ ์•ˆ์ •์„ฑ์„ ๋†’์ด๋Š” ๋ฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•œ๋‹ค.GC ์ž์ฒด๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋ฅผ ์™„์ „ํžˆ ๋ฐฉ์ง€ํ•  ์ˆ˜๋Š” ์—†์œผ๋ฉฐ, ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜์— ๋„์›€์„ ์ฃผ๋Š” ๋ฐฉ์‹๊ณผ ๊ทธ ํ•œ๊ณ„๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์˜ ๊ฐœ๋…๊ฐ€๋น„์ง€ ์ปฌ๋ž™์…˜์ด๋ž€?๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์€ ํ”„๋กœ๊ทธ๋žจ์ด ๋” ์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฐ์ฒด(garbage)๋ฅผ ์ฐพ์•„์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํšŒ์ˆ˜ํ•˜๋Š” ๊ณผ์ •์ด๋‹ค. ์ด๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ  ํ”„๋กœ๊ทธ๋žจ..
[JVM][GC] ๋ฉ”๋ชจ๋ฆฌ ๋‹จํŽธํ™” ์ถœ์ฒ˜Gemini๋ฉ”๋ชจ๋ฆฌ ๋‹จํŽธํ™”๋ž€?๋ฉ”๋ชจ๋ฆฌ ๋‹จํŽธํ™”๋Š” GC๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ํ˜„์ƒ์œผ๋กœ, ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ์ž‘์€ ์กฐ๊ฐ๋“ค๋กœ ๋‚˜๋‰˜์–ด์ ธ ํฐ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•  ์ˆ˜ ์—†๊ฒŒ ๋˜๋Š” ํ˜„์ƒ์ด๋‹ค.๋งˆ์น˜ ํผ์ฆ ์กฐ๊ฐ์ฒ˜๋Ÿผ ์ž‘์€ ๋นˆ ๊ณต๊ฐ„๋“ค์ด ๋งŽ์ด ์ƒ๊ฒจ์„œ, ํฐ ํผ์ฆ ์กฐ๊ฐ์„ ๋งž์ถœ ๊ณต๊ฐ„์ด ์—†์–ด์ง€๋Š” ๊ฒƒ๊ณผ ๋น„์Šทํ•˜๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ๋‹จํŽธํ™”๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ด์œ ํž™ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐํž™ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋™์ ์œผ๋กœ ํ• ๋‹น๋˜๋Š” ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„์œผ๋กœ, ํ• ๋‹น ๋ฐ ํ•ด์ œ๊ฐ€ ๋ฐ˜๋ณต๋˜๋ฉด์„œ ์ž์œ  ๊ณต๊ฐ„์ด ๋ถˆ๊ทœ์น™ํ•˜๊ฒŒ ๋ถ„ํ• ๋œ๋‹ค.๊ฐ์ฒด ํฌ๊ธฐ๋‹ค์–‘ํ•œ ํฌ๊ธฐ์˜ ๊ฐ์ฒด๊ฐ€ ํ• ๋‹น๋˜๊ณ  ํ•ด์ œ๋˜๋ฉด์„œ, ๋‚จ๋Š” ๊ณต๊ฐ„์ด ์ž‘์€ ์กฐ๊ฐ์œผ๋กœ ๋‚˜๋‰˜๊ฒŒ ๋œ๋‹ค.GC ์•Œ๊ณ ๋ฆฌ์ฆ˜GC ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋”ฐ๋ผ ๋ฉ”๋ชจ๋ฆฌ ๋‹จํŽธํ™”๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ •๋„๊ฐ€ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ๋‹จํŽธํ™”์˜ ๋ฌธ์ œ์ ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„ํฐ ์—ฐ์†๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ, ..
[Java] ์–ด๋…ธํ…Œ์ด์…˜ ์ถœ์ฒ˜Gemini์–ด๋…ธํ…Œ์ด์…˜(Annotation)์ด๋ž€์ž๋ฐ” ์†Œ์Šค ์ฝ”๋“œ์— ์ถ”๊ฐ€ํ•˜์—ฌ ํŠน์ • ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์˜ ์ผ์ข…์ด๋‹ค. ์ด๋Ÿฌํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋Š” ์ปดํŒŒ์ผ๋Ÿฌ, ๊ฐœ๋ฐœ ๋„๊ตฌ, ๋˜๋Š” ๋Ÿฐํƒ€์ž„ ์‹œ์Šคํ…œ์— ์˜ํ•ด ์ฝํ˜€์ ธ ๋‹ค์–‘ํ•œ ์šฉ๋„๋กœ ํ™œ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค. ๋งˆ์น˜ ํฌ์ŠคํŠธ์ž‡์ฒ˜๋Ÿผ ์ฝ”๋“œ์— ๋ฉ”๋ชจ๋ฅผ ๋ถ™์—ฌ ๋†“๋Š” ๊ฒƒ๊ณผ ๋น„์Šทํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์‰ฝ๋‹ค. ํŠน์ง•์„ ์–ธ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ฝ”๋“œ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์„ ์–ธํ•˜์—ฌ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ๋†’์ด๊ณ  ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ํ•œ๋‹ค.๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ œ๊ณต์ปดํŒŒ์ผ๋Ÿฌ, IDE, ํ”„๋ ˆ์ž„์›Œํฌ ๋“ฑ์— ์ถ”๊ฐ€์ ์ธ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋”์šฑ ์ •๊ตํ•œ ์ฒ˜๋ฆฌ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•œ๋‹ค.์ฝ”๋“œ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Œ์–ด๋…ธํ…Œ์ด์…˜ ์ž์ฒด๋Š” ์‹คํ–‰ ์ฝ”๋“œ์— ์ง์ ‘์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์ง€๋งŒ, ์ปดํŒŒ์ผ ์‹œ์ ์ด๋‚˜ ๋Ÿฐํƒ€์ž„ ์‹œ์ ์— ํŠน์ • ํ–‰์œ„๋ฅผ ์œ ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค. ์ข…๋ฅ˜ํ‘œ์ค€ ์–ด๋…ธํ…Œ์ด์…˜์ž๋ฐ”์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณต๋˜..
[์šฉ์–ด] AOP Aspect Oriented Programming ์ถœ์ฒ˜GeminiAOP(Aspect Oriented Programming)๋Š” ๊ด€์  ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ผ๊ณ  ๋ฒˆ์—ญ๋˜๋ฉฐ, ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์—์„œ ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋Šฅ(์˜ˆ: ๋กœ๊ทธ, ํŠธ๋žœ์žญ์…˜, ๋ณด์•ˆ ๋“ฑ)์„ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์—์„œ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ชจ๋“ˆํ™”ํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„์ด๋‹ค. ํ•„์š”์„ฑ์ฝ”๋“œ ์ค‘๋ณต ๋ฐฉ์ง€์—ฌ๋Ÿฌ ํด๋ž˜์Šค์—์„œ ๊ณตํ†ต์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋Šฅ์„ ๋ณ„๋„์˜ ๋ชจ๋“ˆ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ์ฝ”๋“œ ์ค‘๋ณต์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.์œ ์ง€๋ณด์ˆ˜์„ฑ ํ–ฅ์ƒ๊ณตํ†ต ๊ธฐ๋Šฅ์„ ํ•œ ๊ณณ์—์„œ ๊ด€๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•  ๋•Œ ์ˆ˜์ •ํ•ด์•ผ ํ•  ์ฝ”๋“œ์˜ ์–‘์ด ์ค„์–ด๋“ ๋‹ค.๋ชจ๋“ˆ์„ฑ ํ–ฅ์ƒํ•ต์‹ฌ ๊ธฐ๋Šฅ์—๋งŒ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•จ์œผ๋กœ์จ ์ฝ”๋“œ์˜ ๋ชจ๋“ˆ์„ฑ์„ ๋†’์ธ๋‹ค. ํ•ต์‹ฌ๊ฐœ๋…๊ด€์ (Aspect)๊ณตํ†ต ๊ธฐ๋Šฅ์„ ๋‹ด๋‹นํ•˜๋Š” ๋ชจ๋“ˆ์ด๋‹ค. ๋กœ๊ทธ, ํŠธ๋žœ์žญ์…˜, ๋ณด์•ˆ ๋“ฑ์ด ๋Œ€ํ‘œ์ ์ธ ๊ด€์ ์ด๋‹ค.์กฐ์ธ ํฌ์ธํŠธ(Join Point)๊ด€์ ์ด ์ ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ..
[์šฉ์–ด] ํ”„๋ก์‹œ ๊ฐ์ฒด ์ถœ์ฒ˜Geminiํ”„๋ก์‹œ ๊ฐ์ฒด๋Š” ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ๋™์ž‘ํ•˜๋Š” ๋Œ€๋ฆฌ ๊ฐ์ฒด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์‰ฝ๋‹ค. ๋งˆ์น˜ ๋ถ€๋™์‚ฐ ์ค‘๊ฐœ์ธ์ด ์ง‘์ฃผ์ธ์„ ๋Œ€์‹ ํ•˜์—ฌ ์ง‘์„ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ, ํ”„๋ก์‹œ ๊ฐ์ฒด๋Š” ์›๋ณธ ๊ฐ์ฒด๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ํ”„๋ก์‹œ ๊ฐ์ฒด๋Š” ๋Œ€๋ถ€๋ถ„ ํ”„๋ก์‹œ ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑ๋œ๋‹ค. ๊ด€๋ จ ๊ธ€ -> [๋””์ž์ธํŒจํ„ด] ํ”„๋ก์‹œ ํŒจํ„ด ํ•„์š”์„ฑ1. ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ์ œ๊ณต์›๋ณธ ๊ฐ์ฒด์— ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ํ”„๋ก์‹œ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ์ „ํ›„์— ๋กœ๊ทธ๋ฅผ ๋‚จ๊ธฐ๊ฑฐ๋‚˜, ํŠน์ • ์กฐ๊ฑด์—์„œ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ์„ ๋ง‰๋Š” ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.2. ์ ‘๊ทผ ์ œ์–ด์›๋ณธ ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ์ œํ•œํ•˜๊ณ  ์‹ถ์„ ๋•Œ ํ”„๋ก์‹œ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํŠน์ • ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•œ ํ˜ธ์ถœ์„ ๋ง‰๊ฑฐ๋‚˜, ํŠน์ • ์‚ฌ์šฉ์ž์—๊ฒŒ๋งŒ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ์„ ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.3. ์ง€์—ฐ..
[๋””์ž์ธํŒจํ„ด] ํ”„๋ก์‹œ ํŒจํ„ด ์ถœ์ฒ˜Geminiํ”„๋ก์‹œ ํŒจํ„ดํ”„๋ก์‹œ ํŒจํ„ด์€ ๊ฐ์ฒด ์ง€ํ–ฅ ๋””์ž์ธ ํŒจํ„ด ์ค‘ ํ•˜๋‚˜๋กœ, ํŠน์ • ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ์ œ์–ดํ•˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ๋ถ€์—ฌํ•˜๊ธฐ ์œ„ํ•ด ๋Œ€๋ฆฌ ๊ฐ์ฒด(ํ”„๋ก์‹œ)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ„ด์ด๋‹ค. ๋งˆ์น˜ ๋ถ€๋™์‚ฐ ์ค‘๊ฐœ์ธ์ด ์ง‘์ฃผ์ธ์„ ๋Œ€์‹ ํ•˜์—ฌ ์ง‘์„ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ, ํ”„๋ก์‹œ๋Š” ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค. ์™œ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€ - ์žฅ์  ์ง€์—ฐ ๋กœ๋”ฉํฐ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋น„์šฉ์ด ํด ๋•Œ, ์‹ค์ œ๋กœ ํ•„์š”ํ•œ ์‹œ์ ๊นŒ์ง€ ๊ฐ์ฒด ์ƒ์„ฑ์„ ๋ฏธ๋ฃจ๊ธฐ ์œ„ํ•ด ํ”„๋ก์‹œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.์›๊ฒฉ ํ”„๋ก์‹œ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์›๊ฒฉ ๊ฐ์ฒด์— ์ ‘๊ทผํ•  ๋•Œ, ๋„คํŠธ์›Œํฌ ํ†ต์‹ ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํ”„๋ก์‹œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.๋ณด์•ˆ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ์ œํ•œํ•˜๊ฑฐ๋‚˜ ํŠน์ • ์กฐ๊ฑด์—์„œ๋งŒ ์ ‘๊ทผ์„ ํ—ˆ์šฉํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋ก์‹œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.์บ์‹ฑ๊ฐ์ฒด์˜ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ๊ฒฐ๊ณผ๋ฅผ ์บ์‹ฑํ•˜์—ฌ ๋ฐ˜๋ณต์ ์ธ ๊ณ„์‚ฐ์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.์ถ”๊ฐ€ ๊ธฐ๋Šฅ์›๋ณธ ๊ฐ์ฒด์— ์ถ”๊ฐ€์ ์ธ ๊ธฐ๋Šฅ..
[Java] ํด๋ž˜์Šค ์•ˆ์˜ ํด๋ž˜์Šค / Static Nested Class, Member Inner Class, Local Inner class, Anonymous Inner Class ์ถœ์ฒ˜ChatGPTNested Class ๊ตฌ์กฐNested classโจฝ Static Nested Classโจฝ Inner class    โจฝ Memeber Inner Class (Non-static Inner Class, Inner Class)    โจฝ Local Inner class (Local Class)    โจฝ Anonymouse Inner class (Anonymouse Class) 1. Outer class์™ธ๋ถ€ ํด๋ž˜์Šค๋Š” ๋ชจ๋“  ์ค‘์ฒฉ ํด๋ž˜์Šค(nested class)์˜ ์ปจํ…Œ์ด๋„ˆ ์—ญํ• ์„ ํ•œ๋‹ค.์ค‘ํ…๋œ ๋ชจ๋“  ํด๋ž˜์Šค๋Š” ์™ธ๋ถ€ ํด๋ž˜์Šค ๋‚ด๋ถ€์— ์ •์˜๋œ๋‹ค.2. Static Nested Classclass OuterClass { static class StaticNestedClass { // Static..
[Java] immutableํ•œ String, mutableํ•œ StringBuilder์™€ StringBuffer ์ถœ์ฒ˜ChatGPTImmtable vs Mutable ๊ธฐ์ค€1.Immutable ๊ฐ์ฒด๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋œ ํ›„์—๋Š” ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋Š” ๊ฐ์ฒด์ด๋‹ค. ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์ƒˆ๋กœ์šด ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.2. Mutable ๊ฐ์ฒด๊ฐ์ฒด์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด. ๊ฐ™์€ ๊ฐ์ฒด๋ฅผ ๊ณ„์†ํ•ด์„œ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. String ํด๋ž˜์Šค : Immtable ๊ฐ์ฒดString ๊ฐ์ฒด๋Š” ํ•œ ๋ฒˆ ์ƒ์„ฑ๋˜๋ฉด ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค. ๋ฌธ์ž์—ด์„ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ์ƒˆ๋กœ์šด String ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•œ๋‹ค.ํŠน์ง•์•ˆ์ „์„ฑ: String์ด ๋ถˆ๋ณ€์ด๊ธฐ ๋•Œ๋ฌธ์—, String ๊ฐ์ฒด๋ฅผ ๊ณต์œ ํ•ด๋„ ๊ฐ์ฒด์˜ ์ƒํƒœ๊ฐ€ ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ ํ™˜๊ฒฝ์—์„œ ์•ˆ์ „ํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด: ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์€ ์ž๋ฐ”์—์„œ ์ƒ์ˆ˜ ํ’€(Constant Pool)์—์„œ ๊ด€๋ฆฌ๋˜๋ฉฐ, ๊ฐ™์€ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์€ ์žฌ..