[Spring] 객체지ν–₯ 섀계와 μŠ€ν”„λ§

πŸ“Œ μŠ€ν”„λ§ 이야기에 μ™œ 객체지ν–₯ 이야기가 λ‚˜μ˜€λŠ”κ°€ ?

- μŠ€ν”„λ§μ€ λ‹€μŒ 기술둜 λ‹€ν˜•μ„± + OCP,DIPλ₯Ό κ°€λŠ₯ν•˜κ²Œ 지원

  βœ”οΈ DI(Dependency Injection) : μ˜μ‘΄κ΄€κ³„, μ˜μ‘΄μ„±μ£Όμž…

  βœ”οΈ DI μ»¨ν…Œμ΄λ„ˆ 제곡

>  μžλ°” 객체듀을 μ»¨ν…Œμ΄λ„ˆ μ•ˆμ— 넣어놓고 μ˜μ‘΄κ΄€κ³„λ₯Ό μ£Όμž…ν•˜κ³  μ œμ–΄ν•΄μ€Œ 

- ν΄λΌμ΄μ–ΈνŠΈ μ½”λ“œμ˜ 변경없이 κΈ°λŠ₯ ν™•μž₯

- μ‰½κ²Œ λΆ€ν’ˆμ„ κ΅μ²΄ν•˜λ“―μ΄ κ°œλ°œν•  수 있음

 

πŸ“Œ μŠ€ν”„λ§μ΄ μ—†λ˜ μ‹œμ ˆ

- μ˜›λ‚  μ–΄λ–€ κ°œλ°œμžκ°€ 쒋은 객체지ν–₯κ°œλ°œμ„ ν•˜λ €κ³  OCP,DIP 원칙을 μ§€ν‚€λ©΄μ„œ κ°œλ°œμ„ ν•΄λ³΄λ‹ˆ, 배보닀 배꼽이 크닀. κ·Έλž˜μ„œ ν”„λ ˆμž„ μ›Œν¬λ‘œ λ§Œλ“€μ–΄λ²„λ¦Ό

- μˆœμˆ˜ν•˜κ²Œ μžλ°”λ‘œ OCP,DIP 원칙듀을 μ§€ν‚€λ©΄μ„œ κ°œλ°œμ„ 해보면, κ²°κ΅­ μŠ€ν”„λ§ν”„λ ˆμž„μ›Œν¬λ₯Ό λ§Œλ“€κ²Œ λœλ‹€ (μ •ν™•νžˆλŠ” DIμ»¨ν…Œμ΄λ„ˆ)

- DIκ°œλ…μ€ 말둜 μ„€λͺ…해도 이해가 잘 μ•ˆλœλ‹€. μ½”λ“œλ‘œ μ§œλ΄μ•Ό ν•„μš”μ„±μ„ μ•Œκ²Œλœλ‹€!

- 그러면 이제 μŠ€ν”„λ§μ΄ μ™œ? λ§Œλ“€μ–΄μ‘ŒλŠ”μ§€ μ½”λ“œλ‘œ μ΄ν•΄ν•΄λ³΄μž

 

βœ…  정리

- λͺ¨λ“  섀계에 μ—­ν• κ³Ό κ΅¬ν˜„μ„ λΆ„λ¦¬ν•˜μž

- μžλ™μ°¨, κ³΅μ—°μ˜ 예λ₯Ό λ– μ˜¬λ¦¬κΈ°

- μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 섀계도 곡연을 섀계 ν•˜λ“―μ΄, λ°°μ—­λ§Œ λ§Œλ“€μ–΄λ‘κ³  λ°°μš°λŠ” μ–Έμ œλ“ μ§€ μœ μ—°ν•˜κ²Œ λ³€κ²½ν•  수 μžˆλ„λ‘ λ§Œλ“œλŠ” 것이 쒋은 객체지ν–₯ 섀계닀.

- μ΄μƒμ μœΌλ‘œλŠ” λͺ¨λ“  섀계에 μΈν„°νŽ˜μ΄μŠ€λ₯Ό λΆ€μ—¬ν•˜μž 

 

πŸ₯Ή 싀무적인 문제점

- ν•˜μ§€λ§Œ μΈν„°νŽ˜μ΄μŠ€λ₯Ό λ„μž…ν•˜λ©΄ μΆ”μƒν™”λΌλŠ” λΉ„μš©μ΄ λ°œμƒν•œλ‹€.

> 좔상화가 되면 개발자 μ½”λ“œλ₯Ό ν•œλ²ˆ 더 열어봐야 함

- κΈ°λŠ₯을 ν™•μž₯ν•  κ°€λŠ₯성이 μ—†λ‹€λ©΄, ꡬ체 클래슀λ₯Ό μ§μ ‘μ‚¬μš©ν•˜κ³ , ν–₯ν›„ κΌ­ ν•„μš”ν•  λ•Œ λ¦¬νŒ©ν„°λ§ν•΄μ„œ μΈν„°νŽ˜μ΄μŠ€λ₯Ό λ„μž…ν•˜λŠ” 것도 방법