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