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