Spring 이란
Spring은 Java 언어 기반의 프레임워크이다. Java로 다양한 어플리케이션을 만들기 위한 프로그래밍 틀 이라고 할 수 있다.
'프레임워크 (Framework)'
개발자에게 구조화된 뼈대를 제공함으로써, 기본 구조에 맞게 코드를 작성하게 하여 코드를 작성하는 시간 낭비를 줄여주고 일정한 품질이 보장되는 결과를 얻을 수 있게 해준다.
Spring 이라는 단어는 문맥에 따라 다르게 사용된다.
- Spring DI 컨테이너 기술
- Spring Framework
- 요즘에는 Spring을 spring boot, spring framework 등 모두 포함한 스프링 생태계를 통틀어 말한다.
Spring의 핵심 개념, 컨셉
- 자바 언어 기반의 프레임워크
- 자바 언어의 가장 큰 특징 : 객체 지향 언어
- Spring은 객체 지향 언어가 가장 강력한 특징을 살려내는 프레임워크이다.
- Spring은 좋은 객체 지향 어플리케이션을 개발할 수 있게 도완주는 프레임워크이다.
Spring Framework
핵심기술 : 스프링 DI 컨테이너, AOP, 이벤트, 기타..
웹기술 : 스프링 MVC, 스프링 WebFlux
데이터 접근 기술 : 트랜잭션, JDBC, ORM 지원, XML 지원
기술 통합 : 캐시, 이메일, 원격접근, 스케줄링
테스트 : 스프링 기반 테스트 지원
언어 : 코틀린, 그루비
→ 최근에는 스프링 부트를 통해서 스프링 프레임워크의 기술들을 편리하게 사용한다.
Spring Boot
스프링을 편리하게 사용할 수 있도록 지원, 최근에는 기본으로 사용한다.
장점
- 단독으로 실행할 수 있는 스프링 애플리케이션을 쉽게 생성
- Tomcat 같은 웹 서버를 내장해서 별도의 웹 서버를 설치하지 않아도 된다.
- 손쉬운 빌드 구성을 위한 starter 종속성 제공
- starter를 통해 필요한 다른 라이브러리도 같이 가져와준다.
- 스프링과 3rd parth(외부) 라이브러리 자동 구성
- 외부 라이브러리 버전에 대해서 고민을 하지 않아도된다.
- 메트릭, 상태 확인, 외부 구성 같은 프로덕션 준비 기능 제공
- 관례에 의한 간결한 설정
- 웬만한건 default로 설정이되어있고, 메뉴얼에 나와있어 알기 쉽다.
Spring Project
필수
스프링프레임워크, 스프링 부트
선택
- 스프링 데이터 : 새로운 데이터 접근 기술을 쉽게 사용하도록 도와준다.
- 스프링 세션 : 세션기능 편리하게 사용
- 스프링 시큐리티 : 보안관련
- 스프링 REST DOCS : API 문서화 관리 편리하게
- 스프링배치 : 배치 처리 특화
- 스프링 클라우드 : 클라우드 기술 특화
자세한 내용은
참고)
스프링 핵심 원리 - 김영한 (인프런)
'Spring' 카테고리의 다른 글
Filter, Interceptor, AOP (1) | 2023.11.23 |
---|---|
Spring WebFlux (1) | 2022.05.08 |
[에러] org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'securityConfig' defined in file (0) | 2022.03.27 |
예외처리 - @ExceptionHander, @ControllerAdvice, @RestConrollerAdvice (0) | 2022.01.11 |