스프링 공부/인프런 김영한 스프링 핵심 원리 - 기본편 노트정리

1-1. 이야기 - 자바 진영의 추운 겨울과 스프링의 탄생

모항 2022. 8. 20. 15:40

스프링이 나타나기까지 어떤 우여곡절이 있었는지 알려주신 회차이다.

 

 

 

간단한 내용정리

옛날 옛적 2000년대 초반의 자바 진영에서는 EJB(Enterprise Java Beans)가 유일무이한 정파 기술의 자리에 있었다고 한다. 이게 아닌 다른 오픈소스 기술을 가져다 쓴다는 것은 매우 불안하고 이상한 일로 여겨졌다고 한다.

 

EJB가 그렇게 형편 없는 기술은 아니었다. 이론적으로 굉장히 좋은 기술이었고 할 수 있는 것도 많았다.

그러나 첫째로 가격이 매우 비쌌고

둘째로 개발자의 입장에서 코딩하기가 너무나 어렵고 불편했다. 강사님께선 이 점을 설명하시며 불지옥에 타고 있는 사람들의 이미지를 보여주셨다... 저 사람들이 바로 그 시절의 개발자들이라면서...

 

이런 상황을 더이상 참지 못하고

내가 만들어도 더 잘 만들겠다며 등장한 것이 Spring이다.

 

전설의 시작은 로드 존슨의 책이었다.

로드 존슨은 EJB에 불만이 많았고

EJB 없이도 고품질의 확장 가능한 개발을 할 수 있다며 수만 줄의 예제 코드로 채워진 책을 냈다.

그 책이 매우 잘 됐다. 예제 코드를 그대로 가져다 프로젝트에 사용하는 개발자들도 생겨났다.

이 책의 예제 코드들이 바로 스프링의 핵심 내용을 다 담고 있다.

 

스프링의 재료가 준비되었지만 아직 스프링이라는 이름은 없었던 그때,

유겐 휠러와 얀 카로프가 로드 존슨에게 찾아와 오픈소스 프로젝트를 시작하자고 제안한다.

그렇게 자바 진영의 겨울을 끝낼 새로운 기술이라는 의미의 Spring이 탄생하게 된다.

 

그리고 EJB의 ORM 기술인 엔티티빈 기술을 대체하는 Hibernate가 개빈 킹에 의해 개발되었다. 이것 또한 크게 성공하여 아예 엔티티빈의 자리를 꿰찼다.

그러자 자바 표준 진영에서는 EJB 엔티티빈의 패배를 인정하고 개빈 킹과 함께 JPA 인터페이스를 새로 만든다.

그렇게, (당시 개발자들이 열광하던 Hibernate의 실용성) + (업계에서 널리 쓰이는 데 필요한 정제되고 안정된 표준의 모습)을 갖춘 JPA가 탄생한다. 인터페이스인 JPA를 바탕으로 한 Hibernate와 EclipseLink 등의 구현체들이 존재하는 지금의 JPA 생태계가 이때 시작되었다.

현재 자바 진영의 ORM 시장은 JPA가 다 먹었고 그 중 80%는 Hibernate가 차지한다고 한다.

 

그러나 스프링의 단점은 설정이 너무 어렵다는 것이었다.

코딩을 본격적으로 시작하기 전의 준비작업은 물론, 서버 배포를 위해 해야 할 일이 너무 많았다.

이를 해결해준 것이 스프링 부트이다. 스프링 부트는 스프링 생태계의 혁명이었다고 한다.

 

 

 

이 이야기를 해준 이유

이 강의는 자바 진영의 겨울을 맛보는 데서 시작한다.

그때 그 상황에서 불편함을 해소하기 위해 노력하다 보면 왜 로드 존슨처럼 되는지, 어떻게 스프링으로 수렴하게 되는지를 느끼기 위해서이다.

왜 옛날 개발자들이 스프링에 그토록 열광했고 왜 지금 많은 사람들이 스프링을 쓰는지 보여주시겠다고 한다.