Back-end/Spring

[Spring] μŠ€ν”„λ§μ˜ 심μž₯λΆ€ - IoC (μ œμ–΄μ˜ μ—­μ „)

 

 

🧐 IoC (μ œμ–΄μ˜ μ—­μ „μ΄λž€?)

  • μŠ€ν”„λ§ ν”„λ ˆμž„μ›Œν¬μ˜ 심μž₯λΆ€
  • Inversion of Control
  • κ°„λ‹¨νžˆ ν”„λ‘œκ·Έλž¨μ˜ μ œμ–΄ 흐름 ꡬ쑰가 λ’€λ°”λ€ŒλŠ” 것.
  • μŠ€ν”„λ§μ˜ μ€‘μš”ν•œ 개발 κ°œλ…μΈ μ˜μ‘΄μ„± μ£Όμž…μ„ μ΄ν•΄ν•˜κΈ° μœ„ν•΄ μ•Œκ³  μžˆμ–΄ν–ν•˜λŠ” κ°œλ….
  • 객체 κ°„μ˜ 결합도(μ˜μ‘΄λ„)λ₯Ό 쀄이고 μœ μ—°ν•œ μ½”λ“œλ₯Ό μž‘μ„± ν•  수 있음.
  • 가독성 및 μ½”λ“œμ˜ 쀑볡 ν•΄μ†Œ, μœ μ§€λ³΄μˆ˜λ₯Ό νŽΈλ¦¬ν•˜κ²Œ λ„μ™€μ€Œ
  • 객체가 μžμ‹ μ΄ μ‚¬μš©ν•  객체λ₯Ό 슀슀둜 μ„ νƒν•˜μ§€ μ•ŠμŒ.
  • λŒ€ν‘œμ μœΌλ‘œ ν…œν”Œλ¦Ώ λ©”μ†Œλ“œ νŒ¨ν„΄μ΄ 있음

 

🀨 객체 κ°„μ˜ 결합도 (μ˜μ‘΄λ„)

' μ–΄λ–€ 객체가 λ‹€λ₯Έ 객체에 μ˜μ‘΄ν•˜λŠ” 정도λ₯Ό λ‚˜νƒ€λ‚Έλ‹€.'

 

μ½”λ‘œλ‚˜ λ°”μ΄λŸ¬μŠ€λ‘œ 인해 μ‚¬λžŒλ“€μ€ 항상 마슀크λ₯Ό μ‚¬μš©ν•˜κ³  λ‹€λ…€μ•Ό ν•©λ‹ˆλ‹€.

항상 μ‚¬μš©ν•΄μ•Όν•˜κΈ° λ•Œλ¬Έμ— μ‚¬λžŒκ³Ό 마슀크의 μ˜μ‘΄λ„κ°€ λ†’λ‹€κ³  ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

이λ₯Ό 강결합이라고 λΆ€λ¦…λ‹ˆλ‹€.

 

 

그리고 마슀크의 μ’…λ₯˜λŠ” KF94, KF80, λ΄νƒˆλ§ˆμŠ€ν¬ λ“± λ‹€μ–‘ν•©λ‹ˆλ‹€.

μ΄λŸ¬ν•œ λ§Žμ€ 선택지에 따라 μ½”λ“œ μƒμ—μ„œ μžμ—°μŠ€λŸ½κ²Œ λ¬΄μˆ˜ν•œ 쑰건문(ifλ¬Έ, case/switchλ¬Έ)이 λ§Œλ“€μ–΄ 질 κ²ƒμž…λ‹ˆλ‹€.

이둜 인해 μ½”λ“œμ˜ 수, μ€‘λ³΅μœΌλ‘œ 인해 μ„±λŠ₯은 λ‚˜λΉ μ§ˆ κ²ƒμž…λ‹ˆλ‹€.

 

 

 

이 λ•Œ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ‚¬μš©ν•΄ 쑰건문을 톡해 λ§Œλ“œλŠ” 것이 μ•„λ‹Œ ν•„μš”ν•  λ•Œλ§ˆλ‹€ μ μ ˆν•œ μΈμŠ€ν„΄μŠ€λ‘œ λ§Œλ“€μ–΄ 쀄 수 μžˆμŠ΅λ‹ˆλ‹€.

이 방법은 μ½”λ“œμ˜ μœ μ—°μ„±, 가독성을 높이고 μ½”λ“œμ˜ 쀑볡을 κ°μ†Œ μ‹œν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€.

이λ₯Ό IoC (μ œμ–΄μ˜ μ—­μ „)이라고 ν•©λ‹ˆλ‹€.

 

 

 

🀨 IoC μ»¨ν…Œμ΄λ„ˆλž€?

  • IoC (μ œμ–΄μ˜ μ—­μ „)λ₯Ό κ΅¬ν˜„ν•˜λŠ” ν”„λ ˆμž„μ›Œν¬
  • 객체λ₯Ό κ΄€λ¦¬ν•˜κ³ , μƒμ„±ν•˜λ©° 그리고 μ˜μ‘΄μ„±μ„ κ΄€λ¦¬ν•˜λŠ” μ»¨ν…Œμ΄λ„ˆ
  • POJO(Plan Old Java Object)λ₯Ό κ΅¬μ„±ν•˜κ³  κ΄€λ¦¬ν•©λ‹ˆλ‹€.
  • μŠ€ν”„λ§μ—μ„œλŠ” κΈ°λ³Έ κ΅¬ν˜„μ²΄μΈ 빈 νŒ©ν† λ¦¬μ™€ κ³ κΈ‰ κ΅¬ν˜„μ²΄μΈ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ»¨ν…μŠ€νŠΈ μ»¨ν…Œμ΄λ„ˆλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

POJOλŠ” μ—¬κΈ°λ₯Ό μ°Έκ³ ν•΄μ£Όμ„Έμš”^^

https://withseungryu.tistory.com/62

 

[Spring] POJO λž€ 무엇인가?

🧐 POJOλž€? <μœ„ν‚€λ°±κ³Ό> Plain Old Java Object, κ°„λ‹¨νžˆ POJOλŠ” 말 κ·ΈλŒ€λ‘œ 해석을 ν•˜λ©΄ 였래된 λ°©μ‹μ˜ κ°„λ‹¨ν•œ μžλ°” μ˜€λΈŒμ νŠΈλΌλŠ” λ§λ‘œμ„œ Java EE λ“±μ˜ μ€‘λŸ‰ ν”„λ ˆμž„μ›Œν¬λ“€μ„ μ‚¬μš©ν•˜κ²Œ λ˜λ©΄μ„œ ν•΄λ‹Ή ν”„λ ˆμž„

withseungryu.tistory.com

 

λ°˜μ‘ν˜•