SPRING 핵심 원리 [ 기본편 ]

[스프링 핵심 원리] 섹션 1.1 객체 지향 설계와 스프링 (스프링의 탄생)

wlalsu_u 2023. 1. 18. 11:54

1.0.1  강의 소개

 

 

 

스프링의 핵심 원리를 제대로 학습하기 위해서는,

 

단순히 스프링이 제공하는 기능을 배우고 사용하는 것을 넘어,

 

스프링이 제공하는 객체지향을 이해할 필요가 있다.

 

 

즉, 스프링의 핵심 가치는 '객체 지향 프로그래밍' 에 있다.

 

 

 

앞선 스프링 입문 강의에서, 스프링의 전반적인 작동 원리는 이해하였지만,

 

스프링이 왜 객체 지향을 제공하는지, 또 스프링의 핵심 원리는 무엇인지에 대해서는 아직 모호한 점이 많았다.

 

 

 

따라서 이번 강의를 통해, 스프링이 제공하는 기능을 학습할 뿐만 아니라, 

 

스프링에 대한 본질적인 이해를 하기 위해 노력해보고자 한다.

 

 

 

 


 

 

1.1.1  이야기 - 자바 진영의 추운 겨울과 스프링의 탄생 (스프링의 역사)

 

 

 

 

먼저, 스프링의 탄생 배경에 대해 가볍게 알아보자.

 

 

 

 

2000년대 초반에는, Java 기술의 표준으로 EJB (Enterperise Java Beans) 를 사용하였다.

 

EJB는 분산기술, 트랜잭션, ORM 등 편리한 기능들을 많이 제공하였지만,

 

이론이 굉장히 복잡하고 어려울뿐만 아니라, 값이 비싸다는 치명적인 단점이 있었다. 

 

 

 

 

이러한 중량 프레임워크의 치명적인 단점에 대항하여,

 

순수한 Java 코드로만 오브젝트를 만들자는,  POJO (Plain Old Java Object) 라는 말이 떠돌기도 하였다. 

 

 

 

 

이러한 어려움에,  당시 개발자였던 Rod JohnsonGavin King

 

현재 Java 의 메인 기술이라고 할 수 있는 Spring 과 JPA를 개발하게 된다.

 

 

 

 

 

 Spring (Rod Johnson)

 

 

-  EJB 보다 훨씬 간단한 코드로, EJB 컨테이너를 대체한다.

 

- 책을 출간하여, EJB 없이 고품질 확장 가능한 어플리케이션 개발을 보여주었다.

 

(당시 출간한 책에는 30000 라인이 넘는 예제 코드가 담겨있었는데, 여기에 현재 Spring 의 핵심 개념과 기반 코드가 담겨있다.)

 

 

- 책 출간 이후, Juergen Hoeller(유겐 휠러) 와 Yan Caroff(얀 카로프) 의 제안으로 오픈 소스 프로젝트가 개발되었다.

 

- Spring 이라는 이름은 전통적인 J222(EJB) 겨울을 넘어, 새로운 시작을 나타내는 봄이라는 뜻이다.

 

 

 

 

Hibernate (Gavin King)

 

 

 

- EJB 엔티티빈 기술 대체한 오픈 소스

 

- 이후 JPA 표준으로 새롭게 정의된다. 

 

- 현재는 JPA 표준 인터페이스를 구현한 구현체로 Hibernate 를 사용한다

 

 

 

 

 

 

 

 

 

 

김영한 '스프링 핵심 원리 - 기본편' 강의를 기반으로 작성하였습니다.

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8