드디어 스프링을 시작한다!!
Framework?
기본적으로 프로그래밍을 하기 위한 어떠한 틀이나 구조를 제공
규칙 1
Java나 Java의 스펙(사양)에 정의된 것 이외에는 다른 기술이나 규약에 얽매이지 않아야 한다
규칙 2
특정환경에 종속적이지 않아야 한다
POJO 프로그래밍 코드를 작성하기 위해
Spring에서는 세가지 기술을 지원
-> IoC/DI, AOP, PSA
IoC?
애플리케이션 흐름의 주도권을 Spring이 갖는 것cf) 라이브러리: 애플리케이션 흐름의 주도권이 개발자에게 있음
의존성 주입?
생성자를 통해서 어떤 클래스의 객체를 전달 받는 것
AOP?
애플리케이션의 핵심 업무 로직에서 로깅이나 보안, 트랜잭션 같은 공통 기능 로직들을 분리하는 것
추상화?
어떤 클래스의 본질적인 특성만을 추출해서 ‘일반화’ 하는것
PSA
서비스의 기능을 접근하는 방식 자체를 일관되게 유지하면서 기술 자체를 유연하게 사용할 수 있도록 하는 것