Singleton Pattern
SingleTon Pattern (์ฑ๊ธํค ํจํด)

ํ๋์ ํด๋์ค์ ๋ํด
์ค์ง ํ๋์ ๊ฐ์ฒด๋ง ์์ฑ๋จ
์ ๋ณด์ฅํ๋ ํจํด์์ฑ์๋ฅผ ํตํด ๊ฐ์ฒด๋ฅผ ์์ฑํ์ง ์๊ณ
Getter๋ฅผ ํตํด ๊ฐ์ฒด๋ฅผ ํ๋
ํ๋ค.
๊ตฌํ ๋ฐฉ๋ฒ
์์ฑ์๋ฅผ private์ผ๋ก ์ ์ธํด ํด๋น ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ๋ง์๋๋ก ์์ฑํ์ง ๋ชปํ๋๋ก ํด์ผ ํ๋ค.
์ฑ๊ธํค ํจํด์ ์ฌ์ฉํ ํด๋์ค ์์์ ํด๋น ํด๋์ค์ ์ธ์คํด์ค๋ฅผ private static ๋ณ์๋ก ์ ์ธํ๋ค.
๋ ๊ฐ์ง ๋ฐฉ๋ฒ
์ผ๋ก ๊ตฌํ์ด ๊ฐ๋ฅํ๋ค.ํ์์ฑ ์ฌ๋ถ์ ์๊ด ์์ด ๊ฐ์ฒด๋ฅผ ๋ฌด์กฐ๊ฑด ๋ง๋ค์ด ๋๋ ๊ฒฝ์ฐ
์ฒ์ getter๊ฐ ํธ์ถ๋ ๋ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๊ฒฝ์ฐ
์ฅ์
๋ฉ๋ชจ๋ฆฌ ์ธก๋ฉด์์ ์ด๋์ด๋ค. ํ๋์ ์ธ์คํด์ค๋ง ์์ฑํด ์ด๋ฅผ ์ฌ๋ฌ ๊ณณ์์ ๊ณต์ ํ๊ธฐ ๋๋ฌธ์ด๋ค.
ํ๋์ ์ธ์คํด์ค๋ฅผ ๊ณต์ ํ๋ฏ๋ก, ๊ณต์ฉ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ธฐ์ ์ข๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ(Pool) ๋ํ ์ด๋ฌํ ์ด์ ์ ์ป๊ธฐ ์ํด ๋ฑ์ฅํ ๊ฐ๋ ์ด๋ค.
๋ฌธ์ ์
์ฑ๊ธ ์ค๋ ๋ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ง ์ฌ์ฉํ ์ ์๋ค. ๋ฉํฐ ์ค๋ ๋ ํ๊ฒฝ์์๋ ์๋ก ๋ค๋ฅธ ์ค๋ ๋๊ฐ ๋์์ getter์ ์ ๊ทผํ๋ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ด๋ฌํ ๋ฌธ์ ์ ๋ํ ๋ณด์์ฑ ์ผ๋ก
Double-Checked Locking Pattern (๋๋ธ ์ฒดํฌ ๋กํน ํจํด)
์ด ๋ฑ์ฅํ๋ค.
Double-Checked Locking Pattern (๋๋ธ ์ฒดํฌ ๋กํน ํจํด)
๋ฉํฐ ์ค๋ ๋ ํ๊ฒฝ์์ ์ฑ๊ธํค ํจํด์ฒ๋ผ ์ธ์คํด์ค๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด getter๋ฅผ ๋๊ธฐํ(synchronized)ํ๋ ๋ฐฉ๋ฒ
Last updated