IoC (Inversion of Control)
Spring 에서는 일반적은 Java 객체를 new로 생성하여 개발자가 관리하는것이 아닌 Sprign Container에 모두 맡김
개발자 -> 프레임워크 (제어의 객체관리의 권한이 넘어갔음 - 제어의 역전)
DI (Dependency Injection)
장점
- 의존성으로 부터 격리시켜 코드테스트 용이
- 불가능한 상황을 Mock같은 기술을 사용하여 안정적으로 테스트 가능
- 코드를 확장하거나 변경할때 영향 최소화 (추상화)
- 순환 참조 막을 수 있음.
AOP (Aspect Oriented Programming)
- 관점지향 프로그램
- 스프링 어플리케이션은 대부분 MVC 웹 어플리케이션에서
- Web Layer : REST API 제공, Client 중심 로직 적용
- Business Layer : 내부 정책에 따른 logic 개발
- Data Layer : 데이터베이스 및 외부와 연동 처리