-
스프링 Spring
(협의의 의미) : 스프링 DI 컨테이너 기술
(광의의 의미) : 스프링 부트, 스프링 프레임워크 등 포함한 스프링 생태계.
스프링은 여러가지 기술들의 모음이다.
스프링 생테계
- 스프링 프레임워크(필수)
- 스프링부트 : 스프링 기술을 편리하게 사용할 수 있도록 도와준다.(필수)
- 스프링 데이터 : CRUD 편리하게 사용할 수 있도록 도와준다.
ex) 스프링 데이터 JPA - 스프링 시큐리티 : 보안
- 스프링 세션 : 세션 기능 편리하게 사용할 수 있도록 도와준다
- 스프링 배치 : 동시에 많은 요청이 들어왔을 때 사용하는 배치 처리에 특화된 기술
- 그 외 스프링 클라우드 등등...
스프링부트 Spring Boot
: Spring 이랑 같이 사용하는 기술이다
- Tomcat 과 같은 웹서버 내장되어 있음 -> 별도의 웹서버 설치가 불필요
- 손쉬운 빌드 구성 위한 starter 종속성 제공한다.
ex) springboot AOP starter -> starter가 필요한 라이브러리들 땡겨와줌. - 스프링 버전에 따른 외부 라이브러리 자동 구성
- 운영 화면에서 모니터링 기능 제공
- 관례에 의한 간단한 설정 + 커스텀 가능
자바 진영의 겨울과 스프링의 탄생
기존에 자바 진영에 EJB(Enterprise JavaBeans)라는 서버 측 컴포넌트 모델이 있었다.
EJB는 사용하기 복잡했기에 EJB로부터 벗어나고자 하는 시도가 있었다.

유겐 휠러, 얀 카로프가 로드 존슨에게 오픈 소스 프로젝트를 제안했다.(스프링 프로젝트)
'스프링'이라는 이름은 전통적인 J2EE(EJB)라는 겨울을 넘어 새로운 시작이라는 뜻으로 지었다고 한다.
Hibernate와 스프링은 현재 스프링과 JPA가 가장 큰 메인 기술이 되었다.
스프링을 왜 만들었나?
스프링은 자바 언어 기반의 프레임워크이다.
(기존의 EJB 의존적 개발 방식을 탈피하여) 객체지향 언어가 가진 강력한 특징을 살려내는 프레임워크이다.
[정리]
=> 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크이다.
다음에는 객체지향의 특징을 알아보자.
[출처]
스프링 핵심 원리 - 기본편
'Spring' 카테고리의 다른 글
[Spring][Kotlin] 순수 자바로 객체지향 설계원칙 지키기 + 스프링으로 전환 (0) 2022.04.12 [Spring][Kotlin] 좋은 객체지향 설계 5가지 원칙 SOLID와 스프링 (0) 2022.04.12 [Spring] 객체지향 특징과 다형성과 스프링 (0) 2022.04.11 [오류 기록] Web server failed to start. Port 8080 was already in use. (0) 2022.03.25 [오류 기록] Unable to find method "java.lang.Stringorg.gradle.api.artifacts.result.ComponentSelectionReason.getDescription()" (0) 2022.03.25