[Spring] ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„์™€ ์Šคํ”„๋ง

๐Ÿ“Œ ์Šคํ”„๋ง ์ด์•ผ๊ธฐ์— ์™œ ๊ฐ์ฒด์ง€ํ–ฅ ์ด์•ผ๊ธฐ๊ฐ€ ๋‚˜์˜ค๋Š”๊ฐ€ ?

- ์Šคํ”„๋ง์€ ๋‹ค์Œ ๊ธฐ์ˆ ๋กœ ๋‹คํ˜•์„ฑ + OCP,DIP๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ์ง€์›

  โœ”๏ธ DI(Dependency Injection) : ์˜์กด๊ด€๊ณ„, ์˜์กด์„ฑ์ฃผ์ž…

  โœ”๏ธ DI ์ปจํ…Œ์ด๋„ˆ ์ œ๊ณต

>  ์ž๋ฐ” ๊ฐ์ฒด๋“ค์„ ์ปจํ…Œ์ด๋„ˆ ์•ˆ์— ๋„ฃ์–ด๋†“๊ณ  ์˜์กด๊ด€๊ณ„๋ฅผ ์ฃผ์ž…ํ•˜๊ณ  ์ œ์–ดํ•ด์คŒ 

- ํด๋ผ์ด์–ธํŠธ ์ฝ”๋“œ์˜ ๋ณ€๊ฒฝ์—†์ด ๊ธฐ๋Šฅ ํ™•์žฅ

- ์‰ฝ๊ฒŒ ๋ถ€ํ’ˆ์„ ๊ต์ฒดํ•˜๋“ฏ์ด ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Œ

 

๐Ÿ“Œ ์Šคํ”„๋ง์ด ์—†๋˜ ์‹œ์ ˆ

- ์˜›๋‚  ์–ด๋–ค ๊ฐœ๋ฐœ์ž๊ฐ€ ์ข‹์€ ๊ฐ์ฒด์ง€ํ–ฅ๊ฐœ๋ฐœ์„ ํ•˜๋ ค๊ณ  OCP,DIP ์›์น™์„ ์ง€ํ‚ค๋ฉด์„œ ๊ฐœ๋ฐœ์„ ํ•ด๋ณด๋‹ˆ, ๋ฐฐ๋ณด๋‹ค ๋ฐฐ๊ผฝ์ด ํฌ๋‹ค. ๊ทธ๋ž˜์„œ ํ”„๋ ˆ์ž„ ์›Œํฌ๋กœ ๋งŒ๋“ค์–ด๋ฒ„๋ฆผ

- ์ˆœ์ˆ˜ํ•˜๊ฒŒ ์ž๋ฐ”๋กœ OCP,DIP ์›์น™๋“ค์„ ์ง€ํ‚ค๋ฉด์„œ ๊ฐœ๋ฐœ์„ ํ•ด๋ณด๋ฉด, ๊ฒฐ๊ตญ ์Šคํ”„๋งํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๋งŒ๋“ค๊ฒŒ ๋œ๋‹ค (์ •ํ™•ํžˆ๋Š” DI์ปจํ…Œ์ด๋„ˆ)

- DI๊ฐœ๋…์€ ๋ง๋กœ ์„ค๋ช…ํ•ด๋„ ์ดํ•ด๊ฐ€ ์ž˜ ์•ˆ๋œ๋‹ค. ์ฝ”๋“œ๋กœ ์งœ๋ด์•ผ ํ•„์š”์„ฑ์„ ์•Œ๊ฒŒ๋œ๋‹ค!

- ๊ทธ๋Ÿฌ๋ฉด ์ด์ œ ์Šคํ”„๋ง์ด ์™œ? ๋งŒ๋“ค์–ด์กŒ๋Š”์ง€ ์ฝ”๋“œ๋กœ ์ดํ•ดํ•ด๋ณด์ž

 

โœ…  ์ •๋ฆฌ

- ๋ชจ๋“  ์„ค๊ณ„์— ์—ญํ• ๊ณผ ๊ตฌํ˜„์„ ๋ถ„๋ฆฌํ•˜์ž

- ์ž๋™์ฐจ, ๊ณต์—ฐ์˜ ์˜ˆ๋ฅผ ๋– ์˜ฌ๋ฆฌ๊ธฐ

- ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค๊ณ„๋„ ๊ณต์—ฐ์„ ์„ค๊ณ„ ํ•˜๋“ฏ์ด, ๋ฐฐ์—ญ๋งŒ ๋งŒ๋“ค์–ด๋‘๊ณ  ๋ฐฐ์šฐ๋Š” ์–ธ์ œ๋“ ์ง€ ์œ ์—ฐํ•˜๊ฒŒ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์ข‹์€ ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„๋‹ค.

- ์ด์ƒ์ ์œผ๋กœ๋Š” ๋ชจ๋“  ์„ค๊ณ„์— ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋ถ€์—ฌํ•˜์ž 

 

๐Ÿฅน ์‹ค๋ฌด์ ์ธ ๋ฌธ์ œ์ 

- ํ•˜์ง€๋งŒ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋„์ž…ํ•˜๋ฉด ์ถ”์ƒํ™”๋ผ๋Š” ๋น„์šฉ์ด ๋ฐœ์ƒํ•œ๋‹ค.

> ์ถ”์ƒํ™”๊ฐ€ ๋˜๋ฉด ๊ฐœ๋ฐœ์ž ์ฝ”๋“œ๋ฅผ ํ•œ๋ฒˆ ๋” ์—ด์–ด๋ด์•ผ ํ•จ

- ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์—†๋‹ค๋ฉด, ๊ตฌ์ฒด ํด๋ž˜์Šค๋ฅผ ์ง์ ‘์‚ฌ์šฉํ•˜๊ณ , ํ–ฅํ›„ ๊ผญ ํ•„์š”ํ•  ๋•Œ ๋ฆฌํŒฉํ„ฐ๋งํ•ด์„œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋„์ž…ํ•˜๋Š” ๊ฒƒ๋„ ๋ฐฉ๋ฒ•