오늘부터 김영한님의 스프링 핵심 원리-기본편을 학습한다
스프링부트는 Tomcat 같은 웹 서버를 내장해서 별도의 웹 서버를 설치하지 않아도 됨
단독으로 실행할 수 잇는 스프링 애플리케이션을 쉽게 생성
스프링은 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크이다
다형성은 하나의 객체가 여러 가지 타입을 가질 수 있는 것을 의미
-자동차는 역할이 중요하지 자동자의 종류에 상관이 없다
-자동차의 인터페이스가 구현체보다 중요하다
-새로운 자동차가 나와도 운전자는 새로운 것을 안배워도 된다(인터페이스는 같기 때문에)
-유연하고 변경이 용이하다
역할과 구현으로 구분하면 세상이 단순해지고, 유연해지며 변경도 편리해진다
-클라이언트는 구현 대상의 내부 구조를 몰라도 된다
-클라이언트는 구현 대상의 내부 구조를 변경되어도 영향을 받지 않는다(동작만 하면 되기 때문에)
객체 설계시 역할(인터페이스)을 먼저 부여하고, 그 역할을 수행하는 구현 객체 만들기
자바 언어의 다형성은 오버라이딩을 떠올리면 된다
스프링은 다형성을 극대화해서 이용할 수 있게 도와준다