강의소개
스프링이 제공하는 기능만 소개하는게 아니라 객체지향의 원리와 그걸 스프링이 어떻게 지원하는지를 함께 풀어가며 이해해야 한다. 이 과정을 이해하면 애플리케이션 설계하는게 재미있어진다고 한다!
스프링의 핵심가치는.. 바로 객체지향 프로그래밍에 있다
강의 목표
단순 레퍼런스 문서의 기능을 설명하지 않는다. 왜 스프링이 생겨났고, 왜 이런기능을 제공했는지 설명한다.
자바진영의 추운겨울과 스프링의 탄생
때는 2000년대 초반… 자바진영의 표준기술은 EJB라는게 있었다. 자바진영은 이걸로 장사를 했다. 당시에 오픈소스는 사파처럼 여겨졌다…
EJB는 엔티티 빈이라는 ORM기술까지 있었다. 지금 JPA같은 존재임.
근데 문제는… EJB는 한대당 수천만원짜리였다. 너무 비쌈.
비용은 그렇다 쳐도… 너무 어렵고 복잡했다! 아이디어도 좋고 기술은 좋았는데 너무 복잡했다!! 그래서 선배 개발자들은 다 지옥속에서 일했다… 가장 치명적인건 EJB인터페이스에만 의존해야함… 그래서 차라리 순수한 옛날자바로 돌아가자는 POJO라는 말까지 나왔다. 오래된 방식의 예전 자바로 돌아가자는 이야기까지 나왔음.
그래서… 두명의 개발자가 이 지옥불에서 탈출하기로 생각했다. 하이버네이트를 만든 개빈킨과 지금의 스프링을 만든 로드존슨. 이 둘이 오픈소스를 만든다.
로드존슨이 만든 스프링은 EJB를 비판하면서 훨씬 단순한 프레임워크를 만든다. 이게 스프링의 전신