1. Spring 핵심
- 객체 지향 언어의 장점을 살려 개발할 수 있음
2. 다형성
- 역할(Interface)과 구현으(Class)로 구분
- 클라이언트는 역할(Interface)만 알면 됨
- 클라이언트 변경 없이 서버의 구현 기능을 유연하게 변경 가능
3. 좋은 객체 지향 설계 5원칙(SOLID)
- SPR : 단일 책임 원칙, 한 클래스는 하나의 책임만 가짐
- OCP : 개방-폐쇄 원칙, 확장에는 열려 있고 변경에는 닫혀 있음
- LSP : 리스코프 치환 원칙, 구현체는 인터페이스 규칙을 준수(ex. 자동차 인터페이스에서 엑셀을 후진으로 구현하면 X)
- ISP : 인터페이스 분리 원칙,
- DIP : 의존관계 역전 원칙, 추상화에 의존하고 구체화에 의존하지 말자