프레임워크는 하나의 application을 구축할 때, 모든 application의 공통적인 개발 환경을 제공해주는 것. 개발에 필요한 DB연동,화면구현 등 개발환경들에 공통적인 부분을 제공함으로써 개발 시간과 리소스 비용을 절감해 생산성을 높여주는것
소스코드가 공개되어 내부를 뜯어 고칠 수 있다.
IoC : Inversion of Control
주도권이 spring에 있다.
Object의 instance를 직접 생성하여 heap 메모리공간에 올리게 되면 해당 instance reference는 object를 생성한 method 내에서 관리된다. 그렇다면 object를 생성하지 않은 다른 method내에서 위 언급한 instance에 접근하는것은 불가능하다. 여기서!! IoC의 기능의 필요성이 나온다.
Spring은 class로 만든 Object를 spring이 다 scan 하여 heap 공간에 저장한다. 즉 주도권이 object를 생성한 method -> Spring으로 바뀌어 좀 더 유연한 object 사용이 가능하다.
DI : Dependency Injection (의존성 주입)
위에 설명한 IoC를 통해 생성된 Object를 Spring이 관리할 수 있다.
그래서 heap에 저장된 object를 각기 다른 class의 method내에서 사용하고 싶을때 heap에 저장된 하나의 object를 서로 공유할 수 있게 되는 것을 의미한다.