본문 바로가기
Spring

자바 스프링 프레임 워크의 기본 정의

by 코뿔송 2017. 10. 25.

자바 스프링 프레임 워크의 기본 정의

 

 

 

 

자바 스프링 프레임워크는 자바를 기반으로 다양한 어플리케이션을 제작하기 위한 프로그래밍 틀이다.

 

스프링은 톰켓을 이용할 수 있다는 장점을 가지고 있다. 

 

국내 자바 개발자들에게 표준 프레임워크의 자리를 잡고 있으며,

 

스프링의 기능은 생각하는 것보다 훨신 많기 때문에

 

자신의 프로젝트에 적당한 기능들을 탐색하여 스프링이 제공해주는 기능을 사용하면 된다.

 

 

Spring은 DI와 IOC 테이너라는 녀석으로 이루어져 있다.

 

DI의 D는 Dependecy(의존성)이다.

 

어떤 객체가 어떤 일을 하려고 할 때 다른 객체의 도움을 받아 어플리케이션을 구동하는 상태를 A객체가 B객체에게 의존한다 라고 한다.

 

다른 객체를 이용하는 방법은 2가지 방법이 있는데

 

1. 첫번째 방법은 자신의 객체에서 생성하려고 하는 기능을 가지고 있는 객체를 직접 생성자를 통해 접근하는 방법이다.

 

2.두번째 방법은 자신의 객체에서 직접 생성자를 호출하지 않고 필요한 객체를 받을 필드를 미리 생성하여 인자 값으로 넘겨 받는 방법이다

 

두번째 방식은 setter()와 construct()의 값으로 전달을 받는다.

 

 

 

 

위 그림은 A객체에서 B객체와 C객체의 기능을 사용하기를 원하고 있는 상태이며,

 

A객체는 별도의 B객체와 C객체를 받을 필드를 생성하고 setter()를 통해 값을 전달 받을 수 있다.

 

Spring은 절대적으로 옳다고 할 수는 없지만 개발론 측면에서 더 나은 방법이라 생각하여 2번째 방법을 채택하고

 

다.

 

이렇게 어떤 객체로 외부 객체의 값을 넣어 주는 것을 주입이라고 한다.

 

DI(Dependecy Injection)는 외부의 객체를 만들어서 내부로 주입하는 것이다.

 

A객체 안에서 B객체의 기능을 사용하기를 원한다면

 

B b; 라는 별도의 B형식의 필드를 생성해 놓고 setter() b()를 가지고 있는다. 

 

그렇게 되면 외부의 B라는 클래스가 외부에서 생성되고 setter를 통해 b객체를 생성하고 세팅 해주어 B b = b;

 

성립하게 된다.

 

또, construct() A객체의 생성자가 실행이 될 때 B객체를 인자값을 전달 받아 b필드의 값을 정의 내릴 수 있다.

 

 

 

 

나머지 D,E,F는 모듈이다.

 

스프링 안에 들어있는 선택할 수 있는 부품들이라고 생각을 하면 될 것 같다.

 

이 여러 가지 모듈들은 어떤 객체에서 사용이 되기 위해서 표준 인터페이스를 따라 사용하여 한다.

 

이 모듈들을 가지고 있는 것을 IOC컨테이너라고 한다.

 

 

 

 

Spring이란 부품을 생성하고 조립하는 라이브러리의 집합체라고 생각하면 된다.

 

 

 

 

 

 

댓글