스프링의 역사
요약: EJB -> 로즈 존슨의 책 -> 스프링
스프링 등장 전에는 EJB라는게 있었다고 한다.
그런데 사용하기에 너무 어려워서 로드 존슨이라는 사람이 이걸 지적하고, 대안을 제시하는 책을 썼다.
여기에 스프링의 핵심 철학이 담겨있었다.
BeanFactory, ApplicationContext, POJO, 제어의 역전, 의존관계 주입 등등이 책의 내용이였다.
그 후 두명의 개발자와 함꼐 스프링을 만들었다.
또 DB 관련 기술로 EJB가 있었는데,
이걸 대신해서 하이버네이트가 등장했고,
스프링 개발사에서 하이버네이트를 만든 사람들을 고용하여 자바표준인 JPA를 만들었다.
JPA는 표준 인터페이스이고, 하이버네이트나 다른 구현체들을 연동해서 사용한다.
스프링의 핵심
스프링은 자바 기반의 프레임워크이다.
자바는 객체 지향 언어이다. 이러한 특징을 스프링이 더욱 잘 살려내준다.
스프링은 좋은 객체 지향 프로그램을 만들게 해주는 프레임워크이다.
객체지향의 특징
추상화, 캡슐화, 상속, 다형성
등등이 있다.
그중에서 다형성을 자세히 보자.
다형성의 핵심은 세상을 역할과 구현으로 나누는 것이다.
프로그래밍에서 역할은 인터페이스, 구현은 구현 객체이다.
이렇게 하면 쉽게 구현체만 변경하면 프로그램이 잘 돌아간다.
ex) os의 프린팅 인터페이스와 프린터 제조사의 구현체
객체지향 설계 5원칙- SOLID
• SRP: 단일 책임 원칙(single responsibility principle)
• OCP: 개방-폐쇄 원칙 (Open/closed principle)
• LSP: 리스코프 치환 원칙 (Liskov substitution principle)
• ISP: 인터페이스 분리 원칙 (Interface segregation principle)
• DIP: 의존관계 역전 원칙 (Dependency inversion principle)
이중에서 OCP, DIP - 스프링 사용시 쉽게 지킬수 있음.
'Dev > Spring' 카테고리의 다른 글
7. 의존관계 자동 주입 (0) | 2021.03.28 |
---|---|
6. 컴포넌트 스캔 (0) | 2021.03.28 |
5. 싱글톤 컨테이너 (0) | 2021.03.27 |
4. 스프링 컨테이너와 스프링 빈 (0) | 2021.03.27 |
2 & 3. 스프링 핵심 원리 이해 (0) | 2021.03.27 |