SPRING을 공부하기전에 개념적인 부분을 먼저 잡고 넘어가자.
자바라는 제품은 OOP라는 객체 지향 프로그래밍의 개념을 다룬 것이다.
SPRING 프레임워크라는 제품은 OOP 프레임워크라는 개념을 다룬 것이라고 생각하고 진행하겠다.
스프링 프레임워크에는 끈이론의 끈 처럼 근원저인 요소가 있는데
IoC/DI
AOP
PSA
이디.
IoC(Inversion of Control)란 "제어의 역전" 이라는 의미로, 말 그대로 메소드나 객체의 호출작업을 개발자가 결정하는 것이 아니라, 외부에서 결정되는 것을 의미한다.
DI(Dependency Injection)란 스프링이 다른 프레임워크와 차별화되어 제공하는 의존 관계 주입 기능으로,
객체를 직접 생성하는 게 아니라 외부에서 생성한 후 주입 시켜주는 방식이다.
AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 관점 지향은 쉽게 말해 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하겠다는 것이다. 여기서 모듈화란 어떤 공통된 로직이나 기능을 하나의 단위로 묶는 것을 말한다.
PSA란 Portable Service Abstraction 의 약자로 환경의 변화와 관계없이 일관된 방식의 기술로의 접근 환경을 제공하려는 추상화 구조를 말한다.
이러한 3요소를 스프링 삼각형이라 칭한다.
이 스프링 삼각형은 POJO ( Plain Old Java Object)에 세가지 유형의 영향을 주어 거대한 프레임워크를 완성해냈다.
SPING 프레임워크 사용에 앞서 OOP프레임워크의 개념을 이해하려면, 객체지향의 4대 특성을 이해할 필요가 있다한다. 이 특성을 이해하고, 이 특성이 객체 지향 언어에 어떻게 반영되었는지 살펴보고 관찰하는 과정을 해나갈 것이다.
'스프링' 카테고리의 다른 글
SPRING(6) - 객체 지향의 4대특성 2 (0) | 2021.07.28 |
---|---|
SPRING(5) - 객체지향의 4대특성 1 (0) | 2021.07.28 |
SPRING(4) - 멀티스레드, 멀티프로세스 (0) | 2021.07.28 |
SPRING(3) - 변수의 메모리상 위치 (0) | 2021.07.27 |
SPRING(2) - 메모리영역의 구분 (0) | 2021.07.27 |