728x90
1. 스프링의 핵심 가치
- 스프링은 자바 언어 기반의 프레임워크
- 좋은 객체 지향 어플리케이션을 개발할 수 있도록 도와주는 프레임워크
2. 다형성
역할과 구현으로 구분하여, 단순해지고 유연해지고 변경도 편리해진다.
- 클라이언트는 대상의 역할만 알면 된다. (인터페이스)
- 클라이언트는 구현 대상의 내부 구조를 몰라도 된다.
- 클라이언트는 구현 대상의 내부 구조가 변경되어도 영향을 받지 않는다.
- 클라이언트는 구현 대상 자체를 변경해도 영향을 받지 않는다.
인터페이스를 구현한 객체 인스턴스를 실행 시점에서 유연하게 변경할 수 있다.
클라이언트(요청하는 쪽)를 변경하지 않고, 서버(응답하는 쪽)의 구현 기능을 유연하게 변경할 수 있다.
*서버가 응답을 한다고 꼭 데이터를 뱉어내는 건 아니다.
내부적으로 프린트할 수도 있고 리턴값이 void일 수 있음.
클라이언트가 요청한 행위를 하는게 응답이다.
*한계점
- 인터페이스 자체가 변하면, 클라이언트, 서버 모두 큰 변경이 발생한다.
따라서, 인터페이스를 안정적으로 설계해야한다.
3. 객체 지향 설계의 5가지 원칙(SOLID)
Single responsibility principle : 단일 책임 원칙
➡️변경이 있을 때, 딱 하나의 클래스 혹은 하나의 지점만 고치면 되도록 설계해야한다.
Open/closed principle : 개방 - 폐쇄 원칙
➡️확장에는 열려있고 변경에는 닫혀있어야한다.
Liskov substitution principle : 리스코프 치환 원칙
➡️하위 클래스는 인터페이스 규약을 지켜야한다.
Interface segregation principle : 인터페이스 분리 원칙
➡️인터페이스를 역할에 맞게 잘 쪼개는게 좋다.
Dependency inversion principle : 의존관계 역전 원칙
➡️추상화에 의존해야지 구체화에 의존하면 안된다. (역할에 의존해야한다.)
한 줄 요약
부품을 갈아 끼우듯이 개발하는 것이 객체지향 프로그래밍이다.
728x90
'인프런 김영한 강의 정리 > 스프링 핵심원리 기본편' 카테고리의 다른 글
스프링 핵심 원리 기본편 - 의존관계 자동 주입(2)|옵션처리 (0) | 2024.05.04 |
---|---|
스프링 핵심원리 기본편 - 의존관계 자동 주입(1)|다양한 의존관계 주입방법 (0) | 2024.05.02 |
스프링 핵심원리 기본편 - 컴포넌트 스캔 (0) | 2024.05.01 |
스프링 핵심 원리 기본편 - 싱글톤 패턴과 스프링 컨테이너 (0) | 2024.04.30 |
스프링 핵심 원리 기본편 - AppConfig (0) | 2024.04.29 |