스프링

1. 스프링이란?

juhoyang 2024. 9. 11. 13:32

내용

자바 언어 기반의 애플리케이션 프레임 워크로 다양한 모듈과 기능을 제공하여 효율적으로 개발, 유지보수 가능하다.

자바 언어의 큰 특징은 객체지향 언어로 스프링은 좋은 객체지향 애플리케이션을 개발할 수 있도록 해준다.

 

목적

애플리케이션 개발

 

배경

스프링이 나오기 전에는 Java EE(Enterprise Edition) 애플리케이션 개발의 표준으로 EJB(Enterprise JavaBeans) 을 사용했다.

EJB는 다양한 기능을 지원하고 자바의 표준기술이라 많이 사용했는데 비용이 비싸고, 설정과 사용이 복잡하고, 무거워서 속도가 느린 단점이 있었다.

 

2002년에 로드존슨 (Rod Johnson) 이 Expert One-on-One J2EE Design and Development 책을 출판하면서 

EJB의 문제점을 지적하고 현재 스프링 프레임 워크의 기반이 되는 코드를 공개했다.

이후 유겔 휠러와 얀 카로프가 오픈소스 프로젝트를 제안 하여 스프링 프레임워크가 탄생했다.

 

Spring 이름은 EJB를 개발하던 겨울을 지나 봄이 왔다는 의미로 이름을 지었다고 한다.

 

Hibernate

게빈 킹(Gavin King)은 당시에 EJB의 Entity Beans의 사용이 불편해서 해당 기술을 대체하는 내용의 책을 발표했다.

이후 사람들이 EJB Entity Beans보다 Hibernate를 사용했고 이후 JPAJava Persistence API)의 표준화 과정에서 중요한 역할을했다.

 

ORM

EJB Entitiy beans -> Hibernate -> JPA (자바표준)

 

*Entity Beans : 애플리케이션에서 DB에서 가져온 데이터를 객체에 담는 그릇

 

*JPA(Java Persistence API) : 자바 플랫폼에서 ORM을 표준화 하기 위해 만들어진 API. 애플리케이션에서 관계형 DB 와 상호작용하는 방식을 단순화 하고 객체지향 프로그래밍과 관계형 DB간에 불일치를 해결하는게 도움을 준다.

인터페이스만 있어 구현체로는 Hiverbate, EclipseLink 등을 사용한다.

 

*ORM(Object Relational Mapping) : 객체지향 프로그래밍 언어에서 사용하는 객체와 관계형 DB의 테이블간 매핑을 자동화 하는 기술 

 

 

프레임워크 버전

출시연도 버전 내용
2004 1.0 최초 정식 릴리스
2006 2.0 XML 편의기능 제공
2009 3.0 Java코드로 스프링 설정 사용
Java 5 이상 요구
2013 4.0 Java 8 지원
2014 스프링부트 1.0 스프링을 좀더 쉽게 설정할수 있도록 도와주는 도구
톰캣 서버 내장
2017 5.0 리액티브 프로그래밍 지원
Kotlin지원
2020/10 5.3 Java 15 지원
예정 6.0 Java 17이상 요구

- 최신버전 기능, 자세한 설명은 공식 사이트 참고 : https://spring.io/projects/spring-framework