겉바속촉

[spring] Spring Framework 기본개념 본문

IT일기(하반기)/SPRING

[spring] Spring Framework 기본개념

겉바속촉 2020. 6. 24. 17:17
728x90
반응형

이번에는 SPRING을 들어가기 전

SPRING Framework는 도대체 무엇인지 기본부터 알아보도록 할게요 !^^!

 

 

 

1. POJO(Plain Old Java Object)

: 다른 클래스를 상속받아서 만들어야 하는 클래스가 아닌 순수한 형태의 자바 클래스

 

 

 

2. Ioc(Inversion of Control)

: 제어의 역전이란 뜻,

 개발자가 직접 객체를 언제 생성하고 없앨지 결정하는 것이 아니라 컨테이너에게 맡긴다는 뜻

 POJO 객체 생성에서 생명주기의 관리까지를 IoC Container에게 담당시킴으로써

 개발의 편의성과 재사용성의 극대화를 추구하는 개념 

 

 

 

3. AOP(Aspect Oriented Programming)

: 관점 지향 프로그래밍이라는 뜻,

  기존의 객체 지향 언어에 의해 추구된 모듈화에 따라 많아진 중복된 코드나,

  공통된 처리에 관련한 것들을 관점으로 뽑아내어 공통으로 처리하는 방식

 


 

기본 Architecture는 다음과 같습니다.

 

 

 

 

그럼 위에서 잠깐 살펴봤던 IoC에 대해서 더 자세히 알아볼게요:)

 

Bean이라는 것이 등장하게 됩니다

 

Spring에서는 BeanFactory가 기본 IoC컨테이너입니다

보다 향상된 형태로 ApplicationContext라는 컨테이너를 지원하죠

 

 

IoC 컨테이너에 의해서 Bean의 생명주기가 관리되기도 합니다

이렇게 관리가 된 Bean은 POJO 타입이고 싱글톤입니다

 

 

XML 설정을 통해서 각각의 Bean들을 묶어주고, 이를 wiring이라고 합니다

묶인 Bean을 원하는 곳에 적용하는 것이 바로 DI (의존성 주입) 라고 부르는 것이죠

 

 

 

1. Bean XML 설정

 

- scope 설정 : IoC container에 의해 관리되는 Bean의 기본 범위 ---> singleton (scope속성으로 다르게 지정 가능)

singleton 기본값, IoC Container 내에서 유일한 객체로 생성하는 범위
prototype 호출때마다 객체가 따로 생성되는 방식
request 요청시마다 생성
session 세션마다 하나씩 생성

 

2. DI(Dependency Injection)

 

- 의존성 주입이란 뜻으로 객체를 생성해서 필요로하는 곳에 넣어주는 것을 의미

 

Constructor Injection(생성자 주입) 생성자에 필요 객체를 선언하고 멤버 변수(Field)로써 객체를 사용하는 것
객체 생성시 자동으로 IoC 컨테이너가 관련 객체를 주입시켜준다
Setter Intection(세터 메소드 이용 주입) 생성자 주입과 방식은 비슷하나 setter 메소드를 이용하는 것이 차이점

 

 

728x90
반응형