Spring Framework란?
- Java 기반의 오픈 소스 프레임워크입니다
- 엔터프라이즈급 Java 애플리케이션 개발을 위한 기능들을 제공합니다
<aside>
💡 개발자에게 겨울이 끝나고 봄이 왔다는 뜻에서 스프링이라고 이름을 지었다고 하네요!!
</aside>
Spring의 특징
POJO 프로그래밍을 지향합니다
POJO(Plain Old Java Object)란, 외부의 라이브러리나 외부의 모듈의 도움을 받지 않고 순수 Java만을 통해서 생성한 객체를 의미합니다.
POJO는 왜 중요할까요?
- 객체가 외부 모듈에 직접적으로 의존하면 리팩토링에 어려움이 있습니다. 예를들어, 외부 라이브러리를 import 하여 사용하는 경우, 신기술의 등장으로 관련된 코드를 고치려 하면 해당 기술을 사용하고 있는 모든 객체들의 코드를 전부 바꿔주어야 합니다.
- 순수 Java만을 사용하여 객체를 생성한다면 특정 기술이나 환경에 종속되지 않을 수 있습니다. 유연하게 변화와 확장에 대처할 수 있고, 코드가 단순해져 테스트와 디버깅 또한 쉬워집니다
- Spring은 POJO 프로그래밍을 위해 IoC/DI, AOP, PSA를 지원합니다
DI(Dependency Injection)
- 객체 간의 의존 관계를 런타임 시에 외부에서 주입하는 것을 말합니다
- 객체가 필요로 하는 의존성을 직접 생성하지 않고 외부에서 주입받음으로써 객체 간의 결합도를 낮춥니다