개발자 공부 - 인프런 온라인 강의/스프링 핵심 원리 - 기본편

[섹션 1. 객체 지향 설계와 스프링] 이야기 - 자바 진영의 추운 겨울과 스프링의 탄생/ 인프런 김영한 스프링 핵심 원리 기본편

easpop 2023. 2. 6. 13:44
728x90
반응형

이번 시간에는 이야기를 소개하고 스프링이 탄생하게 된 시대적 배경에 관한 시간이었다.

 

2000년대 초반에, Java 진영의 표준기술 중에서 EJB가 최고봉이었다.

다른 오픈소스로 구현했다고 하면 신용도가 떨어지기 때문에 표준기술인 EJB가 널리 쓰이게 되었다.

 

그 당시, 컨테이너 기술, 설정에 의한 트랜잭션 관리, 분산 기술 등 강점이 있었다.

하지만~~ 수천만원짜리의 서버가 필요하며.. 이렇게 엄청 비쌌다.

이론은 좋았지만 단점이 많았는데, EJB 인터페이스에 의존적으로 설계를 해야하고,

어렵고, 복잡하고, 느리다.... 는 단점들이 있었다.

 

그래서 순수한 이전 자바로 돌아가자 말이 나오며, POJO(Plain Old Java Object)라는 단어가 생김ㅋㅋㅋ

그래서 Rod Johnson라는 사람이 오픈소스를 만드는데, 그게 스프링이다!ㅋㅋㅋㅋ

EJB보다 단순하면서 더 좋은 방법으로 개발을 할 수 있다를 내세우며 책을 쓰며 코드를 풀었는데,

그게 나중에 스프링이 된다.

 

그리고 EJB의 엔티티 빈 기술을 대체하기 위해 오픈소스를 만드는데, 그게 Hibernate이다.

그 이후에 Hibernate를 기반으로 자바 표준 기술을 만들게 되는데, 그게 JPA이다.

그리고 JPA를 표준 인터페이스로 하고, Hibernate, EclipseLink와 같은

여러 벤더들이 만든 JPA 구현체 기술들이 있게 된다.

반응형

앞서 설명한 것과 같이, 스프링의 역사는 2002년 EJB의 문제점을 지적하면서 Rod Johnson이 책을 발간했다.

그러면서 30,000라인 이상의 오픈소스 예제코드를 보여줬는데,

그것이 지금의 스프링 핵심 개념과 기반코드가 들어있는 코드이다.

그 때 BeanFactory, ApplicationContext, POJO, 제어의 역전(IoC),

의존관계 주입(Dependency Injection)과 같은 개념이 생겨났다.

 

 

스프링의 이름은 전통적인 J2EE(EJB)라는 겨울을 넘어 새로운 시작의 봄이라는 뜻으로 지었다고 한다.

 

스프링의 단점을 꼽자면, 설정하는게 너무 어렵고,

주로 웹 어플리케이션을 개발할 때 쓰이는데, 톰캣과 같은 웹 서버에 스프링 war를 빌드해서 집어넣고 배포해야 하는데,

세팅하는게 매우 복잡했다.

그래서 이미 유행하고 있던 다른 프레임워크들에서 쓰이는, 웹 서버를 내장해서 자체적으로 설정하고 구동하는 방식이 많이 쓰였는데, 스프링도 이런 흐름을 받아들여 스프링 부트가 출시된다.

 

스프링 부트를 사용하니 웹 서버를 내장하고 있어서 편리하고, 설정할게 많이 없기 때문에 편리하게 사용할 수 있게 되었다.

728x90
반응형