[Spring Boot] IOC, DI

noobieΒ·2024λ…„ 3μ›” 11일
0

spring boot

λͺ©λ‘ 보기
2/5

πŸ’‘ IOC (Inversion Of Control)

= μ œμ–΄μ˜ μ—­μ „

κ°œλ°œμžκ°€ μ•„λ‹Œ Spring Container κ°€ 객체λ₯Ό κ΄€λ¦¬ν•˜λŠ” 것!

μŠ€ν”„λ§μ„ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” λ‹€λ©΄
1) κ°œλ°œμžκ°€ 직접 new λ₯Ό μ‚¬μš©ν•˜μ—¬ 객체λ₯Ό 생성
ex)

public void ObjectClass{
	a = new object();
}

2) object κ°€ heap λ©”λͺ¨λ¦¬ 곡간에 μ˜¬λΌκ°€κ³ , 이의 μ£Όμ†ŒλŠ” reference λ³€μˆ˜ a

3) a λŠ” object λ₯Ό μ„ μ–Έν•œ λ©”μ†Œλ“œ λ‚΄λΆ€ ObjectClass μ—μ„œ κ΄€λ¦¬λœλ‹€.
-> λ‹€λ₯Έ λ©”μ†Œλ“œμ—μ„œ 객체λ₯Ό κ³΅μœ ν•˜κΈ° νž˜λ“€μ–΄μ§„λ‹€.

μŠ€ν”„λ§μ„ μ‚¬μš©ν•˜λ‹€λ©΄

1) κ°œλ°œμžκ°€ μ˜€λΈŒμ νŠΈλ“€μ„ λ§Œλ“€μ–΄ λ†“μœΌλ©΄
2) Spring 이 이 μ˜€λΈŒμ νŠΈλ“€μ„ μŠ€μΊ”ν•˜μ—¬ 직접 heap λ©”λͺ¨λ¦¬κ³΅κ°„에 λ„μš΄λ‹€.
3) ν•΄λ‹Ή μ˜€λΈŒμ νŠΈλ“€μ€ Spring이 κ΄€λ¦¬ν•œλ‹€. => IOC


πŸ’‘ DI (Dependency Injection)

= μ˜μ‘΄μ„± μ£Όμž…

Spring 에 μ˜ν•΄ λ©”λͺ¨λ¦¬ 곡간에 올라온 객체듀을 μ›ν•˜λŠ” 클래슀의 λ©”μ†Œλ“œμ— κ°€μ Έμ™€μ„œ μ‚¬μš©ν•  수 μžˆλ‹€.
=> DI

객체λ₯Ό 직접 μƒμ„±ν•˜λŠ” 것이 μ•„λ‹Œ, μ™ΈλΆ€μ—μ„œ 생성 ν›„ μ£Όμž…μ‹œμΌœ μ£ΌλŠ” 방법


βœ… IOC와 DI의 μž₯점

  • 일일히 객체λ₯Ό μƒμ„±ν•˜κ³  μ˜μ‘΄μ„± μ£Όμž…μ„ ν•˜μ§€ μ•Šμ•„λ„ λ˜λ―€λ‘œ
    - μœ μ—°ν•œ μ½”λ“œ μž‘μ„±μ— μš©μ΄ν•˜λ‹€.
    - μœ μ§€λ³΄μˆ˜κ°€ νŽΈλ¦¬ν•˜λ‹€.
    - μž¬μ‚¬μš©μ„±μ΄ λ†’μ•„μ§„λ‹€.
profile
κ°œλ°œλ‰΄λΉ„ λˆ„λΉ„ 🐣

0개의 λŒ“κΈ€