[Spring Framework] IoC ์ปจํ…Œ์ด๋„ˆ ๋™์ž‘ ์›๋ฆฌ

2024. 11. 14. 16:47ยท๐ŸŒณSpring/๐ŸŒฑSpring Framework

 

(1) IoC ์ปจํ…Œ์ด๋„ˆ์˜ ์—ญํ• 

๊ฐœ๋ฐœ์ž๊ฐ€ ์ •์˜ํ•œ ๊ฐ์ฒด๋“ค์„ Bean์œผ๋กœ IoC ์ปจํ…Œ์ด๋„ˆ์— ๋ณด๊ด€์„ ํ•ด๋‘๊ณ , ์Šคํ”„๋ง์„ ํ†ตํ•ด ์ž๋™์œผ๋กœ ์˜์กด์„ฑ ์ฃผ์ž…์„ ํ•  ๋•Œ Bean์„ ๊ฐ์ฒด๋กœ ๋งŒ๋“ค์–ด ์˜์กด์„ฑ์„ ์ฃผ์ž…์„ ํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

( ํ•ด๋‹น ๋ถ€๋ถ„์€ ์Šคํ”„๋ง ์„œ๋ฒ„๊ฐ€ ๋œฐ ๋•Œ ์ฆ‰, ์ดˆ๊ธฐํ™” ์‹œ์ ์— ๊ฐ์ฒด์— ๋Œ€ํ•œ ์˜์กด์„ฑ ์ฃผ์ž…์ด ์ด๋ค„์ง„๋‹ค. )

์ฝ”๋“œ์ ์œผ๋กœ org.springframework.context.ApplicationContext๋Š” Spring IoC ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

 

ํ•ต์‹ฌ

๊ฐ์ฒด์˜ ์ƒ์„ฑ๊ณผ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ํ•ต์‹ฌ ์ปดํฌ๋„ŒํŠธ์ด๋‹ค.

 

(2) IoC ์ปจํ…Œ์ด๋„ˆ์˜ Bean(๊ฐ์ฒด) ๊ด€๋ฆฌ ๊ณผ์ •

IoC์ปจํ…Œ์ด๋„ˆ๊ฐ€ Bean์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ณผ์ •์€ ํฌ๊ฒŒ 7๊ฐ€์ง€๊ฐ€ ์กด์žฌ ( ๋˜ํ•œ, ๋นˆ ์ƒ๋ช…์ฃผ๊ธฐ ๊ณผ์ •์œผ๋กœ๋„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. )

( ํ•ด๋‹น ๊ณผ์ •์€ ์ดˆ๊ธฐํ™” ์‹œ์ ์ธ ์Šคํ”„๋ง ์„œ๋ฒ„๊ฐ€ ์ดˆ๊ธฐ์— ๋œฐ ๋•Œ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๊ณผ์ •์„ ์˜๋ฏธ ํ•œ๋‹ค. )

  • 1. ๋นˆ ์ •์˜ ์ฝ๊ธฐ: ์„ค์ • ํŒŒ์ผ ๋˜๋Š” ์• ๋„ˆํ…Œ์ด์…˜์„ ํ†ตํ•ด ๋นˆ ์ •์˜๋ฅผ ์ฝ๋Š”๋‹ค.
  • 2. ๋นˆ ๋“ฑ๋ก: IoC ์ปจํ…Œ์ด๋„ˆ์— ๋นˆ์„ ๋“ฑ๋กํ•œ๋‹ค.
  • 3. ๋นˆ ์ƒ์„ฑ: ๋นˆ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
  • 4. ์˜์กด์„ฑ ์ฃผ์ž…: ์ƒ์„ฑ๋œ ๋นˆ ๊ฐ„์— ์˜์กด์„ฑ ์ฃผ์ž…์ด ์ด๋ฃจ์–ด์ง„๋‹ค.
  • 5. ๋นˆ ์ดˆ๊ธฐํ™”: ๋นˆ์ด ์ดˆ๊ธฐํ™”๋˜๊ณ  ํ•„์š”ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
  • 6. ๋นˆ ์‚ฌ์šฉ: ์˜์กด์„ฑ ์ฃผ์ž…์ด ์™„๋ฃŒ๋œ ํ›„, ๋นˆ์ด ์‹ค์ œ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.
  • 7. ๋นˆ ์†Œ๋ฉธ: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ข…๋ฃŒ ์‹œ ๋นˆ์ด ์†Œ๋ฉธ๋œ๋‹ค.

์ด ๊ณผ์ •์„ ํ†ตํ•ด ์Šคํ”„๋ง IoC ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ฐ์ฒด์˜ ์ƒ์„ฑ๋ถ€ํ„ฐ ์†Œ๋ฉธ๊นŒ์ง€ ๋ชจ๋“  ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋ฉฐ, ๊ฐœ๋ฐœ์ž๊ฐ€ ๋นˆ์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ์ง์ ‘ ๊ด€๋ฆฌํ•  ํ•„์š” ์—†์ด ์Šคํ”„๋ง์ด ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ค€๋‹ค.

 

์ด๋Ÿฌํ•œ ๊ณผ์ •์€ ์ฝ”๋“œ์ ์œผ๋กœ org.springframework.context.ApplicationContext IoC์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ์ด๋ค„์ง€๋Š” ๊ณผ์ •์ด๋‹ค.

 

๊ฒฐ๊ณผ์ ์œผ๋กœ ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๋กœ์จ ๋ผ์ดํ”„์‚ฌ์ดํด ์†์—์„œ ๊ฐœ๋ฐœ์ž๊ฐ€ ํŠน์ • ๋ถ€๋ถ„๋งŒ ๊ฐœ๋ฐœ์„ ํ•˜๋ฉด ์ž˜ ๋™์ž‘์„ ํ•˜๊ฒŒ ๋œ๋‹ค. ํ•ด๋‹น ๋ผ์ดํ”„์‚ฌ์ดํด์— ํฌํ•จ์ด ๋˜์–ด์žˆ๋Š” ๊ณผ์ •์€ ์Šคํ”„๋ง ์„œ๋ฒ„๊ฐ€ ๋œฐ ๋•Œ IoC์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์˜ฌ๋ผ๊ฐ€๋ฉฐ, ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ๊ธฐ์žฌํ•ด๋†“์€ ๊ฐ์ฒด Bean๋“ค์„ ๋“ฑ๋ก์„ ํ•˜๋Š” ๊ณผ์ •์ด ํฌํ•จ์ด ๋˜์–ด์žˆ๋‹ค. Bean์œผ๋กœ ๋“ฑ๋ก์„ ํ•œ ๋’ค ๋‹ค์Œ ๊ณผ์ •์œผ๋กœ๋Š” ์• ๋„ˆํ…Œ์ด์…˜์„ ํ™œ์šฉํ•˜์—ฌ ํ•ด๋‹น Bean ๊ฐ์ฒด๋ฅผ ์ฃผ์ž…์„ ํ•ด์ฃผ๊ฒŒ ๋œ๋‹ค. ์ด๊ฒŒ ์Šคํ”„๋ง ์„œ๋ฒ„๊ฐ€ ๋œฐ ๋•Œ ์ดˆ๊ธฐํ™”๋ฅผ ํ•˜๋Š” ๊ณผ์ •์ด๋‹ค.

ํ•ด๋‹น ๊ณผ์ •์€ ๋‚ด๋ถ€์˜ ์ฝ”๋“œ๋กœ ์ง์ ‘ ๊ตฌํ˜„์ด ๋‹ค ๋˜์–ด์žˆ๋‹ค. ์ด๊ฒŒ ์Šคํ”„๋ง ๋ผ์ดํ”„์‚ฌ์ดํด์ด๋‹ค.

 

 

์ฐธ์กฐ ( Spring ๊ณต์‹ ๋ฌธ์„œ )

https://docs.spring.io/spring-framework/reference/core/beans/basics.html

 

Container Overview :: Spring Framework

As the preceding diagram shows, the Spring IoC container consumes a form of configuration metadata. This configuration metadata represents how you, as an application developer, tell the Spring container to instantiate, configure, and assemble the component

docs.spring.io

'๐ŸŒณSpring > ๐ŸŒฑSpring Framework' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Spring Framework] @RestController & @Controller ์ฐจ์ด  (0) 2025.05.12
[Spring Framework] DispatcherServle  (0) 2025.05.12
[Spring Framework] IoC ์ปจํ…Œ์ด๋„ˆ & Bean ๊ฐœ๋… ์ดํ•ด ํ•˜๊ธฐ  (1) 2024.10.21
[Spring Framework] IoC & DI ๊ฐœ๋… ์ดํ•ด ํ•˜๊ธฐ  (0) 2024.10.20
[Spring Framework] Spring & Spring Framework ์ฐจ์ด  (0) 2024.10.19
'๐ŸŒณSpring/๐ŸŒฑSpring Framework' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Spring Framework] @RestController & @Controller ์ฐจ์ด
  • [Spring Framework] DispatcherServle
  • [Spring Framework] IoC ์ปจํ…Œ์ด๋„ˆ & Bean ๊ฐœ๋… ์ดํ•ด ํ•˜๊ธฐ
  • [Spring Framework] IoC & DI ๊ฐœ๋… ์ดํ•ด ํ•˜๊ธฐ
junbin2
junbin2
java.lang.NullPointerException
  • junbin2
    bin's Development Diary
    junbin2
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ์ „์ฒด๋ณด๊ธฐ (150)
      • ๐ŸŽ“๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต (25)
        • ๐Ÿ–ฅ๏ธ์ปดํ“จํ„ฐ๊ณผํ•™๊ณผ (1)
        • ๐ŸŒ์œ ๋น„์ฟผํ„ฐ์Šค ์ปดํ“จํŒ… (10)
        • โš™๏ธ์ปดํ“จํ„ฐ์˜ ์ดํ•ด (11)
        • ๐Ÿ›๏ธ์„ธ๊ณ„์˜์ •์น˜์™€๊ฒฝ์ œ (3)
      • ๐Ÿ“šComputer Science (0)
      • ๐Ÿ› ๏ธBackend (2)
      • โ˜•Java (20)
        • ๐Ÿ“Java Programming (19)
        • ๐ŸงฉJava Design Pattern (1)
      • ๐ŸŒณSpring (9)
        • ๐ŸŒฑSpring Framework (6)
        • ๐ŸŒฑSpring Security (1)
      • โšกPython (13)
      • ๐Ÿ›ข๏ธDatabase (0)
      • ๐ŸŒฟGitHub (1)
      • ๐ŸŒ Network (7)
        • ๐Ÿ“œHTTP (7)
      • ๐Ÿš€DevOps (1)
      • Algorithm Problem Solving (2)
      • Data Structure (1)
      • JavaScript (1)
      • โ›บ์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉํด๋Ÿฝ (65)
      • ์žก๋‹ด (1)
      • ์ •๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๊ธ€ (2)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

    • GitHub
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ์Šคํ”„๋ง
    ์ปดํŒŒ์ผ๋Ÿฌ
    ๋‹คํ˜•์„ฑ
    ์ปดํ“จํ„ฐ์˜ ์ดํ•ด
    ์œ ๋น„์ฟผํ„ฐ์Šค ์ปดํ“จํŒ…
    ์ž…์ถœ๋ ฅ
    ์„ธ๊ณ„ํ™”
    ๋ฐฉํ†ต๋Œ€
    Python
    ์œ ๋น„์ฟผํ„ฐ์Šค ์ปดํ“จํŒ…๊ฐœ๋ก 
    ํด๋ผ์šฐ๋“œ
    ์œ ๋น„์ฟผํ„ฐ์Šค
    ์ž๋ฐ”
    ๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต
    Java
    ํŒŒ์ด์ฌ
    ํด๋ž˜์Šค
    spring
    ๋ฐฉ์†ก๋Œ€
    Spring Framework
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.1
junbin2
[Spring Framework] IoC ์ปจํ…Œ์ด๋„ˆ ๋™์ž‘ ์›๋ฆฌ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”