스프링의 탄생 배경
스프링이 나오기 이전에 대표적인 기술은 EJB였다.
당시에 컨테이너, 설정에 의한 트랜잭션 관리, 분산기술 - 어떤 계층이 느리면 그쪽 서버를 늘리는 지원과 엔티티 빈 ORM 기술도 가지고 있었다.
하지만 EJB의 문제는 조작의 어려움과 복잡성에 있었다.. 그 중에서도 EJB의 Entity Bean은 정말 조잡했다.
그래서 스프링과 하이버네이트가 나오게 되었다.
스프링
- EJB 컨테이너 대체
- 단순함의 승리
- 현재 사실상 표준 기술
하이버네이트
-EJB 엔티티빈 기술을 대체
-JPA 새로운 표준 정의
그래서 하이버네이트를 가지고 JPA를 만들게 된다.
하이버네이트가 안착할 수 있는 이유는 개발하다보니 답답해서 만들게 된 것이다.
표준은 깔끔하게 나오고 실무 개발자들이 좋아하는 실용성과 표준이 합쳐져서 JPA가 나오게 되었다.
스프링의 역사
- 2002년 로드 존슨이 책을 출간한다.
- EJB의 문제점을 지적
- EJB 없이도 충분히 고품질의 확장 가능한 애플리케이션을 개발할 수 있음을 보여주고, 30000라인 이상의 기반 기술을 예제 코드로 선보임
- BeanFactory, ApplicationContext, POJO, 제어의 역전, 의존관계 주입
- 책이 유명해지고, 개발자들이 책의 예제 코드로 프로젝트 사용
책 출간 후 오픈소스 프로젝트를 제안하여 스프링이 탄생

스프링

스프링 세션 - 세션기능을 편하게 사용할 수 있다.
스프링 Rest Docs - API문서와 Test를 엮어서 문서를 편리하게 해 줌
스프링 배치 - 실무에서는 천만명의 데이터를 업데이트 하기 어려워서 100 ~ 1000건씩 저장한다.
스프링 클라우드 - 클라우드 기술이다.
Spring | Projects
Projects From configuration to security, web apps to big data—whatever the infrastructure needs of your application may be, there is a Spring Project to help you build it. Start small and use just what you need—Spring is modular by design.
spring.io
스프링 핵심기술

스프링 부트

과거에는 외부 라이브러리의 호환성을 확인해야 했다.
근데 스프링 부트는 버전을 테스트하고 다운로드 받아준다.
스프링이란?

스프링 핵심

객체지향










우리가 계층이 나뉜 이유는 계층을 나누기 위해서이고
범위를 너무 작게하면 기능이 작아지고 크게하면 책임이 많아져서 단일 책임이 깨져서 적당히 설정해야 한다.

구현클래스를 만드는 것은 변경하는 것이 아니다. 그래서 구현클래스를 이용하면 확장에 열려있을 수 있다.


구현객체를 바꾸기 위해선 코드를 변경해야 한다. 다형성을 사용하지만 적용하려고 하면 OCP가 꺠지는데
이 문제의 해결방법은 객체를 생성하고 조립하는 설정자가 별도로 필요하고 이것이 스프링이 해주는 것이다.

인터페이스가 있는데 구현체가 있다. 그럼 구현체가 구현하면 된다 악셀을 밟으면 악셀을 밟아도 뒤로가는 차를 밟을 수 있는데
특별한 클래스를 만들어서 -10인 클래스를 만든다. 컴파일로 얘기하는 것이 아니라 규약을 맞춰야 한다.
기능적으로 보장해야한다.


프로그래머는 추상화에 의존해야지 구체화에 의존하면 안된다.
클라이언트는 인터페이스를 바라봐야한다. 역활에 의존하게 해야한다.!





'코딩 > 자바' 카테고리의 다른 글
| 김영한 스프링 기본편 섹션3 (0) | 2023.11.30 |
|---|---|
| 김영한 스프링 기본편 섹션2 (1) | 2023.11.30 |
| 이것이 자바다 스트림 (0) | 2023.11.28 |
| 이것이 자바다 람다 (0) | 2023.11.26 |
| 이것이 자바다 generic 정리 (1) | 2023.11.26 |