책의 내용을 기반으로 해서 내용을 추가 삭제하여 요약했습니다.

1장 스프링 개요
1.1 스프링이란?
스프링은 세계적인 널리 알려진 오픈 소스 자바 라이브러리로, 웹 애플리케이션과 같은 서버 측 애플리케이션을 자바로 개발 할 때 표준으로 사용 될 만한 정도로 많은 곳에서 사용 중이다.
스프링은 라이브러리 중에서도 프레임워크에 속함.
1.2 스프링의 다양한 프로젝트
스프링에는 다양한 프로젝트가 있는데 그 중에 스프링 프레임워크가 중심이 된다.
스프링 프레임워크
스프링 프레임워크는 자바 플랫폼에서 엔터프라이즈 애플리케이션 개발을 간소화하기 위해 제공되는 오픈소스 애플리케이션 프레임워크입니다.
| 기능 | 설명 |
|---|
| DI 컨테이너 | 객체의 생성과 관리를 통합하여 사용할 수 있게 해줌. |
| 스프링 MVC | HTTP 통신 및 화면 관련 프로그램을 효율적으로 개발할 수 있게 해줌. |
| 스프링 JDBC | 데이터베이스 접근 관련 프로그램을 효율적으로 개발할 수 있게 해줌. |
| 선언적 트랜잭션 | 데이터베이스의 트랜잭션 제어를 자동으로 처리해줌. |
| 테스트 지원 | 테스트 프로그램 작성을 용이하게 도와줌. |
스프링 프레임워크 사용은 필수입니다.
주요 구성 요소 및 특징
- 스프링 클라우드
- 특징:
- 마이크로서비스 아키텍처(MSA)를 지원하는 도구와 라이브러리를 제공.
- 분산 시스템에서 필요한 서비스 등록 및 디스커버리, API 게이트웨이, 로드 밸런싱 등을 지원.
- Netflix OSS와의 통합(Eureka, Hystrix, Zuul 등).
- 구성 관리, 분산 트랜잭션, 서비스 간 통신을 위한 메시지 브로커 지원.
- 사용 예시:
- 스프링 부트
- 특징:
- 스프링 기반 애플리케이션 개발의 복잡성을 줄여주는 스타터 프로젝트.
- 내장 서버(Tomcat, Jetty)를 지원하여 애플리케이션 실행이 간단.
- 설정 파일이 간소화(YAML, properties).
- 프로덕션 준비 상태에서의 기능 제공(모니터링, 헬스 체크 등).
- 코드 작성을 최소화하고 설정 자동화를 지원.
- 사용 예시:
- 빠른 프로토타이핑 및 배포 가능한 독립 실행형 애플리케이션 개발.
- 스프링 시큐리티
- 특징:
- 인증(Authentication)과 권한 부여(Authorization)를 위한 강력한 보안 프레임워크.
- 세션 기반 인증, OAuth2, JWT 등 다양한 인증 방식을 지원.
- URL 기반 권한 제어 및 메서드 레벨의 보안 설정 가능.
- CSRF, CORS와 같은 웹 보안 기능 내장.
- 커스터마이징이 용이한 구조 제공.
- 사용 예시:
- 스프링 배치
- 특징:
- 대량의 데이터 처리를 위한 배치 프로세스 프레임워크.
- 읽기(Read) - 처리(Process) - 쓰기(Write) 단계의 구조화된 배치 처리 지원.
- 재시작, 트랜잭션 관리, 로깅 및 추적, 스케줄링 등을 제공.
- 다양한 데이터 소스 및 대상(JDBC, 파일 등)과 통합 가능.
- 사용 예시:
- 정기적인 데이터 처리 작업(예: 대량 데이터 변환, 보고서 생성).
- 스프링 데이터
- 특징:
- 데이터 접근 계층을 간소화하고, 다양한 데이터 저장소를 지원하는 추상화 프레임워크.
- JPA, MongoDB, Redis, Cassandra 등의 데이터베이스와의 통합을 위한 서브 프로젝트 제공.
- 리포지토리 패턴으로 CRUD 작업 자동화.
- 메서드 이름만으로 쿼리를 생성하는 쿼리 메서드 제공.
- 사용 예시:
- 스프링 인티그레이션
- 특징:
- 애플리케이션 간의 메시지 기반 통합을 지원하는 프레임워크.
- 메시지 큐, HTTP 요청, 파일 처리와 같은 다양한 데이터 통신 채널 제공.
- Enterprise Integration Patterns(EIP)를 기반으로 설계.
- 비동기 메시징과 이벤트 기반 아키텍처를 구현.
- 사용 예시:
- 시스템 간 데이터 교환 및 통합 작업(예: ERP와 CRM 통합).
1.3 스프링이 인기 있는 이유
- 다른 프레임워크와 결합 가능
스프링으로 전체적인 부분을 구축할 수 있으나, 부분적으로 다른 프레임워크를 사용가능
- 확장성이 뛰어남
- 하위호환성을 중요하게 여김
- 새로운 기술에 적극적으로 대응