
Spring의 기본 기술과 개념
1. Spring Core (스프링 코어)
- IoC (Inversion of Control, 제어의 역전)
- 객체의 생성과 관리(라이프사이클)를 스프링 컨테이너가 담당하는 개념
- DI (Dependency Injection, 의존성 주입)
- 객체 간의 의존성을 스프링이 관리하여, 필요할 때 객체를 자동으로 주입해줌
- @Autowired, @Component, @Service, @Repository 등의 어노테이션 활용
2. Spring AOP (Aspect-Oriented Programming, 관점 지향 프로그래밍)
- 공통 기능(로깅, 보안, 트랜잭션 관리 등)을 모듈화하여 중복을 줄이고 코드의 유지보수를 쉽게 해줌
- @Aspect, @Before, @After, @Around 등의 어노테이션 활용
Spring Boot (스프링 부트)
스프링을 더 쉽게 사용하도록 도와주는 프레임워크
3. Spring Boot 특징
- 자동 설정 (@SpringBootApplication)
- 내장 WAS 지원 (Tomcat)
- 의존성 관리 (spring-boot-starter-*)
- 설정 최소화 (application.properties 또는 application.yml)
- Spring Boot Actuator (모니터링 및 관리)
4. Spring Boot 주요 기능
- Spring MVC (웹 개발)
- @RestController, @RequestMapping, @GetMapping, @PostMapping 활용
- Spring Data JPA (데이터베이스 연동)
- @Entity, @Repository, JpaRepository<T, ID> 사용
- Spring Security (보안)
- 인증/인가 처리 (UsernamePasswordAuthenticationFilter, OAuth2, JWT)
- Spring Batch (대량 데이터 처리)
- Spring Scheduler (스케줄링, @Scheduled)
Spring 웹 개발
5. Spring MVC (Model-View-Controller)
- 클라이언트 요청을 컨트롤러에서 받고, 서비스를 통해 비즈니스 로직을 처리 후, 응답을 반환하는 패턴
- @Controller, @RestController, @RequestMapping, @GetMapping, @PostMapping 사용
6. Spring WebFlux (비동기 처리)
- WebFlux는 비동기 논블로킹 방식으로 동작하는 스프링 웹 프레임워크
- Mono, Flux 등의 리액티브 스트림 API 사용
Spring 데이터 관리
7. Spring Data JPA
- ORM (Object-Relational Mapping) 방식으로 DB와 객체 간 매핑
- @Entity, @Id, @GeneratedValue, @Column 등의 어노테이션 사용
8. Spring JDBC
- JDBC (Java Database Connectivity) 기반으로 DB 연결
9. Spring Redis
- 캐시 기능을 위한 Redis 지원
10. Spring Kafka
- 메시지 큐 시스템과 연동하여 대용량 데이터를 비동기 처리
Spring 보안 및 인증
11. Spring Security
- @EnableWebSecurity와 SecurityFilterChain으로 보안 설정 가능
- JWT, OAuth2 인증 지원
12. Spring Cloud Security
- 마이크로서비스 환경에서 OAuth2, JWT 기반 인증 지원
Spring Cloud (마이크로서비스)
13. Spring Cloud 주요 기술
- Spring Cloud Config: 분산 환경에서 설정 관리
- Spring Cloud Eureka: 서비스 디스커버리
- Spring Cloud Gateway: API Gateway 역할
- Spring Cloud Circuit Breaker (Resilience4j): 장애 감지 및 복구
Spring Batch (배치 처리)
14. Spring Batch
- 대량 데이터 처리 및 자동화
- @EnableBatchProcessing, Job, Step 등의 개념 활용
Spring 실시간 기능
15. Spring WebSocket
- 실시간 양방향 통신 지원
- @ServerEndpoint, @OnMessage, @OnOpen 사용
📍핵심 요약
- Spring Core → IoC, DI, AOP
- Spring Boot → 자동 설정, 내장 WAS, Actuator
- Spring MVC → 웹 개발
- Spring WebFlux → 비동기 처리
- Spring Data JPA → ORM 기반 DB 연동
- Spring Security → 인증 및 보안
- Spring Cloud → 마이크로서비스 지원
- Spring Batch → 대량 데이터 처리
- Spring WebSocket → 실시간 통신
'개발인생 > Backend' 카테고리의 다른 글
| [Spring] Spring Boot 개발자를 위한 필수 디자인 패턴 6가지 (0) | 2025.02.25 |
|---|---|
| [Spring] MVC 구조 설명 | Controller, Service, Repository로 역할 분리하기 (0) | 2025.02.25 |
| [ORM] JPA 성능 최적화: N+1 문제 해결하는 3가지 방법 (0) | 2025.02.22 |
| [ORM] JPQL vs QueryDSL: 무엇이 더 나을까? (2) | 2025.02.21 |
| [JSP] Tomcat은 JSP와 Servlet 실행에 왜 필요할까? (1) | 2025.02.17 |