본문 바로가기
강의 실습/스프링 핵심 원리 - 기본편

객체 지향 설계와 스프링

by jint 2026. 3. 26.

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


2. 스프링이 없던 시절로
• 옛날 어떤 개발자가 좋은 객체 지향 개발을 하려고 OCP, DIP 원칙을 지키면서 개발해보니, 너무 할일이 많았다.
배보다 배꼽이 크다. 그래서 프레임워크로 만들어버림
• 순수하게 자바로 OCP, DIP 원칙들을 지키면서 개발을 해보면, 결국 스프링 프레임워크를 만들게 된다. (더 정확히는 DI 컨테이너)
• DI 개념은 코드로 짜봐야 필요성을 알게된다!

-> 스프링이 왜 만들어졌는지 코드로 이해해본다.


3. 정리
• 모든 설계에 역할과 구현을 분리
ex) 자동차, 공연
• 애플리케이션 설계도 공연 설계 하듯이 배역만 만들어두고, 배우는 언제든지 유연하게 변경할 수 있도록 만드는 것이 좋은 객체 지향 설계
• 이상적으로는 모든 설계에 인터페이스 부여
구현기술이 아직 정해지지 않거나 바뀌더라도, 나머지를 변경할 필요없이 유연하게 개발 가능

실무 고민)
• 인터페이스 도입시, 추상화 비용 발생
성능적 문제가 아닌, 개발자가 인터페이스와 구현체 코드를 열어봐야 한다.
• 기능 확장 가능성이 없다면, 구현체를 직접 사용한다.
향후 꼭 필요할 때 리팩토링하여, 인터페이스를 도입하는 것도 방법


참고링크 : 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?cid=325969

 

스프링 핵심 원리 - 기본편| 김영한 - 인프런 강의

현재 평점 5.0점 수강생 49,482명인 강의를 만나보세요. 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다. 스프링 기본 기능, 스프

www.inflearn.com

댓글