2000년대 초반, 자바 진영 표준기술의 최고봉인 EJB(Enterprise Java Beans)라는것이 있었다.
Enterprise Java Beans라는것인데 줄여서 EJB라고 불렀다. 지금으로 따지면 Spring 혹은 JPA를 모두 합쳐놓은 종합선물셋트였다. 그리고 어쨋든 Java 진영의 표준기술이였기 때문에 금융권에서 많이 사용하였다. 그래서 당시에는 기술영업을 할때 EJB라는것을 가지고 기술영업을 많이 하였다. 아무래도 Java 진영에서 표준이었기 때문에 많은 곳에서 사용하였었다. 고급 기능이 모두 포함되어있었고, 당시 EJB는 종합선물셋트라고 해도 과언이 아닐 정도로 기능이 많았다.
EJB 지옥
자! 그런데 왜 EJB 지옥인가?
1. 너무 어렵다
2. 복잡하다.
3. 느리다.
개발자 입장에서는 단순하고 편해야 사용하는데 EJB는 그야말고 지옥이었다. EJB에서 지원하는 Interface로 개발하고 뿐만 아니라 EJB에 의존적으로 개발해야되는 문제점도 있었다. 그러다 보니 코드가 난리가 나는 것이다. 그리고 EJB는 컨테이너를 한번 띄우는데도 시간이 너무 오래 걸리며, 여러가지로 개발자들에게 있어서 굉장히 비효율적인 부분이 많았다.
이건 아니다. 내가 만들어도 EJB 보다는 잘 만들겠다.
EJB를 가지고 프로젝트를 진행했던 SI 개발자 Rod Johnson (로드존슨)이 비판하면서 책을 쓴다. 현재의 EJB 보다 훨씬 단순하면서 더 좋은 방법으로 개발할수있다 라는것을 주제로 하여 책을 쓰고 코드로 풀어보는데 그것이 바로 오늘날의 Spring이 된것이다.
1. EJB 컨테이너 대체
2. 단숨함의 승리
3. 현재 사실상 표준기술
결국 EJB지옥이 Spring을 탄생시켰다 라고 볼 수 있다.
개발자 로드존슨
로드존슨이 2002년 Expert One-on-One J2EE Design and Development 라는 저서에서 선보인 코드가 기초가 되었으며 이게 바로 스프링이 되었다.