์ธ์คํด์ค ํ๋์ ๊ดํด์ ์ง๋ฌธ์ด ์์ต๋๋ค.
์๋
ํ์ธ์ ์ ์๋! ์ ๋ ์ด๊ฒ ๊ถ๊ธํ์๋๋ฐ ์ด ๊ธ์ ๋ณด๊ณ ์ดํด๊ฐ ๋๋ ๋ฏ ํ๋ฉด์๋ ์ถ๊ฐ์ ์ธ ๊ถ๊ธ์ฆ์ด ์๊ฒจ ์ด๋ ๊ฒ ๋๊ธ์ ๋จ๊น๋๋ค. ์ ์๋ ๋ง์์ Settings ํด๋์ค์ field๋ฅผ eager initialization ํ๋ ๋ฐฉ์์ Settings.getInstance() ์ด์ธ์ ๋ค๋ฅธ ๋ฉ์๋๊ฐ ํธ์ถ์ด ๋์์ ๋ instance๊ฐ ๋ฏธ๋ฆฌ ์ด๊ธฐํ๋๋๊น ํฌ๊ธฐ๊ฐ ํด ๊ฒฝ์ฐ ๋ก๋ฉ์๊ฐ, ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๊ฐ ๋ ์ ์๋ค๋ ๋ง์์ด์ ๊ฑฐ์ฃ ? SettingsHolder๋ฅผ static inner class๋ก ์ฌ์ฉํ์ ๋์๋ ๋ฌด์กฐ๊ฑด Settings.getInstance() ์ฒซ ๋ฒ์งธ ํธ์ถ์ ์ํด์๋ง ๊ฐ์ฒด๊ฐ ์ด๊ธฐํ๋๋๊น ์์ ๋ญ๋น๊ฐ ์๋ค๋ ๋ง์์ด์๊ตฌ์. ์ ๊ฐ ์ดํดํ ๊ฒ ๋ง๋์ ...? ์ ๊ฐ ์ดํดํ ๊ฒ ๋ง๋ค๋ ๊ฐ์ ํ์ ์ง๋ฌธ์ ๋๋ฆฌ์๋ฉด, ๊ทผ๋ฐ ์ด์งํผ Settings ํด๋์ค๊ฐ Singleton์ด๋ผ ๋ฌด์กฐ๊ฑด ์ฒ์ ์ด ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด Settings.getInstance() ๋ฉ์๋๋ฅผ ํธ์ถํด์ผ ํด์ ๋ค๋ฅธ ๋ฉ์๋๋ฅผ ๋จผ์ ํธ์ถํ๋ ๊ฒฝ์ฐ๊ฐ ์์ ๊ฒ ๊ฐ์๋ฐ, ๊ผญ ๊ทธ๋ฐ ๊ฑด ์๋๊ฐ์ ..? ๋ฌด์กฐ๊ฑด ์ฒ์ ํธ์ถ๋๋ ๋ฉ์๋๊ฐ Settings.getInstance() ๋ผ๋ฉด static inner class๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๊ณผ Settings class์ field์ ๊ทธ๋ฅ ์ด๊ธฐํ ํ๋ ๋ฐฉ๋ฒ์ด๋ ํด๋์ค ๋ก๋ฉ ์์ ์ ์์ ๊ฐ์ ๊ฒ ๊ฐ์์์... ๋ต๋ณ ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค^^