티스토리 뷰

각 기술의 본질과 등장 배경을 알아야 단순히 API 기능만 활용하는 단순 수동적인 개발자가 되지 않는다.

스프링 
- 자바 언어 기반의 프레임워크
- 좋은 객체 지향 어플리케이션 
--> 즉 스프링은 자바 특유의 객체 지향을 최대한 활용할 수 있게 도와주는 프레임워크!!

그렇다면 객체지향이라는 것이 뭔데? 

객체지향 프로그래밍이란 -> 명령어의 목록이 아닌, 독립된 단위(객체)끼리 메시지를 주고 받고 처리
   -> 유연하고 변경이 용이

특징

1. 다형성(ex 자동차)
- 오버라이딩
- 클라이언트를 변경하지 않고, 실행시점에 유연하게 변경되도록 할 수 있다.
- 다형성은 객체지향의 꽃으로, 제어의 역전(IoC), 의존 관계주입(DI) 는 다형성을 활용하여 구현을 편리하게 다룰수록 하는 것.

-> 결국 스프링은 다형성을 극대화하여 사용할 수 있게 해주는 프레임워크.

2. SOLID (객체지향 설계 5가지 원칙)
- S  Single Responsibility(단일책임) : 변경이 있을 떄, 파급효과가 적을 수록 단일책임원칙을 잘 지킨 것.
O  Open/closed(개발-폐쇄) : 인터페이스를 구현한 클래스를 만들어서 새로운 기능을 구현
-> 하지만, 구현 객체를 변경할 때 클라이언트 코드가 변경 되야 하는 상황  발생 --> 이 부분을 스프링 컨테이너가 설정해준다
- L   LisKov (리스코프 치환) :  인터페이스의 규약 원칙을 지키며 구현하는 것, 구현체는 철저히 믿고 사용가능함
- I  Interface segregation(인터페이스 분리) : 인터페이스가 변해도 해당 인터페이스 클라이언트만 영향이 가게 분리
- D Dependency Inversion(의존 관계 역전) : 구현 클래스에 의존이 아닌, 인터페이스에 의존해야 함.