스프링의목적
- 자바개발의 간소화
(1) POJO를 이용한 가볍고(lightweight) 비 침투적(non-invasive) 개발
(2) DI와 인터페이스 지향(interface orientation)을 통한 느슨한 결합도(loose coupling)
(3) 애스펙트와 공통 규약을 통한 선언적(declarative) 프로그래밍
(4) 애스팩트와 탬플릿(template)을 통한 반복적인 코드 제거
- 스프링은 API를 이용하여 애플리케이션 코드의 분산을 가능한 한 막는다.
- 스프링에 특화된 인터페이스 구현이나 스프링 자체에 의존성이 높은 클래스 확장을 거의 요구하지 않는다.(최악의 경우 Annotation이 붙음)
DI(Dependency Injection) : 의존성 주입
- 구성요소간 의존관계가 소스코드 내부가 아닌 외부의 설정파일 등을 통해 정의하게 되는 디자인 패턴으로 DI를 이용하면 객체는 시스템에서 각 객체르 조율하는 제 3자에 의해 생성 시점에 종속객체(dependency)가 부여된다.
(객체 간의 의존관계를 객체-객체 가 아닌 외부에서 객체를 생성하고 전달해 줌으로 써 객체간의 의존성 제거 및 결합도를 낮추는 것)
이점
- 의존 관계 설정이 컴파일시가 아닌 실행시 이루어져 모듈간의 결합도를 낮출 수 있다.
- 코드의 재사용률을 높여서 작성된 모듈을 여러 곳에서 소스코드 수정없이 사용
결합도
- 결합도가 높으면 테스트와 재활용이 어렵고 이해하기 어렵고, 오류가 발생하면 다른 오류가 발생하는 경향이 있다.
- 결합도가 낮으면 테스트와 재활용성 이 용이하고, 이해하기 쉬우며 오류가 발생해도 수정이 간결하다.
'Spring' 카테고리의 다른 글
AOP(Aspect Oriented Programming) (0) | 2023.03.31 |
---|---|
[Spring Framework] IOC/DI (0) | 2023.03.29 |
[스프링] 자동으로 빈 와이어링하기(Bean Auto Wiring) (0) | 2018.11.19 |
FactoryBean을 사용해야하는 경우와 사용예제(link) (0) | 2016.05.26 |
1. Spring프로젝트 생성 후 초기작업 mybatis+mysql 셋팅 (0) | 2015.12.05 |