Spring Framework는 Java 기반 Application 개발을 단순화 시킨 오픈 소스 경량 Framework이다. 전통적인 엔터프라이즈 자바(EJB) 방식보다 훨씬 가볍고 유연하게 Appication을 개발할 수 있도록 지원하고(경량 및 모듈화), 복잡한 설정을 최소화하고 다양한 기능을 모듈 단위로 제공하여 개발자가 필요한 기능만 선택해 사용할 수 있도록 지원한다(개발 생산성 향상).
2. 핵심 개념
Dependecy Injection (DI) / Inversion of Control (IoC):
정의: 객체 간의 의존성을 외부에서 주입 받아 관리하는 방식
장점:
코드 결합도가 낮아져 유지보수와 테스트가 쉬워진다.
모듈 간 독립성이 강화되어 확장성이 좋다.
Aspect-Oriented Programming (AOP):
정의: 로깅, 보안, 트랜잭션 관리 등 공통 관심사를 모듈화하여 핵심 비즈니스 로직과 분리하는 프로그래밍 기법