์ ์ฒด ๊ธ (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)์์ ๊ด๋ฆฌ๋๋ฉฐ, ๊ฐ์ ๋ฌธ์์ด ๋ฆฌํฐ๋ด์ ์ฌ.. ์ด์ 1 ยทยทยท 12 13 14 15 16 17 18 ยทยทยท 48 ๋ค์