거꾸로 바라본 세상
Published 2018. 11. 16. 16:45
스프링 목적과 DI 정의 Spring
반응형

스프링의목적


- 자바개발의 간소화

(1) POJO를 이용한 가볍고(lightweight) 비 침투적(non-invasive) 개발

(2) DI와 인터페이스 지향(interface orientation)을 통한 느슨한 결합도(loose coupling)

(3) 애스펙트와 공통 규약을 통한 선언적(declarative) 프로그래밍

(4) 애스팩트와 탬플릿(template)을 통한 반복적인 코드 제거 


- 스프링은 API를 이용하여 애플리케이션 코드의 분산을 가능한 한 막는다.

- 스프링에 특화된 인터페이스 구현이나 스프링 자체에 의존성이 높은 클래스 확장을 거의 요구하지 않는다.(최악의 경우 Annotation이 붙음)



DI(Dependency Injection) : 의존성 주입

- 구성요소간 의존관계가 소스코드 내부가 아닌 외부의 설정파일 등을 통해 정의하게 되는 디자인 패턴으로 DI를 이용하면 객체는 시스템에서 각 객체르 조율하는 제 3자에 의해 생성 시점에 종속객체(dependency)가 부여된다.

(객체 간의 의존관계를 객체-객체 가 아닌 외부에서 객체를 생성하고 전달해 줌으로 써 객체간의 의존성 제거 및 결합도를 낮추는 것)


이점

 - 의존 관계 설정이 컴파일시가 아닌 실행시 이루어져 모듈간의 결합도를 낮출 수 있다.

 - 코드의 재사용률을 높여서 작성된 모듈을 여러 곳에서 소스코드 수정없이 사용



결합도 

- 결합도가 높으면 테스트와 재활용이 어렵고 이해하기 어렵고, 오류가 발생하면 다른 오류가 발생하는 경향이 있다.

- 결합도가 낮으면 테스트와 재활용성 이 용이하고, 이해하기 쉬우며 오류가 발생해도 수정이 간결하다.




반응형
profile

거꾸로 바라본 세상

@란지에。

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!