SpringBoot/시작하기 전에
스프링 프레임워크 개요
DEVLIB
2025. 4. 14. 10:02
728x90
스프링 프레임워크 개요
스프링 프레임워크란?
스프링 프레임워크는 자바 엔터프라이즈 개발을 단순화하기 위해 만들어진 오픈 소스 경량 프레임워크입니다. 웹 애플리케이션은 물론 데스크톱, 배치, 모바일 백엔드 등 다양한 환경에서 유연하게 활용할 수 있습니다.
처음 등장: 2003년, Rod Johnson에 의해 설계됨
목적: 무겁고 복잡했던 Java EE(EJB 등)의 대안 제공
핵심 철학: POJO & IoC
- POJO (Plain Old Java Object)
특별한 규약이나 상속 없이 순수한 자바 객체로 비즈니스 로직 작성 가능
→ 유지보수와 테스트 용이성 증가 - IoC (Inversion of Control)
객체 생성과 의존성 관리를 스프링 컨테이너가 대신해주는 방식
→ 개발자는 비즈니스 로직에만 집중 가능
→ 대표 구현: DI(Dependency Injection, 의존성 주입)
주요 구성 요소 (모듈)
모듈 | 설명 |
Core Container | IoC/DI를 위한 BeanFactory, ApplicationContext |
AOP | 횡단 관심사 처리 (ex: 로깅, 트랜잭션) |
Data Access | JDBC, ORM 연동을 단순화 (ex: JPA, Hibernate) |
Web MVC | DispatcherServlet 기반 웹 프레임워크 |
Security | 인증 및 권한 처리 (Spring Security) |
Test | 단위 테스트, 통합 테스트 지원 |
스프링의 특징
- 경량성: 필요한 모듈만 선택해서 사용 가능
- **의존성 주입(DI)**과 **제어의 역전(IoC)**을 통한 유연한 구조
- AOP 지원: 관심사 분리를 통한 코드 간결화
- 보안 내장: Spring Security로 인증/인가 구현 가능
- 웹 앱 지원: MVC 아키텍처와 REST API 개발에 강력
- 테스트 용이성: DI와 Mock 객체를 활용한 손쉬운 단위 테스트
- 클라우드/배포 친화적: Spring Boot, Spring Cloud와의 궁합
스프링 vs 스프링 부트 차이
항목 | 스프링 프레임워크 | 스프링 부트 |
설정 방식 | XML/자바 설정 필요 | 기본 설정 자동 제공 |
실행 구조 | WAR 배포 기반 | 내장 톰캣으로 JAR 실행 |
시작 난이도 | 비교적 높음 | 매우 쉬움 (초기 설정 최소화) |
의존성 관리 | 수동 | 자동 스타터 제공 |
정리
스프링 프레임워크는 유연성, 확장성, 테스트 용이성을 갖춘 강력한 자바 기반 프레임워크입니다.
단, 설정이 복잡할 수 있어 스프링 부트를 통해 더 쉽게 접근하는 것이 현재 주류입니다.
LIST