๐ก ์ฑ๊ธํค ํจํด์ด๋?
์๋ฒ๋ ํ๋๋น ์ต๋๋ก ์ด๋น ์์ญ์์ ์๋ฐฑ ๋ฒ์ฉ ์์ฒญ์ ๋ฐ์ ์ฒ๋ฆฌํ ์ ์๋ ๋์ ์ฑ๋ฅ์ ์๊ตฌํ๋ฉฐ,
๊ณ์ธตํ๊ตฌ์กฐ๋ก ์ด๋ค์ง ๊ฒฝ์ฐ๊ฐ ๋๋ถ๋ถ์ด๊ณ , ๋น์ฆ๋์ค ๋ก์ง๋ ๋ณต์กํ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
์ด๋ ๋งค๋ฒ ์์ฒญ์ด ์ฌ๋๋ง๋ค ๋ก์ง์ ๋ด๋นํ๋ ์ค๋ธ์ ํธ๋ฅผ ๋ง๋ ๋ค๋ฉด, ๋ถํ๊ฐ ๊ฑธ๋ ค ์๋ฒ๊ฐ ๊ฐ๋นํ๊ธฐ ํ๋ค๊ฒ์ ๋๋ค.
(์ค๋ธ์ ํธ์ ๋์ผ์ฑ๊ณผ ๋ฑ๋ฑ์ฑ ์ฐธ๊ณ )
๊ทธ๋์ ์๋น์ค ์ค๋ธ์ ํธ๋ผ๋ ๊ฐ๋ ์ ์ฌ์ฉํด ํ๋์ ์ค๋ธ์ ํธ๋ง ๋ง๋ค์ด๋๊ณ , ์ด๋ฅผ ๊ณต์ ํด์ ์ฌ์ฉํ๋ ๋ฐฉ์์ ํํฉ๋๋ค.
์ด๋ ๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ ํ๋ ์, ๋๊ฐ ํ ๊ฐ์ ์ค๋ธ์ ํธ๋ง ๋ง๋ค์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ฑ๊ธํค ํจํด ์๋ฆฌ์ ๋๋ค.
โ๏ธ ์ฑ๊ธํค ํจํด์ ๊ตฌํ ๋ฐฉ๋ฒ
- ํด๋์ค ๋ฐ์์๋ ์ค๋ธ์ ํธ ์์ฑ์ ๋ชปํ๊ณ , ์์ฑ์๋ฅผ private๋ก ๋ง๋ญ๋๋ค.
- ์์ฑ๋ ์ฑ๊ธํค ์ค๋ธ์ ํธ๋ฅผ ์ ์ฅํ ์ ์๋ ์์ ๊ณผ ๊ฐ์ ํ์ ์ ์คํํฑ ํ๋๋ฅผ ์ ์ํด์ค๋๋ค.
- getInstance()๋ฅผ ๋ง๋ค๊ณ ์ด ๋ฉ์๋๊ฐ ์ต์ด๋ก ํธ์ถ๋๋ ์์ ์์ ํ๋ฒ๋ง ์ค๋ธ์ ํธ๊ฐ ๋ง๋ค์ด์ง๊ฒ ํด์ค๋๋ค.
- ํ๋ฒ ์ค๋ธ์ ํธ๊ฐ ๋ง๋ค์ด์ง๊ณ ๋ ํ getInstance()๋ฅผ ํตํด ์ด๋ฏธ ๋ง๋ค์ด์ ธ ์๋ ์ค๋ธ์ ํธ๋ฅผ ๋๊ฒจ์ค๋๋ค.
โ๏ธ ์ฑ๊ธํค ํจํด์ ํ๊ณ
- private ์์ฑ์๋ฅผ ๊ฐ๊ณ ์๊ธฐ ๋๋ฌธ์ ์์ํ ์ ์๋ค.
- ์ฑ๊ธํค์ ํ ์คํธํ๊ธฐ๊ฐ ํ๋ค๋ค.
- ์๋ฒํ๊ฒฝ์์๋ ์ฑ๊ธํค์ด ํ๋๋ง ๋ง๋ค์ด์ง๋ ๊ฒ์ ๋ณด์ฅํ์ง ๋ชปํ๋ค.
- ์ฑ๊ธํค์ ์ฌ์ฉ์ ์ ์ญ ์ํ๋ฅผ ๋ง๋ค ์ ์๊ธฐ ๋๋ฌธ์ ๋ฐ๋์งํ์ง ๋ชปํ๋ค.
๐ก ์ฑ๊ธํค ๋ ์ง์คํธ๋ฆฌ๋?
์คํ๋ง์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ณ๋ค๋ฅธ ์ค์ ์ ํ์ง ์์ผ๋ฉด ๋ด๋ถ์์ ์์ฑํ๋ ๋น ์ค๋ธ์ ํธ๋ฅผ ๋ชจ๋ ์ฑ๊ธํค์ผ๋ก ๋ง๋ญ๋๋ค.
์ฌ๊ธฐ์ ์ฑ๊ธํค์ ๋์์ธ ํจํด์์ ๋์ค๋ ์ฑ๊ธํค ํจํด๊ณผ ๋น์ทํ ๊ฐ๋ ์ด์ง๋ง ๊ตฌํ ๋ฐฉ๋ฒ์ ๋ค๋ฆ ๋๋ค.
์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ปจํ ์คํธ๋ ์ฑ๊ธํค์ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ ์ฑ๊ธํค ๋ ์ง์คํธ๋ฆฌ๋ผ๊ณ ํ ์ ์์ต๋๋ค.
์คํ๋ง์ ์ ์ฑ๊ธํค์ผ๋ก ๋น์ ๋ง๋ค๊น?
์คํ๋ง์ ์ฃผ๋ก ์ ์ฉ๋๋ ๋์์ด ์๋ฒํ๊ฒฝ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์คํ๋ง์ ์ฑ๊ธํค์ ์ ๊ทน ์ง์งํ์ง๋ง, ์์ ๊ฐ์ด ํ๊ณ๊ฐ ๋ง์ด ์กด์ฌํฉ๋๋ค.
์ด์ ์คํ๋ง์ ์ง์ ์ฑ๊ธํค ํํ์ ์ค๋ธ์ ํธ๋ฅผ ๋ง๋ค๊ณ ๊ด๋ฆฌํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ์ฑ๊ธํค ๋ ์ง์คํธ๋ฆฌ๋ฅผ ๊ฐ๊ณ ์์ต๋๋ค.
์ด๋ ์คํํฑ ๋ฉ์๋์ private ์์ฑ์๋ฅผ ์ฌ์ฉํด์ผํ๋ ๋น์ ์์ ์ธ ํด๋์ค๊ฐ ์๋๋ผ ํ๋ฒํ ์๋ฐ ํด๋์ค๋ฅผ
์ฑ๊ธํค์ผ๋ก ํ์ฉํ๊ฒ ํด์ค๋๋ค.
๊ฐ์ฅ ์ค์ํ ๊ฒ์ ์ฑ๊ธํค ํจํด๊ณผ ๋ฌ๋ฆฌ ์คํ๋ง์ด ์ง์งํ๋ ๊ฐ์ฒด์งํฅ์ ์ธ ์ค๊ณ ๋ฐฉ์์ ์์น, ๋์์ธ ํจํด ๋ฑ์ ์ ์ฉํ๋๋ฐ
์๋ฌด๋ฐ ์ ์ฝ์ด ์๊ฒ ๋ง๋ค์ด์ค๋ค๋ ๊ฒ์ ๋๋ค.
๐งพ ์ ๋ฆฌ
์ฐธ๊ณ ๋ฌธ์ :
ํ ๋น์ ์คํ๋ง3 (์ด์ผ๋ฏผ)
'Back-end > Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring] XML์ ์ด์ฉํ DI ์์กด๊ด๊ณ ์ค์ ์ ๋ณด (0) | 2020.08.02 |
---|---|
[Spring] ์์กด์ฑ ์ฃผ์ - DI (0) | 2020.08.02 |
[Spring] ์คํ๋ง์ IoC (0) | 2020.07.31 |
[Spring] ์ค๋ธ์ ํธ ํฉํ ๋ฆฌ (0) | 2020.07.29 |
[Spring] ๊ฐ์ฒด์งํฅ์ DAO - ํ์ฅ (์ ๋ต ํจํด) (0) | 2020.07.27 |