Record: 2022.11.20 / 20:33
About Spring
스프링은 어떤 특정한 하나의 기술이 아닌, 여러가지 기술의 집합체이다. 그 기술의 형태는 다음과 같다.
- 스프링 프레임워크
- 스프링 부트
- 여러기술을 편리하게 사용할 수 있도록 도움을 주는 스프링 부트
- 스프링 데이터
- CRUD를 편리하게 사용할 수 있도록 도움을 주는 스프링 데이터
- 스프링 시큐리티
- 보안과 관련된 기능을 지원하는 스프링 시큐리티
- 스프링 배치
- 실시간으로 응대하기 힘든 일을 정해진 시간에 동작할 수 있도록 도움을 주는 스프링 배치
- 스프링 세션
- 세션을 편리하게 사용할 수 있도록 도움을 주는 스프링 세션
- 스프링 Rest Docs
- API문서와 테스트기능을 하나로 묶어 편리하게 사용할 수 있도록 해주는 스프링 Rest Docs
- 스프링 클라우드
이 중 스프링 프레임워크와 스프링 부트는 필수로 구분되고, 그 외의 기술은 필요에 따라 선택하여 사용할 수 있다.
About Spring Framework
스프링 프레임워크에 대해 간단히 요약하자면 다음과 같다. 현재는 스프링 프레임워크의 기술을 편리하고 간단하게 사용하기 위해 스프링 부트를 사용한다.
- 핵심기술: 스프링 DI Container, AOP, Event
- 웹기술: 스프링 MVC, 스프링 WebFlux
- 데이터 접근기술: 트랜잭션, JDBC, ORM, XML
- 기술통합: 캐시, 이메일, 스케줄링
- 테스트: 스프링 기반 테스트지원
- 언어: 코틀린, 그루비
About Spring Boot
스프링 프레임워크를 편리하게 사용할 수 있도록 하기 위해 스프링 부트가 개발되었다. 스프링 부트의 특징을 간단히 작성하자면 다음과 같다.
- 단독으로 실행할 수 있는 스프링 어플리케이션을 쉽게 생성할 수 있다.
- Tomcat 웹서버를 내장하여, 별도의 웹서버를 설치하지 않아도 된다.
- 간편한 빌드 구성을 위한 starter 종속성을 제공한다.
- 스프링과 third parth 라이브러리를 자동으로 구성한다.
- 메트릭, 상태 확인, 외부 구성과 같은 프로덕션 준비기능을 제공한다.
- 관례에 의한 간결한 설정
About Spring Word
스프링이라는 단어는 문맥에 따라 다르게 사용된다. 그 종류는 아래와 같다.
- 스프링 DI 컨테이너 기술
- 스프링 프레임워크
- 스프링부트, 스프링 프레임워크등을 포함한 스프링 생태계
About Spring Concept
필자는 스프링이라는 개념을 처음 배웠을 때 웹 어플리케이션을 만들고 DB접근을 편리하게 해주기 위한 프레임워크라고 생각했다. 이 생각도 맞지만, 스프링의 핵심은 다음과 같다.
스프링은 자바 언어 Base의 프레임워크 → 따라서 객체지향의 특성을 갖고 있다. 그러므로 스프링을 한 문장으로 표현하자면 다음과 같다.
스프링은 좋은 객체지향 어플리케이션을 개발할 수 있도록 도움을 주는 프레임워크라고 할 수 있다.