[Spring] 01-4. 객체 지향 설계와 스프링

지찬우·2022년 12월 18일
0

Spring

목록 보기
4/27
post-thumbnail

이 시리즈는 인프런 강의(김영한 님의 ‘스프링 핵심 원리 - 기본편’)로 공부하며 혼자 기록하고, 사람들과도 공유할 수 있도록 작성하는 글이다. 최대한 추가적인 정보는 공식 홈페이지, 문서를 보며 얻을 예정이다.
(개인적인 생각과 이해가 들어가 있기 때문에 저의 ‘무식함’이 있을 수 있습니다😜 혹시라도 이 글을 보게 되시는 분이 계시다면 잘못된 부분 댓글로 많이 알려주시면 너무 감사하겠습니다!!)


오늘은 짧은 글이니 가볍게 읽어보면서 이전에 배웠던 내용들을 한 번 더 상기시키는 시간을 가지면 좋을 것 같다.


스프링과 객체 지향의 관계

  • DI(Dependency Injection) : 의존관계/의존성 주입
  • DI 컨테이너 제공

스프링은 위의 기술들로 다형성과 OCP, DIP를 가능하게 지원해 준다. 따라서 스프링은 클라이언트 코드의 변경 없이 기능을 확장할 수 있게 해주는 것이다.

저번 시간에 ‘객체 지향 설계 5원칙’을 공부했다면 OCP와 DIP를 모두 지키는 것은 굉장히 어렵다는 사실을 알고 있을 것이다. 순수하게 자바로 OCP, DIP를 지키면서 개발을 해보면, 결국 스프링 프레임워크를 만들게 된다.(정확히는 DI 컨테이너)

DI의 개념은 말로 설명하는 것보다 코드로 직접 작성해 봐야 필요성을 알 수 있다.

📝 지금까지 총 정리

모든 설계에 ‘역할’과 ‘구현’을 분리하자!

언제든지 유연하게 변경이 가능하도록 만드는 것이 좋은 객체 지향 설계이다. 인터페이스를 먼저 설계하고 구현을 하게 되면, 구현 기술이 변경되어도 나머지를 변경하지 않아도 되기 때문에 변경 범위가 작고 유연해진다.


오늘은 짧은 강의였지만 간단하게 그동안 배운 내용을 정리하고, 다시 한번 생각해 보는 시간이었던 것 같다. 다음 시간부터는 직접 예제 코드를 작성해 볼 예정이다👨🏻‍💻 앞으로 더 재미있어질 예정이다!

profile
좋은 개발자가 되자.

0개의 댓글