[Spring] Spring 이란 ?

Spring 이란?

Java 의 웹 프레임워크로 Java 언어를 기반으로 사용한다. 

Java를 이용한 기술은 JSP,MyBatis,JPA 등 여러가지가 있는데 Spring은 이 기술들을 더 편하게 사용하기 위해 만들어졌다.

 

Spring의 장점

1. 중복코드의 사용률 감소

2. 비즈니스 로직을 더 간단하게 해준다.

3.오픈소스를  보다 효율적으로 사용이 가능

=> Java 기술들을 더 쉽게 사용할 수 있게 해주는 오픈소스 프레임 워크

 

Spring 생태계

Spring은 어떤 특정한 하나가 아니라, 여러가지 기술들의 모음이다.

- 스프링프레임워크 : 스프링의 핵심이 되는 기술

- 스프링부트 : 여러 스프링 기술들을 편리하게 사용하도록 도와줌

- 스트링 데이터 : DB 기술을 간단하게 도와주는 기술. 가장 많이 쓰는 건 Spring Data JPA

- 스프링 세션 : 세션기능을 편리하게 사용할 수 있도록 도와주는 기술

- 스프링 시큐리티 : 보안과 관련된 것

- 스프링 Rest Docs : API 문서화,테스트를 편하게 해주는 것 

- 배치 : 데이터 업데이트를 할 때 분산하는 작업(배치작업)을 더욱 편하게 해준다.

- 클라우드 : 최근 클라우드 기술

 ... 이 외에도 굉장이 다양한 기술들이 있다.

그 중에서 우리는 스프링프레임워크와 스프링부트에 대해 더 자세히 알아볼 예정이다 !

 

스프링프레임워크

✔️ 핵심기술 : 스프링 DI 컨테이너, AOP,이벤트, 기타

✔️ 웹기술 : 스프링 MVC, 스프링 WebFlux

✔️ 데이터 접근 기술 : 트렌젝션, JDBC,ORM지원 , XML지원

✔️ 기술통합 : 캐시, 이메일, 원격접근, 스케쥴링

✔️ 테스트 : 스프링 기반 테스트 지원

✔️ 언어 : 코틀린, 그루비

✔️ 최근에는 스프링 부트를 통해서 스프링 프레임워크의 기술들을 편리하게 사용 

 

스프링부트

✔️ 스프링을 편리하게 사용할 수 있도록 지원, 최근에는 기본으로 사용

✔️ 단독으로 실행할 수 있는 스프링 애플리케이션을 쉽게 생성

✔️ Tomcat 같은 웹 서버를 내장해서 별도의 웹서버를 설치하지 않아도 됨

✔️ 손쉬운 빌드 구성을 위한 starter 종속성 제공

✔️스프링과 3rd path(외부) 라이브러리 자동구성

✔️ 메트릭, 상태확인, 외부 구성같은 프로덕션 준비기능 제공

✔️ 관례에 의한 간결한 설정

 

Spring이 만들어지게 된 계기

Spring이 나오기 전 EJB(Enterprise Java Bean)라는 분산 애플리케이션을 지원하는 컴포넌트 기반의 객체를 사용하였는데, 재사용성이 높다는 장점이 있었지만 사실상 재사용을 하기 힘든 구조였고 초기 환경설정이 너무 까다로운 탓에 그 당시 개발자들이 고초를 많이 겪었다고 한다. 그래서 그 단점을 보완하고자 만든 것이 Spring. 이름도 <프로그래밍의 새로운 봄> 이라는 의미로 Spring 이라고 지었다고 한다 ㅋㅋ 

 

인프런 스프링 핵심원리 - 기본편