개발인생/Backend

[Spring] 핵심 기술 총정리

forri 2025. 2. 25. 19:14

 

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 → 실시간 통신