반응형
본 내용은 인프런의 김영한 님의 강의 "스프링 핵심 원리 - 기본편" 내용을 바탕으로 정리한 내용입니다.
스프링(Spring)이란?
- 자바 기반의 오픈 소스 애플리케이션 프레임워크로 기업급 애플리케이션을 개발하기 위한 다양한 기능과 추상화 계층을 제공하여 개발자가 애플리케이션을 보다 쉽게 구축하고 관리할 수 있도록 도와준다.
1. 스프링 프레임워크(Core)
- 스프링의 핵심 모듈로서, 제어의 역전(Inversion of Control, IoC)과 의존성 주입(Dependency Injection, DI)을 지원한다.
- 개발자는 객체의 생성과 관리를 스프링 컨테이너에게 위임하여 애플리케이션의 유연성과 확장성을 높일 수 있다.
- 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와준다.
- 핵심기술 : 스프링 DI 컨테이너, AOP
- 웹 기술 : 스프링 MVC, 스프링 WebFlux
- 데이터 접근 기술 : 트랜잭션, JDBC, ORM 지원, XML 지원
- 기술통합 : 캐시, 이메일 , 원격접근, 스케줄링
- 테스트 : 스프링키반 테스트 지원
- 언어 : 코틀린, 그루비
2. 스프링 데이터(Spring Data)
- 데이터 액세스 계층을 개발하기 위한 모듈로, 다양한 데이터베이스와의 상호작용을 추상화하고 편리한 데이터 액세스 기능을 제공한다.
- ORM(Object-Relational Mapping) 프레임워크인 Hibernate, JPA(Java Persistence API), MongoDB 등 다양한 데이터 소스와 통합하여 개발을 용이하게 한다.
3. 스프링 시큐리티(Spring Security)
- 보안과 인증을 담당하는 모듈로, 웹 애플리케이션의 보안을 강화하기 위한 다양한 기능을 제공한다.
- 스프링 시큐리티를 사용하여 사용자 인증, 권한 부여, 웹 방화벽 설정 등을 구현할 수 있다.
4. 스프링 REST Docs(Spring REST Docs)
- 스프링 기반 RESTful API의 문서화를 지원하는 모듈로 테스트 기반으로 API의 동작과 예상되는 응답을 문서로 작성하고, 이를 템플릿화하여 API 문서를 생성한다.
5. 스프링 배치(Spring Batch)
- 대용량 데이터 처리를 위한 모듈로, 일괄 처리(batch processing) 기능을 지원한다.
6. 스프링 클라우드(Spring Cloud)
- 클라우드 네이티브 애플리케이션 개발을 위한 모듈로 여러 개의 마이크로서비스를 구축하고, 이를 관리하고 배포하기 위한 기능을 제공한다.
스프링 부트(Spring Boot)란?
- 스프링 기반의 애플리케이션을 빠르고 쉽게 개발하기 위한 모듈로 자동 구성(Auto Configuration)을 통해 개발자가 설정 작업을 최소화하고, 내장형 서버를 제공하여 애플리케이션을 쉽게 실행할 수 있게 도와준다.
1. 간편한 설정
- 스프링 부트는 스프링에서 필요한 추가적인 설정들을 기본적으로 제공해주기에 개발 비용을 줄일 수 있게 도와준다.
2. 자동 구성(Auto-configuration)
- 스프링 부트는 자동 구성 메커니즘을 제공하여, 개발자가 수동으로 설정을 작성하지 않아도 웹 애플리케이션을 자동으로 구성하는데 클래스 경로(classpath)를 스캔하여, 사용하는 외부 라이브러리와 구성 요소에 기반하여 알맞은 설정을 자동으로 수행한다.
3. 임베디드 서버 지원
- 스프링 부트는 웹 애플리케이션을 실행하기 위해 톰캣(Tomcat), 제티(Jetty) 와 같은 임베디드 서버를 내장하고 있다. 이를 통해 개발 및 배포가 간편해지고 별도의 서버 설치 없이도 애플리케이션을 실행할 수 있다.
4. "스타터(starter)" 종속성 제공
- 스타터라는 개념을 도입하여 개발자들이 일반적인 작업에 필요한 종속성을 쉽게 추가할 수 있도록 지원한다.
- 특정 기능 또는 작업에 필요한 모든 라이브러리들을 묶어놓은 패키지로, 단일 스타터 종속성을 추가함으로써 관련된 라이브러리들을 자동으로 가져올 수 있다.
5. 메트릭, 상태 확인, 외부 구성 같은 프로덕션 준비 기능 제공
- 스프링 부트는 애플리케이션의 상태를 모니터링하고 관리하기 위한 다양한 기능을 제공한다.
- 스프링 부트 액추에이터
- 애플리케이션의 운영 환경에서 사용되는 메트릭, 헬스 체크, 로그, 스레드 덤프 등의 정보를 노출하고 관리할 수 있는 기능을 제공한다.
- 메트릭
- 애플리케이션의 성능, 사용량, 에러 등과 관련된 정보를 수집하고 모니터링하는 기능을 제공한다.
반응형
'Spring' 카테고리의 다른 글
[스프링] IoC와 DI (0) | 2023.07.15 |
---|---|
[스프링] 좋은 객체 지향 프로그래밍이란? (0) | 2023.07.05 |
JWT 토큰이란? (0) | 2023.04.19 |
스프링 시큐리티(Spring Security)란? (0) | 2023.04.17 |
스프링부트 외장서버 구동 (0) | 2022.08.08 |