"Spring"에는 "Container"가 있다. 컨테이너는 스프링의 핵심.

스프링 컨테이너는 객체를 담는 용기

빈(= Spring IoC 컨테이너가 관리하는 자바객체)의 생성부터 소멸까지 모든 생명주기 관리

컨테이너가 빈을 관리해주기 때문에 '제어의 역전'

컨트롤의 제어권이 개발자에 있는 것이 아니라 프레임워크에

컨트롤러가 개발자를 대신하여 메서드가 호출되고 전달해주는 run을 한다 

 

스프링 3대 요소 : IoC, AOP , PSA

 

- POJO : Plain Old Java Object 말 그대로 해석을 하면 오래된 방식의 간단한 자바 오브젝트

(객체지향적인 원리에 충실 / 환경과 기술에 종속되지 않고, 필요에 따라 재활용 가능한, 일반적인 자바 오브젝트)

POJO라는 용어는 이후에 주로 특정 자바 모델이나 기능, 프레임워크 등을 따르지 않은 자바 오브젝트를 지칭하는 말로 사용되었다. 스프링 프레임워크는 POJO 방식의 프레임워크이다.

 

- DI : Dependency Injection (의존성을 주입, 스프링의 차별성)

IoC컨테이너에서 빈 객채를 생성하는 방식. 

의존적인 객체를 직접 생성, 제어하는 것이 아니라, 외부에서 객체를 가져다가 주입한다.

외부에서 가져오기 때문에 new 연산자를 사용하지 않는다.

Spring Container에서 각 객체를 생성할 때는 단 한번만 생성하는 Singleton을 실행한다

 

- IoC :  Inversion of Control (제어권이 역전)

프레임워크(IoC개념이 적용된 대표 기술)가 라이프사이클을 관리

IoC 컨테이너가 객체생성, 초기화, 서비스 소멸에 관한 모든 권한을 가지면서 객체의 생명주기 관리

 

라이브러리를 사용하는 애플리케이션 코드는

애플리케이션 흐름을 직접 제어하고 라이브러리는 동작 중에 필요한 기능이 있을때 가져다 쓰는 개념이다.
반면, 프레임워크는 애플리케이션 코드가 프레임워크에 의해 사용되는 것으로

프레임워크가 흐름을 주도하면서 개발자가 애플리케이션을 사용하도록 한다.( = 제어의 역전 IoC 개념이 적용되어있다.)

 

- AOP : Aspect Oriented Programming (관점 지향 프로그래밍 = 관심사 중심 프로그래밍)

공통적으로 반복되는 작업들을 모아두었다가 필요할 때 재사용하는 것

인터페이스를 사용하고 implements로 구현

프록시 객체를 생성하는 디자인 패턴(프록시 패턴)

 

- PSA : Portable Service Abstraction (추상화 서비스)

ex) Spring Web MVC, Spring Transaction, Spring Cache

Service Abstraction으로 제공되는 기술을 다른 기술 스택으로 간편하게 바꿀 수 있는 확장성을 갖는 것

기존 코드를 거의 변경하지 않아도 사용 기술을 간단하게 바꿀 수 있다

 

스프링은 MVC라는 추상화 기법을 사용

 

(Service Abstraction

: 스프링은 서블릿을 사용하는 프로그램인데 서블릿을 사용하지 않는다

그 대신 getMapping 이나 postMapping 등 추상화 계층을 사용해 어떤 기술을 내부에 숨기고 개발자에게 편의를 제공하는 것)

 

* 여기저기서 내용 가져옴

'개발자 > JspSpring' 카테고리의 다른 글

20220126 spring boot/Mybatis/JPA/하이버네이트/VUE  (0) 2022.01.26
20220126 스프링 환경설정  (0) 2022.01.26
20220125 spring  (0) 2022.01.25
20220119 쿠키  (0) 2022.01.19
20220117 시큐리티  (0) 2022.01.17

+ Recent posts