Spring Boot
- [Spring Boot] Thymeleaf
- [Spring Boot] JSP
- [Spring Boot] Spring JDBC와 HSQLDB
- [Spring Boot] MyBatis와 HSQLDB
- [Spring Boot] JPA와 HSQLDB
- [Spring Boot] REST API 개발 (MyBatis,HSQLDB)
- [Spring Boot] REST API 호출 (RestTemplate)
- [Spring Boot] REST API 호출 (WebClient)
- [Spring Boot] 한국투자증권 오픈API 호출
- [Spring Boot] Spring Batch (File)
- [Spring Batch] pool-size와 throttle-limit의 관계
Spring, Spring Boot, 그리고 Spring Batch는 Java 기반의 애플리케이션 개발을 위한 강력한 프레임워크입니다. 각 프레임워크의 주요 개념과 특징을 아래에 정리하였습니다.
◎ Spring Framework
1. 개요
- Spring Framework는 Java 엔터프라이즈 애플리케이션을 개발하기 위한 경량화된 오픈 소스 프레임워크입니다.
- 주요 목표는 개발자가 느슨하게 결합된 애플리케이션을 쉽게 개발할 수 있도록 하는 것입니다.
2. 주요 특징
- DI (Dependency Injection): 객체 간의 의존성을 외부에서 주입하여 객체 간 결합도를 낮춤.
- AOP (Aspect-Oriented Programming): 횡단 관심사를 모듈화하여 코드 중복을 줄임.
- POJO (Plain Old Java Object): 비침투적 개발을 통해 순수한 Java 객체로 개발 가능.
- IoC (Inversion of Control): 객체의 생성과 관리를 개발자가 아닌 Spring Container가 처리.
3. 주요 모듈
- Spring Core: DI 및 IoC 컨테이너 제공.
- Spring AOP: 애플리케이션의 AOP 기능 제공.
- Spring MVC: 웹 애플리케이션 개발을 위한 MVC 패턴 지원.
- Spring Security: 인증 및 권한 관리.
- Spring Data: 데이터베이스 접근을 위한 통합 API 제공.
◎ Spring Boot
1. 개요
- Spring Boot는 Spring Framework를 쉽게 사용할 수 있도록 돕는 프레임워크입니다.
- "Convention over Configuration" (관례를 따른 설정) 원칙을 따릅니다.
- 내장 서버(Tomcat, Jetty 등)를 통해 실행 가능한 JAR 파일을 생성할 수 있습니다.
2. 주요 특징
- 자동 설정 (Auto Configuration): 대부분의 설정이 자동으로 처리됨.
- 스타터 종속성 (Starters): 프로젝트에서 필요한 의존성을 손쉽게 추가할 수 있음. (예: spring-boot-starter-web)
- 내장 서버: Tomcat, Jetty, Undertow 등 내장된 웹 서버로 독립 실행 가능.
- Production-ready Features: Actuator를 통해 모니터링, 헬스 체크, 메트릭스 제공.
- Spring Initializr: 웹 기반 프로젝트 생성 도구.
◎ Spring Batch
1. 개요
- Spring Batch는 대량 데이터 처리 (ETL - Extract, Transform, Load) 및 배치 작업을 위한 프레임워크입니다.
- 주로 정기적으로 실행되는 데이터 처리 작업(예: 일일 보고서 생성, 데이터 마이그레이션 등)에 사용됩니다.
2. 주요 특징
- Job/Step 구조:
- Job: 배치 작업의 전체 실행 단위.
- Step: Job 내부에서 개별적으로 실행되는 단계.
- Chunk-Oriented Processing: 데이터를 청크 단위로 읽고 처리 후 쓰기.
- Retry/Skip 기능: 에러 발생 시 자동 재시도 또는 건너뛰기 가능.
- 다양한 데이터 소스 지원: JDBC, JPA, 파일, API 등.
3. 실행 구조
- JobLauncher: Job 실행을 담당.
- JobRepository: Job 상태 및 메타데이터 저장.
- ItemReader/ItemProcessor/ItemWriter: 각 청크의 데이터 처리 로직 구성.
◎ Spring, Spring Boot, Spring Batch 비교
특징 | Spring | Spring Boot | Spring Batch |
---|---|---|---|
목적 | DI, AOP, 웹 애플리케이션 개발 | Spring 설정 및 실행 간소화 | 대용량 데이터 처리 (배치 작업) |
설정 | XML, Java Config | Auto Configuration | Java Config |
서버 | 외부 서버 (Tomcat 등) | 내장 서버 (Tomcat 등) | 독립적으로 실행 가능 |
의존성 | 수동 추가 | Starter 의존성 사용 | Batch 관련 의존성 (spring-batch) |
주 사용 사례 | 웹 애플리케이션, API | 마이크로서비스, REST API | 데이터 마이그레이션, 정기 작업 |