IoC Container

Spring Framework์˜ ํ•ต์‹ฌ ๊ฐœ๋… 3๊ฐ€์ง€

์†Œ์Šค ์ฝ”๋“œ์˜ ๋ณต์žก๋„๋ฅผ ์ค„์ด๊ณ , ํšจ์œจ์„ ๋†’์ด๊ณ , ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด Spring์—์„œ๋Š” ๋‹ค์Œ์˜ 3๊ฐ€์ง€๋ฅผ ์ด์šฉํ•œ๋‹ค.

  1. IoC Container

IoC Container์˜ ์ •์˜

IoC๋Š” Inversion of Control(์ œ์–ด ๋ฐ˜์ „)์˜ ์ถ•์•ฝ์–ด์ด๋‹ค.

A, B, C, D ๋„ค ๊ฐœ์˜ ํด๋ž˜์Šค๊ฐ€ ์žˆ๊ณ  ๋‹ค์Œ์˜ ๊ด€๊ณ„๋ฅผ ๊ฐ–๋Š”๋‹ค๊ณ  ํ•˜์ž.

IoC Container

๊ฒฐํ•ฉ์„ฑ์ด ๋†’์€ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฒฝ์šฐ A ์•ˆ์—์„œ B๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํ˜•์‹์œผ๋กœ ๊ฒฐํ•ฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— A-B-C-D ์ˆœ์„œ๋กœ ์ƒ์„ฑ๋œ๋‹ค.

๊ฒฐํ•ฉ์„ฑ์ด ๋‚ฎ์€(์˜์กด์„ฑ ์ฃผ์ž…์„ ์ด์šฉํ•˜๋Š”) ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฒฝ์šฐ B๊ฐ€ ๋จผ์ € ์ƒ์„ฑ๋˜๊ณ  A์— ์ด๋ฅผ ์ฃผ์ž…ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ฒฐํ•ฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— D-C-B-A ์ˆœ์„œ๋กœ ์ƒ์„ฑ๋œ๋‹ค.

๋”ฐ๋ผ์„œ ์ œ์–ด์˜ ํ๋ฆ„์ด ๋’ค์ง‘ํ˜”๋‹ค๋Š” ์˜๋ฏธ์—์„œ Inversion of Control์ด๋ผ๋Š” ๋‹จ์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

Bean

IoC Container์— IoC Container์— ์˜ํ•ด ์ƒ์„ฑ, ๊ด€๋ฆฌ๋˜๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ Bean์ด๋ผ๊ณ  ํ•œ๋‹ค.

IoC Container๋Š” Bean์˜ ์ƒ๋ช… ์ฃผ๊ธฐ๋ฅผ ์ „์ ์œผ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค.

Singleton

ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ๋‹จ ํ•˜๋‚˜๋งŒ ์ƒ์„ฑ๋˜๋„๋ก ํ•˜๋Š” ๋””์ž์ธ ํŒจํ„ด์„ ๋งํ•œ๋‹ค.

IoC Container ๋‚ด๋ถ€์˜ Bean๋“ค์€ ๋Œ€๋ถ€๋ถ„ Singleton์œผ๋กœ ๊ด€๋ฆฌ๋œ๋‹ค. ์ฆ‰, ํ•œ ๋ฒˆ๋งŒ ์ƒ์„ฑ๋˜๊ณ  ์ด๊ฒƒ์„ getter๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ ๊ณณ์—์„œ ์ฃผ์ž…๋ฐ›์•„ ์ด์šฉํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์šด์˜๋œ๋‹ค.

Reference

[Spring] Bean ์ •๋ฆฌ

Last updated