반응형

스프링의 역사와 스프링 부트

 

스프링은 자바 언어를 효율적으로 개발할 수 있는 프레임워크입니다. 스프링을 학습하기 전에 스프링의 탄생 배경과 스프링 부트의 탄생 배경에 대해 간단하게 알아봅시다.

 

EJB(Enterprise Java Beans)와 스프링을 탄생시킨 EJB의 단점

 

스프링의 탄생을 이해하기 위해서는 스프링의 탄생 배경을 제공한 EJB가 무엇이고 어떤 단점을 갖고 있었는가 알아야 합니다. EJB는 기업 환경의 시스템을 구현하기 위한 서버 측 컴포넌트 모델입니다. 일반적으로 업무 로직을 가지고 있는 서버 어플레케이션을 말하는데 이는 독립적인 부품이 아닌, 미국 Sun Microsystems사 제창한 규약으로 EJB는 서버 어플리케이션의 개발을 용이하게 해 다양한 Platform과 제품 간의 이동성을 실현하기 위해 비즈니스 로직과 시스템 서비스를 이용하는 로직을 분산하여 그 사이의 규약을 규정합니다.

 

EJB는 트랜잭션을 자동으로 처리하여 안정적인 데이터 조작하고, 객체를 미리 생성하여 메모리에 저장하여 사용 준비 상태에 들어가도록 함으로써 많은 동시 접속자에 대한 안정성을 지원하는 등의 장점을 지니고 있지만 아래와 같은 단점을 갖고 있습니다.

 

* 객체 지향적이지 않다.

* 프로그래밍 모델이 복잡하다.

* 특정 환경, 기술에 코드가 종속적이다.

* 컨테이너 환경 안에서만 동작할 수 있는 객체 구조를 지녔다.

* 자동화된 테스트가 매우 어렵거나 불가능하다.

* 개발 생산성과 이동성이 부족한다.

 

위와 같은 문제점은 자바의 기본인 객체 지향을 무너뜨렸고, 스프링의 개발로 이어집니다.

 

로드 존스의 J2EE 설계와 개발

프링의 시작

 

스프링은 2002년, 개발자 로드 존슨(Rod Johnson)의 책 'J2EE 설계와 개발' 에서 시작되었습니다. 로드 존슨은 EJB에 의존적이었던 개발 환경이 못마땅했고 EJB에 의존하지 않은 효율적인 코드 30000줄 이상을 책을 통해 제시했는데 이 코드를 읽은 개발자 유겐 휠러얀 카로프는 로드 존슨에게 해당 코드를 이용한 오픈 소스 프로젝트를 제안하였습니다. 이렇게 2002년 로드 존슨의 책에서 시작되어 2004년에 탄생한 것이 Spring Framework입니다. Spring은 EJB에 의존적이었던 겨울이 끝나고 봄(Spring)이 왔다는 의미에서 붙여졌습니다.

 

 

스프링의 역사

 

스프링 프레임워크는 아래처럼 변화했습니다.

 

2003년 : 스프링 프레임워크 1.0 공개

2006년 : 스프링 프레임워크 2.0 공개 - XML 편의 기능을 지원

2009년 : 스프링 프레임워크 3.0 공개 - 자바 코드를 통한 설정 지원

2013년 : 스프링 4.0 - Java8

2014년 : 스프링 부트 1.0 공개

2017년 : 스프링 프레임워크 5.0, 스프링 부트 2.0 공개

 

2014년에는 스프링 부트가 공개되었는데 스프링과 스프링 부트의 차이점은 무엇일까요?

 

 

 

스프링 부트(Spring Boot)

 

스프링은 설정이 반이라는 말이 있을 정도로 개발 전에 스프링에서 해줘야 할 초기 설정들이 많습니다. 이러한 초기 설정을 간편하게 해주기 위해 등장한 것이 스프링 부트인데 스프링 부트는 스프링과 다르게 Tomcat과 같은 웹 서버를 내장하여 별도의 웹 서버를 설치하지 않아도 되고 스프링과 외부 라이브러리를 자동으로 구성합니다. 물론, 스프링 부트는 스프링과 다른 프레임워크가 아닌 스프링 위에서 돌아가는, 개발자의 편의를 위해 개발된 도구라고 보시면 됩니다.

 

 

스프링의 핵심

 

스프링이 자바 기반의 프레임워크라는 것을 알고 기반이 되는 언어인 자바가 객체 지향 언어라는 것에 중점을 둬야 합니다. 스프링은 자바가 가진 객체 지향의 특징을 살려낸 프레임워크이며 좋은 객체 지향 어플리케이션을 개발할 수 있도록 도와주는 도구라는 것입니다.

반응형
반응형

Entity

: JPA에서 테이블을 자동으로 생성해주는 기능을 한다.

- 어노테이션

@Entity : 해당 클래스가 Entity임을 명시한다.

@Table : 데이터베이스 테이블의 이름을 명시한다.

@Id : Primary Key임을 명시한다.

@Column : 데이터베이스의 이름을 명시한다.

@GeneratedValue : Primary Key의 자동 생성 전략을 설정한다.

 

Repository

: 쿼리문을 작성하지 않아도 기본적인 CRUD 기능을 사용할 수 있다.

CREATE : 생성

READ : 읽기

UPDATE : 수정

DELETE : 삭제

 

- 어노테이션

@Repository : 해당 인터페이스가 Repository임을 명시한다.

반응형

+ Recent posts