본문 바로가기
스프링/핵심 원리

[Spring] 스프링이란?

by drCode 2022. 1. 5.
728x90
반응형
728x90

 

스프링이란?

 

스프링 프레임워크는 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크로서 간단히 스프링이라고도 한다. 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다.

 

스프링은 여러 서비스를 제공한다.

 

필수적으로 이용해야하는 서비스가 있고, 선택적으로 이용해야 하는 서비스가 있다.

 

필수 : 스프링 프레임워크, 스프링 부트
선택 : 스프링 데이터, 스프링 세션, 스프링 시큐리티, 스프링 Rest Docs, 스프링 배치, 스프링 클라우드

 

spring.io 사이트에서 스프링에 대한 자세한 서비스들을 찾아볼 수 있다.

https://spring.io/why-spring

 

Why Spring?

Spring makes programming Java quicker, easier, and safer for everybody. Spring’s focus on speed, simplicity, and productivity has made it the world's most popular Java framework.

spring.io

 

반응형

가장 핵심중의 핵심인 스프링 프레임워크와 스프링 부트의 대한 서비스 특징을 살펴보면,

 

스프링 프레임워크

 - 핵심 기술 : 스프링 DI 컨테이너, AOP, 이벤트, 기타
 - 웹 기술 : 스프링 MVC, 스프링 WebFlux
 - 데이터 접근 기술 : 트랜잭션, JDBC, ORM 지원, XML 지원
 - 기술 통합 : 캐시, 이메일, 원격접근, 스케줄링
 - 테스트 : 스프링 기반 테스트 지원
 - 언어 : 코틀린, 그루비
 - 최근에는 스프링 부트를 통해서 스프링 프레임워크의 기술들을 편리하게 사용

 

스프링 부트

 - 스프링을 편리하게 사용할 수 있도록 지원, 최근에는 기본적으로 사용
 - 단독으로 실행할 수 있는 스프링 애플리케이션을 쉽게 생성
 - Tomcat 같은 웹 서버를 내장해서 별도의 웹 서버를 설치하지 않아도 됨
 - 손쉬운 빌드 구성을 위한 starter 종속성 제공
 - 스프링과 3rd parth(외부) 라이브러리 자동 구성
 - 메트릭, 상태 확인, 외부 구성 같은 프로덕션 준비 기능 제공
 - 관례에 의한 간결한 설정

 

스프링 부트는 스프링 프레임워크를 꼭 사용해야하는 기술이다. 스프링 부트 자체만으로 스프링을 사용할 수는 없다.

스프링이라는 단어?
 - 스프링이라는 단어는 문맥에 따라 다르게 사용된다.
   - 스프링 DI 컨테이너 기술 이기도 하고
   - 스프링 프레임워크 이기도 하고
   - 스프링 부트, 스프링 프레임워크 등을 모두 포함한 스프링 생태계를 스프링이라고 부른다.

스프링은 왜 만들었나?

핵심 개념
  - 이 기술을 왜 만들었는가?
  - 이 기술의 핵심 컨셉은?

스프링은 어떤 본질을 가지고 있는가??

스프링의 핵심 개념, 컨셉?
 - 단순히 웹 애플리케이션 만들고, DB 접근을 편리하게 해주는 기술일까?
 - 전자정부 프레임워크의 한 종류일까?
 - 웹 서버를 자동으로 띄워주는 걸까?
 - 클라우드, 마이크로서비스도 제공해주는 걸까?

위의 내용은 결과물들일 뿐

스프링의 진짜 핵심
 - 스프링은 자바 언어 기반의 프레임워크
 - 자바 언어의 가장 큰 특징 - 객체 지향 언어
 - 스프링은 객체 지향 언어가 가진 가장 강력한 특징을 살려내는 프레임워크
 - 스프링은 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크

EJB를 사용하면
EJB에 종속적이고 순수 객체지향적으로 개발할 수 없음

728x90
반응형

댓글