자바진영에서 인정한 기술인 EJB가 그 당시에 엄청 유명했다. 그렇기 때문에 금융권에서도 자주 사용하며 특히 분산트렌젝션 의미는 그렇게 잘 모르겠지만 특정 서버가 느려진다면 그쪽 부분만 서버를 증설시켜서 유연하게 관리할 수 있다고 한다.
ORM기술이란 쿼리문 없이 자바 객체를 쿼리문 없이도 넣었다 뺄 수 있는 기술이다. 그런데 EJB는 NTT빈이라는 ORM기술을 가지고 있다. 종합선물세트이다. 하지만 비쌌다.
EJB지옥
- EJB의 취지는 좋았으나 실제로 사용하기에는 너무 복잡하고 여려우며 EJB가 제공하는 인터페이스를 구현해야 하며 EJB에 의존적으로 개발해야 한다. 개발자는 복잡한것을 엄청 싫어하기 때문에 좋은 취지이긴 하지만 실제로는 그렇게 효율적이진 않았던 모양이다.
- 그래서 다시 자바코드로 돌아가자고 해서 나온것이 POJO이다.
EJB에 지쳐서 스프링이 탄생이 되었다.
게빈킹이 원래는 SI개발자였지만 퇴근후에 오픈소스를 만들어 하이버네이트를 배포하게 되었다. 그래서 사람들은 EJB에서 하이버네이트를 사용하기 시작하자 자바 진영에서 EJB엔티티빈은 망했다고 인정하여 게빈킹을 대려와서 거의 복붙 수준으로 반든것이 JPA이다.
자바진영의 ORM기술은 JPA가 먹고 있다고 한다. 그리고 JPA의 인터페이스 구현체로는 하이버네이트가 80%이상 먹고 있다.
현업에서 불편한점을 느끼고 만든 하이버네이트와 JPA의 표준이 만나 서로의 장점만 뽑아내 만들어진것이 JPA이다.
스프링 역사
- 자바 진영에서 기술을 사용할 때 메인으로 사용되는 기술은 스프링와 JPA가 있다.
- EJB에 빡친 로드존슨은 3만줄정도가 되는 예제코드가 들어있는 하나의 책을 출간하자마자 대 히트를 치기 시작하였다. 일반적인 개발자들은 이 예제 코드를 실무에서 적용하여 사용하기 시작하였고 책 출간 직후에 유겐휠러 얀 카로프가 로드 존슨에게 오픈소스 프로젝트를 제안하였다.
- 스프링의 핵심 코드 상당수는 유겐 휠러가 아직도 개발하고 있는중이라고 한다.
- 스프링의 이름은 EJB라는 겨울을 넘어 새로운 시작을 한다는 의미에서 시작이 된 것이다.
- 스프링이 좋지만 설정 자체가 어렵기 때문에 그러한 설정을 거의 하지 않으며 서버도 내장하여 출시한게 스프링 부트이다.