기존에 스프링 대신 사용하던 기술들과 비교하여, 스프링을 사용했을 때 개발자가 작성해야 할 코드가 비교적 단순함
스프링을 사용함으로써 기존 기술을 사용할 때에 불가피하게 작성해야만 했던 불필요하게 복잡한 코드를 제거하여 코드의 복잡성을 낮출 수 있음
프레임워크란? 어떠한 목적을 쉽게 달성할 수 있도록 해당 목적과 관련된 코드의 뼈대를 미리 만들어둠을 의미
애플리케이션 프레임워크란? 애플리케이션을 개발하는 데에 있어 필요한 모든 업부 분야 및 모든 기술과 관련된 코드의 뼈대 제공
POJO(Plain Old Java Object) : 순수 java만을 통해 생성한 객체
순수 java만 사용한다는 것은 java 및 java의 스펙에 정의된 기술만 사용
POJO는 순수 Java만을 사용하여 만든 객체이므로 특정 기술이나 환경에 종속되지 않음. 따라서 외부 기술이나 규약의 변화에 얽매이지않아, 보다 유연하게 변화와 확장에 대처 가능
객체지향 설계를 제한없이 적용할 수 있으며, 코드가 단순해져 테스트와 디버깅이 쉬워짐
POJO가 지원하는 기술
- IoC / DI(Inversion of Control / Dependency Injection, 제어의 역전/ 의존성 주입)
DI : 의존성을 외부에서 지정해주는 것
IoC : 프로그래머가 작성한 프로그램이 프레임워크의 제어를 받게 되는 소프트웨어 디자인 패턴- AOP(Aspect Oriented Programming, 관심 지향 프로그래밍)
- PSA(Portable Service Abstraction, 일관된 서비스 추상화)