[ Spring ] 스프링 프레임워크의 특징

2022. 3. 29. 18:01Spring

 

1. 프레임워크를 왜 사용해야할까?


- 관리가 용이함

- 개발시간 단축

- 개발자들의 역량이 획일화 됨

- 재사용성 증가

 

 

2. 스프링 프레임워크의 특징 

 


관점 지향 프로그래밍

AOP (Aspect Oriented Programming) 


어떤 로직을 핵심적인 관점과 부가적인 관점으로 나누어서 보고 각각 모듈화하여 사용하는 개념.

여기서 핵심기능은 비즈니스 로직이 되는 핵심적인 처리를 말하는 것이고, 부가기능은 보안이나 로깅 등을 의미한다. 

 

 

 

- 관점지향 프로그래밍은 로직들을 전부 분리해서 저장할수있게 해주기 때문에, 응집도가 높아진다. 
- 낮은 결합도와 높은 응집도를 갖는, 유지보수에 용이한 코드다.

 

 

[ Inversion Of Control, IOC ]

 


- 프레임워크가 객체와 코드의 실행을 제어한다.

- 객체의 라이프사이클을 컨테이너가 관리한다.

- 개발자는 비지니스 로직 집중할 수 있다.

- 객체 생성 코드가 없으므로 TDD 용이

 

 

- 의존성 검색 

 


Dependency Lookup, DL


저장소 ( 컨테이너 )의 저장되어 있는 Bean( 객체 )에 접근하기 위해,
컨테이너가 제공하는 API를 이용하여 Bean을 Lookup하는 것이다.

 

 

- 의존성 주입 

 


Dependency Injection, DI


각 클래스간의 의존 관계를 빈ean( 객체 ) 설정 정보를 바탕으로 컨체이너가 자동으로 연결해준다.

객체는 또 다른 객체를 사용하기 때문에 의존관계를 지니고,
A라는 객체가 B를 사용하려면 B가 A에게 주입되어야하는데 참조를 자동적으로 시켜주는 것을 의미한다.

 

-DL 사용시 종속성이 증가하여 주로 DI사용한다.

 

 

 

3. Spring의 구동 순서

 


 1) @, .xml 등의 설정파일을 로드한다.
 2) 브라우저에서 URL로 요청한다.
 3) .do요청이네? -> ts 객체 없으면 생성 | 이미생성된 객체 재사용(싱글톤 패턴) -> doGet()메서드 호출
=> 객체 생성 및 관리를 컨테이너에게 일임했기때문에
 코드는 줄어들고,설정은 늘어난다! : 제어의 역행,IoC
 4) 호출 후 실행결과를 V(클라이언트,브라우저,사용자)에 전달 한다.