Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Exception
- QueryDSL
- 그리디
- Spring Boot
- 스프링
- 백준
- Proxy
- http
- Servlet
- transaction
- 스프링 핵심 기능
- java
- springdatajpa
- AOP
- pointcut
- Thymeleaf
- kotlin
- jpa
- SpringBoot
- 자바
- Android
- spring
- JDBC
- 알고리즘
- 스프링 핵심 원리
- db
- 인프런
- Greedy
- 김영한
- JPQL
Archives
- Today
- Total
개발자되기 프로젝트
객체지향과 스프링 본문
- 스프링은 다형성 + OCP, DIP를 가능하게 지원한다.
- DI(Dependency Injection): 의존관계, 의존성 주입
- DI 컨테이너 제공 : 자바 객체를 컨테이너에 넣어놓고 의존관계를 연결, 주입하는 기능 제공. - 이렇게 해야 클라이언트 코드의 변경 없이 기능을 확장시킬 수 있음
- 쉽게 부품을 교체하듯이 개발이 가능함!
- 순수하게 자바로 OCP, DIP원칙을 지키면서 개발하면 결국에는 스프링 프레임워크를 만들게됨 ㅋㅋㅋㅋ
- 모든 설계에 역할과 구현을 분리!!!
- 애플리케이션 설계도 공연을 설계 하듯이 배역만 만들어 두고,
배우는 언제든지 유연하게 변경할 수 있도록 만드는 것이 좋은 객체 지향 설계이다!! - 이상적으로는 모든 설계에 인터페이스를 부여해야함.
- 하지만 인터페이스를 너무 도입하면 추상화라는 비용이 발생함
- 추상화가 되버리면 개발자가 코드를 한번 더 열어봐야함.
- 따라서 기능을 확장할 가능성이 없다면!
구체 클래스를 직접 사용하고, 향후 꼭 필요할 때 리팩터링해서 인터페이스를 도입하는 것도 방법임!!!!
Comments