-
(5) 객체 지향 설계와 스프링자바 Study/Spring - 핵심원리 2021. 7. 22. 23:35
1. Back to the Spring
1-1) 스프링에게 객체지향
- 스프링은 다음 기술로 다형성 + OCP, DIP를 가능하게 지원
- DI(Dependency Injection) : 의존관계, 의존성 주입
- DI 컨테이너 제공 - 클라이언트의 코드 변경 없이 기능을 확장
= 모든 부분에서 부품을 교체하듯 쉽게 개발을 할 수 있게 됨
1-2) 스프링이 없던 시절?
- 객체지향을 지키려고 JAVA에서 OCP, DIP를 지키며 코딩을 하게 되면
→ 프레임워크 제작 → DI 컨테이너 제작 과정을 어쩔 수 없이 거치게 됨1-3) 지금까지의 정리
① 모든 설계에 "역할"과 "구현"을 분리하자
② 이상적으로 모든 설계에 인터페이스를 부여하자
→ 완전히 기본 인터페이스 설계하고 확장해나갈 수 있기 때문에, 바닥에서 부터 주어지지 않은 것에 대해서도
구현을 할 수 있는 장점이 있음※ 실무기준 인터페이스 도입 비용
- 인터페이스도입하고 추상화라는 비용이 발생
( 기능확장에는 도움되지만, 코드 한번에 파악하기가 힘듦 - 한단계 더 들어가야 구현체 확인할 수 있는 등 )- 먼저 구현체로 클래스를 사용하고, 향후 확장이 필요할 시 리팩터링으로 인터페이스 도입도 좋음
- 확장가능성이 많다면 인터페이스 초기에 도입하는 것도 좋음
1-4) 책 추천
> 강의가 끝나고 보는 것을 추천!
2. 코드 구현으로 알아보기
내 깃 주소 : https://github.com/didghwns0514/Learning-Spring_basic
참조
목차 : 객체지향 설계와 스프링
- 객체 지향 설계와 스프링반응형'자바 Study > Spring - 핵심원리' 카테고리의 다른 글
(4) 좋은 객체지향 설계 5원칙 (SOLID) (0) 2021.07.20 (3) 좋은 객체지향 프로그래밍 (0) 2021.07.13 (2) 강의 입문 (0) 2021.07.10 (1) 강의 입문 (0) 2021.07.10 - 스프링은 다음 기술로 다형성 + OCP, DIP를 가능하게 지원