DI

μŠ€ν”„λ§μ„ μ‚¬μš©ν•˜λŠ” κ°€μž₯ 큰 μ΄μœ μ€‘μ˜ ν•˜λ‚˜μ΄λ‹€.

λͺ¨λ“  ν”„λ‘œκ·Έλž˜λ°μ˜ 원칙쀑에 κ°€μž₯ 효율적인 μž¬μ‚¬μš©μ„±μ„ μœ„ν•΄ μ€‘λ³΅λ˜λŠ” μ½”λ“œλ₯Ό 쀄이고 변경보단 ν™•μž₯에 μš©μ΄ν•˜κ²Œλ” ν•˜λŠ” OCP 와 같은 원칙듀이 μžˆλ‹€.

μ΄λŠ” μŠ€ν”„λ§μ—μ„œ 관점지ν–₯ ν”„λ‘œκ·Έλž˜λ° (AOP) 방식에 따라 인프라 μ½”λ“œμ™€ λΉ„μ§€λ‹ˆμŠ€ μ½”λ“œ 2가지 μ½”λ“œλ‘œ λ‚˜λ‰˜κ²Œ λœλ‹€.

인프라 μ½”λ“œλŠ” λ‘œκΉ…, λ³΄μ•ˆ, 인증 등과같이 μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ λ™μž‘λ˜λŠ”λ° ν•„μš”ν•œ μž¬μ‚¬μš©μ΄ κ°€λŠ₯ν•œ 곡톡 μ½”λ“œλ“€μ„ λͺ¨μ•„ 놓고
μ‚¬μš©μžκ°€ 직접 μž‘μ„±ν•˜λŠ” μ„œλΉ„μŠ€μ™€ 같은 λΉ„μ§€λ‹ˆμŠ€μ„± μ½”λ“œλ“€μ„ μž‘μ„±ν•˜λŠ”λ° μ§‘μ€‘ν• μˆ˜ μžˆλ„λ‘ 도와쀀닀.

일반적으둜 ν”„λ‘œκ·Έλž˜λ° μ½”λ“œμ˜ 흐름은 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ½”λ“œμ—μ„œ 주체적으둜 λ™μž‘λ˜λŠ”λ° μŠ€ν”„λ§μ—μ„œλŠ” 이 νλ¦„μ˜ 주체가 ν”„λ ˆμž„μ›Œν¬λ‘œ λ’€λ°”λ€ŒλŠ” ν˜„μƒμ΄ μΌμ–΄λ‚œλ‹€.
이λ₯Ό μ œμ–΄μ˜ μ—­μ „ (IoC : Inversion of Controll) 이라고 ν•˜λ©° ν”„λ ˆμž„μ›Œν¬μ—μ„œ μ‚¬μš©μžμ˜ μ½”λ“œλ₯Ό μ†ŒλΉ„ν•˜λŠ” ν˜•νƒœλ‘œ 흐름이 μ§„ν–‰λœλ‹€.

이λ₯Ό 톡해 μ‚¬μš©μžμ˜ μ½”λ“œλŠ” ν”„λ ˆμž„μ›Œν¬μ—μ„œ μ˜μ‘΄μ„±μ„ κ°€μ§€κ²Œ 되며 μ΄λŸ¬ν•œ μ˜μ‘΄μ„±μ€ μŠ€ν”„λ§ μ»¨ν…Œμ΄λ„ˆκ°€ μžλ™μ μœΌλ‘œ μ—°κ²°ν•΄μ£Όκ²Œ λ˜λŠ”λ° 이λ₯Ό DI (Depandency Injection) 라고 ν•œλ‹€.

μ΄λŠ” μŠ€ν”„λ§μ΄ μƒκ°ν•˜λŠ”λŒ€λ‘œ ν”„λ‘œκ·Έλž¨ μ½”λ“œλ₯Ό μž‘μ„±ν•˜κ²Œ 되면 μžμ—°νžˆ Depandency Injection 을 λ”°λ₯΄κ²Œ 끔 λ˜μ–΄ μžˆλ‹€.