2-3 Singleton (์ฑ๊ธํค ํจํด)
JiwonDev
# ์ฑ๊ธํค ํจํด ํ๋ก์ธ์ค์ ๊ฐ์ฒด์ ์ธ์คํด์ค๊ฐ ๋จ ํ๋๋ง ์กด์ฌํ๋๋ก ๋ง๋๋ ํจํด. โญ Static ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๊ฐ์ฒด๋ฅผ ํ๋๋ง ์์ฑ, ์ฌ์ฌ์ฉํจ์ผ๋ก์ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๋ฅผ ๋ฐฉ์งํ๋ค. โญ ๊ฐ์ฒด๋ฅผ ์๋ก ์์ฑํ์ง ์๊ณ , ๊ธฐ์กด์ ๊ฐ์ฒด๋ฅผ ์ฌ์ฌ์ฉํจ์ผ๋ก์ ๋ก๋ฉ ์๊ฐ์ ์ค์ฌ ์ฑ๋ฅ์ ํฅ์์ํจ๋ค. โ (์ํฐ ํจํด) ์ฑ๊ธํค ๊ฐ์ฒด๊ฐ ์ํ ๊ฐ์ ๊ฐ์ง ๊ฒฝ์ฐ ์ ๋ง ์ฐพ๊ธฐ ํ๋ Side-Effect์ ์ฅ์ ๋ฅผ ๋ง๋ค ์ ์๋ค. โ ๋ฉํฐ์ค๋ ๋ ํ๊ฒฝ์์ ์ ์ ํ ๋๊ธฐํ ์ฒ๋ฆฌ๋ฅผ ํ์ง ์์ผ๋ฉด, ์ฑ๊ธํค ์ธ์คํด์ค๊ฐ 2๊ฐ๊ฐ ์๊ธธ ๊ฐ๋ฅ์ฑ์ด ์๋ค. # ์ฑ๊ธํค ํจํด์ ๊ตฌํ @1. ์ฆ์ ๋ก๋ฉ (Eager initialization) โก ๊ฐ์ฅ ๋จ์ํ ๋ฐฉ๋ฒ์ด๋ค. private static final ์ ์ฌ์ฉํด์, ํด๋์ค๊ฐ JVM์ ์ฝํ์ง ๋ ๊ฐ์ฒด๊ฐ ๋ง๋ค์ด์ง๋๋ก ํ๋ค. โ ..