스프링 부트는 기본적인 설정을 자동으로 처리해주는 기능을 제공한다.
스프링 부트는 필요한 라이브러리와 의존성을 자동으로 관리해준다.
스프링 부트는 내장 서버를 지원한다.
같은 이름의 메서드를 지원하면서 매개변수의 유형과 개수가 다르도록 하는 기술
상위 클래스가 갖고 있던 메서드를 하위 클래스에서 재정의 하여 사용하는것
객체를 설계할 때 역할(인터페이스)과 구현(인스턴스)을 명확히 분리
클라이언트를 변경하지 않고, 서버의 구현 기능을 유연하게 변경할 수 있다.
좋은 객체 지향 설계의 5가지 원칙
중요한 기준은 변경이다. 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른것
내가 작성한 코드를 제어하고, 대신 실행하면 프레임워크 (JUnit)
내가 작성한 코드가 직접 제어의 흐름을 담당한다면 라이브러리