스프링이란
스프링이란 여러 기술들의 모음을 말한다.
여기서 여러 기술들이란 필수적인 기술과 선택적인 기술로 나뉘는데, 몇개의 예시를 가져오자면 다음과 같다.
- 필수 : 스프링 프레임워크, 스프링 부트
- 선택 : 스프링 데이터, 스프링 세션, 스프링 시큐리티, 스프링 Rest Docs, 스프링 배치, 스프링 클라우드
이에 대해 간략하게 정리했다.
- 스프링 데이터 : CRUD를 좀 더 편하게 할 수 있도록 도와주는 것이다. ex) spring Data JPA
- 스프링 세션 : 세션 기능을 더 편하게 쓸 수 있도록 도와주는 것이다.
- 스프링 시큐리티 : 보안과 관련된 기술이다.
- 스프링 Rest Docs : API 문서화를 편리하게 해 주는 것이다.
- 스프링 배치 : 배치 처리에 특화된 기술이다. (배치 처리란, 데이터가 너무 많을 때 부분을 나눠서 처리하는 것을 말한다. 예를 들어 100개의 데이터를 처리할 때에 10개씩 나누어서 처리하는 것이다.)
- 스프링 클라우드 : 클라우드 기술에 특화된 기술이다.
스프링 프레임워크란
- 핵심기술 : 스프링 DI 컨테이너, AOP, 이벤트, 기타
- 웹 기술 : 스프링 MVC, 스프링 WebFlux
- 데이터 접근 기술 : 트랜잭션, JDBC, ORM 지원, XML 지원
- 기술 통합 : 캐시, 이메일, 원격접근, 스케줄링
- 테스트 : 스프링 기반 테스트 지원
- 언어 : 코틀린 ,그루비
스프링 부트란
- 스프링을 편리하게 사용할 수 있도록 지원하는 기술로, 최근에는 기본으로 사용하고 있다.
- 단독으로 실행할 수 있는 애플리케이션을 쉽게 생성한다.
- Tomcat 같은 웹 서버를 내장해서 별도의 웹 서버를 설치하지 않아도 된다. (Tomcat을 따로 설치해서 연동하는 별도의 과정이 필요 없고, 단 몇 줄만으로도 가능하다.)
- 손쉬운 빌드 구성을 위한 starter 종속성을 제공한다. (라이브러리를 여러개 가져올 필요 없이, starter를 쓰면 알아서 관련된 여러 라이브러리를 쓸 수 있다.)
- 스프링과 3rd path(외부) 라이브러리를 자동으로 구성한다. (기존에는 버전이나 다른 요소들에 따라 라이브러리를 다르게 사용해야 했다. 그러나 부트는 알아서 버전을 지정해서 라이브러리를 다운받을 수 있게 해준다.)
- 매트릭, 상태확인, 외부 구성 같은 프로덕션 준비 기능을 제공한다. (모니터링 과정을 부트가 어느정도 기본적으로 제공해준다.)
- 관례에 의한 간결한 문장을 사용한다. (기존에는 설정이 매우 복잡했으나, 부트는 관례에 의해 디폴트 설정이 되어있어 일부 필요 부분만 변경하면 된다.)
스프링과 스프링 부트
스프링과 스프링 부트는 별개의 프로그램이 아니다. 스프링 부트는 스프링을 더 편하게 쓸 수 있게 도와주는 도구이다.
스프링 단어에 대해
스프링 단어는 문맥에 따라 다르게 사용되는데, 그 종류는 다음과 같다.
- 스프링 DI 컨테이너 기술 (* 객체 지향 프로그램을 할 수 있게 도와주는 기술이다.)
- 스프링 프레임워크
- 스프링 부트, 스프링 프레임워크 등을 모두 포함한 스프링 생태계
스프링 핵심 개념
- 스프링은 자바 언어 기반의 프레임워크이다.
- 자바 언어의 가장 큰 특징은 객체 지향 언어 라는 것이다.
- 스프링은 객체 지향 언어가 가진 가장 강력한 특징을 살려내는 프레임워크이다.
- 스프링은 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크이다.
해당 글은 인프런 > 스프링 핵심원리 기본편(김영한) 강의를 참고하여 작성하였습니다.
'기초이론 > Spring' 카테고리의 다른 글
[인프런]스프링 핵심원리 기본편_스프링 컨테이너와 스프링 빈(스프링 컨테이너 생성) (0) | 2022.11.02 |
---|---|
[인프런]스프링 핵심원리 기본편_스프링으로 전환하기 (0) | 2022.10.30 |
[인프런]스프링 핵심원리 기본편_IoC, DI, 그리고 컨테이너 (2) | 2022.10.29 |
[인프런]스프링 핵심원리 기본편_좋은 객체 지향 설계의 5가지 원칙(SOLID) (0) | 2022.09.28 |
[인프런]스프링 핵심원리 기본편_좋은 객체 지향 프로그램이란? (2) | 2022.09.23 |