๐ ์คํ๋ง ์ด์ผ๊ธฐ์ ์ ๊ฐ์ฒด์งํฅ ์ด์ผ๊ธฐ๊ฐ ๋์ค๋๊ฐ ?
- ์คํ๋ง์ ๋ค์ ๊ธฐ์ ๋ก ๋คํ์ฑ + OCP,DIP๋ฅผ ๊ฐ๋ฅํ๊ฒ ์ง์
โ๏ธ DI(Dependency Injection) : ์์กด๊ด๊ณ, ์์กด์ฑ์ฃผ์
โ๏ธ DI ์ปจํ ์ด๋ ์ ๊ณต
> ์๋ฐ ๊ฐ์ฒด๋ค์ ์ปจํ ์ด๋ ์์ ๋ฃ์ด๋๊ณ ์์กด๊ด๊ณ๋ฅผ ์ฃผ์ ํ๊ณ ์ ์ดํด์ค
- ํด๋ผ์ด์ธํธ ์ฝ๋์ ๋ณ๊ฒฝ์์ด ๊ธฐ๋ฅ ํ์ฅ
- ์ฝ๊ฒ ๋ถํ์ ๊ต์ฒดํ๋ฏ์ด ๊ฐ๋ฐํ ์ ์์
๐ ์คํ๋ง์ด ์๋ ์์
- ์๋ ์ด๋ค ๊ฐ๋ฐ์๊ฐ ์ข์ ๊ฐ์ฒด์งํฅ๊ฐ๋ฐ์ ํ๋ ค๊ณ OCP,DIP ์์น์ ์งํค๋ฉด์ ๊ฐ๋ฐ์ ํด๋ณด๋, ๋ฐฐ๋ณด๋ค ๋ฐฐ๊ผฝ์ด ํฌ๋ค. ๊ทธ๋์ ํ๋ ์ ์ํฌ๋ก ๋ง๋ค์ด๋ฒ๋ฆผ
- ์์ํ๊ฒ ์๋ฐ๋ก OCP,DIP ์์น๋ค์ ์งํค๋ฉด์ ๊ฐ๋ฐ์ ํด๋ณด๋ฉด, ๊ฒฐ๊ตญ ์คํ๋งํ๋ ์์ํฌ๋ฅผ ๋ง๋ค๊ฒ ๋๋ค (์ ํํ๋ DI์ปจํ ์ด๋)
- DI๊ฐ๋ ์ ๋ง๋ก ์ค๋ช ํด๋ ์ดํด๊ฐ ์ ์๋๋ค. ์ฝ๋๋ก ์ง๋ด์ผ ํ์์ฑ์ ์๊ฒ๋๋ค!
- ๊ทธ๋ฌ๋ฉด ์ด์ ์คํ๋ง์ด ์? ๋ง๋ค์ด์ก๋์ง ์ฝ๋๋ก ์ดํดํด๋ณด์
โ ์ ๋ฆฌ
- ๋ชจ๋ ์ค๊ณ์ ์ญํ ๊ณผ ๊ตฌํ์ ๋ถ๋ฆฌํ์
- ์๋์ฐจ, ๊ณต์ฐ์ ์๋ฅผ ๋ ์ฌ๋ฆฌ๊ธฐ
- ์ ํ๋ฆฌ์ผ์ด์ ์ค๊ณ๋ ๊ณต์ฐ์ ์ค๊ณ ํ๋ฏ์ด, ๋ฐฐ์ญ๋ง ๋ง๋ค์ด๋๊ณ ๋ฐฐ์ฐ๋ ์ธ์ ๋ ์ง ์ ์ฐํ๊ฒ ๋ณ๊ฒฝํ ์ ์๋๋ก ๋ง๋๋ ๊ฒ์ด ์ข์ ๊ฐ์ฒด์งํฅ ์ค๊ณ๋ค.
- ์ด์์ ์ผ๋ก๋ ๋ชจ๋ ์ค๊ณ์ ์ธํฐํ์ด์ค๋ฅผ ๋ถ์ฌํ์
๐ฅน ์ค๋ฌด์ ์ธ ๋ฌธ์ ์
- ํ์ง๋ง ์ธํฐํ์ด์ค๋ฅผ ๋์ ํ๋ฉด ์ถ์ํ๋ผ๋ ๋น์ฉ์ด ๋ฐ์ํ๋ค.
> ์ถ์ํ๊ฐ ๋๋ฉด ๊ฐ๋ฐ์ ์ฝ๋๋ฅผ ํ๋ฒ ๋ ์ด์ด๋ด์ผ ํจ
- ๊ธฐ๋ฅ์ ํ์ฅํ ๊ฐ๋ฅ์ฑ์ด ์๋ค๋ฉด, ๊ตฌ์ฒด ํด๋์ค๋ฅผ ์ง์ ์ฌ์ฉํ๊ณ , ํฅํ ๊ผญ ํ์ํ ๋ ๋ฆฌํฉํฐ๋งํด์ ์ธํฐํ์ด์ค๋ฅผ ๋์ ํ๋ ๊ฒ๋ ๋ฐฉ๋ฒ
'Back > Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring] ๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ, AppConfig (1) | 2023.11.28 |
---|---|
[Spring] ํ๋ก์ ํธ ์์ฑ (1) | 2023.10.30 |
[Spring] ์ข์ ๊ฐ์ฒด์งํฅ ์ค๊ณ์ 5๊ฐ์ง ์์น (SOLID) (0) | 2023.10.29 |
[Spring] ์ข์ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ด๋? (0) | 2023.10.29 |
[Spring] Spring ์ด๋ ? (37) | 2023.10.29 |