[기본기] 4. 그래서 다시 스프링과 객체지향

khyojun·2022년 9월 3일
1
post-thumbnail

본 게시글은 김영한님의 스프링 핵심 원리 기본편을 정리한 글입니다.


🔍 스프링 이야기에 왜 객체 지향이 이렇게 나왔을까?

아까 얘기했던 것처럼 기존의 방식처럼 진행을 하게 된다면은 OCP, DIP와 같은 좋은 객체지향의 설계의 원칙들을 지키기 어렵게 된다.
그렇지만 스프링에서는 이를 해결할 수 있도록 도와준다.

  • 스프링은 다음 기술로 다형성 + OCP, DIP를 가능하게 지원
    • DI(Dependency Injection): 의존관계, 의존성 주입
    • DI 컨테이너 제공
  • 클라이언트 코드의 변경 없이 기능 확장
  • 쉽게 부품을 교체하듯이 개발

🔍 스프링이 없었을때는?

  • 옛날 옛적 좋은 객체 지향 개발을 할려고 하는 개발자가 OCP, DIP 원칙을 지키면서 개발을 해보니, 배보다 배꼽이 큰 상황이 발생하여 프레임워크로 만들어 버렸다는...
  • 그래서 순수하게 자바로 OCP, DIP를 지키려고 하다보면 자연스럽게 스프링 프레임워크를 만들게 된다는 현실(더 정확하게는 DI컨테이너를 만들게 된다.)

📌 최종 정리

  • 모든 설계에서는 역할구현을 분리를 하자.
  • 자동차, 공연의 예를 떠올려보면 된다.
  • 애플리케이션 설계도 언제든지 유연하게 변경할 수 있도록 만든 것이 좋은 객체 지향 설계다.
  • 이상적으로는 모든 설계에 인터페이스를 부여하는 것이 좋다.

출처

  1. 김영한님의 스프링 핵심 원리 기본편(https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8)
profile
코드를 씹고 뜯고 맛보고 즐기는 것을 지향하는 개발자가 되고 싶습니다

0개의 댓글