본문 바로가기
스프링

SPRING (1) - SPRING의 기본 개념

by 고유빙글 2021. 7. 27.

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대 특성을 이해할 필요가 있다한다. 이 특성을 이해하고, 이 특성이 객체 지향 언어에 어떻게 반영되었는지 살펴보고 관찰하는 과정을 해나갈 것이다.