[ Spring ] 스프링 프레임워크의 특징
2022. 3. 29. 18:01ㆍSpring
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(클라이언트,브라우저,사용자)에 전달 한다. |