스프링 프레임워크란 무엇인가?
- 자바 기반 애플리케이션 개발을 쉽게 하기 위한 경량 프레임워크
- 핵심 철학: 객체 관리 자동화 + 공통 기능 분리 + 웹 요청 처리
스프링의 핵심 기능 3대장
1. IoC & DI
IoC (Inversion of Control) & DI (Dependency Injection)
- IoC 컨테이너가 객체(Bean)를 만들고 관리
- 개발자는 의존성을 직접 생성하지 않고, 주입받기만 함
관련 개념
- ApplicationContext: IoC 컨테이너
- @Component, @Service, @Repository: Bean 등록
- @Autowired, @Inject: 의존성 주입
객체를 컨테이너에 빈으로 등록하면
@Autowired등의 DI 어노테이션 달린곳에 스프링이 주입하고 관리한다 (DI 어노테이션 생략 가능한 곳도 있음)
2. AOP
AOP (Aspect Oriented Programming)
- 공통 관심사(로깅, 트랜잭션, 보안 등)를 핵심 로직과 분리하여 처리
관련 개념
- @Aspect: AOP 클래스 정의
- @Transactional: 트랜잭션 처리
- JoinPoint, Advice: AOP 구성 요소
3. MVC 패턴
MVC 패턴 (Model-View-Controller)
- 웹 요청 처리 구조: 요청 → Controller → Service → Repository → 응답
주요 컴포넌트
- DispatcherServlet: 스프링 MVC의 프론트 컨트롤러
- @Controller, @RestController: 요청 처리
- Model: 데이터 전달
- View: 화면 렌더링 (Thymeleaf, JSP 등)
스프링의 핵심 구성 요소 (Bean 관리)
1. Bean
- 스프링 컨테이너가 관리하는 객체
Bean 등록 방법
- 자동 등록: @Component, @Service, @Repository
- 수동 등록: @Bean + @Configuration
스프링의 동작 흐름
1. 애플리케이션 실행
@SpringBootApplication
↓
ApplicationContext 생성 (IoC 컨테이너)
↓
Bean 등록 & DI 수행
2. 웹 요청 처리
클라이언트 요청
↓
DispatcherServlet → HandlerMapping → Controller
↓
Service → Repository → DB
↓
응답 반환 (View or JSON)
스프링의 부가기능
1. 트랜잭션 관리
- @Transactional로 Service 단에서 트랜잭션 시작/커밋/롤백
2. 예외 처리
- @ControllerAdvice, @ExceptionHandler로 전역 예외 처리
3. 유효성 검증
- @Valid, @Validated 사용 → 파라미터 검증
스프링 부트와의 차이

✅ 결론 (한 줄 요약)
스프링 = IoC/DI로 객체 관리 + AOP로 공통 기능 분리 + MVC로 웹 요청 처리하는 구조화된 프레임워크
'프레임워크 > Spring' 카테고리의 다른 글
REST API (0) | 2025.03.26 |
---|---|
의존, 의존성 주입(DI) (0) | 2025.03.25 |
Controller, Service, Repository 패턴 (0) | 2025.03.18 |
[김영한] 스프링 입문(5) - 회원 관리 예 - MVC 개발 (1) | 2024.08.30 |
[김영한] 스프링 입문(6) - 스프링 DB 접근 기술 (0) | 2024.08.22 |