스프링 프레임워크(Spring framework)란
< Spring >
- 전자정부 프레임워크 많이 들어봤을 ..
- 레거시, 부트 존재
① 프레임워크(framework)
- 대상을 구성하는 구조 / 틀 / 뼈대
- 소프트웨어적 의미 : 기능을 미리 클래스 또는 인터페이스 형태로 만들어서 제공하는 형태
- 예 ) 컴퓨터의 망가진 부품에 대해서 대체할 새 부품을 가져와 교체하는 것
- 왜 사용할까 ? 팀원간의 실력차이를 커버하기 위해서 (일정 품질이상의 상품을 구현하기 위해서)
② 스프링 프레임워크(Spring framework)
- 자바 웹 애플리케이션을 개발하기 위한 오픈 소스 프레임워크
- 경량 프레임워크 / 경량 컨테이너 의 형태
- 특징
· EJB(Enterprise JavaBean)보다 가볍고 처리하기 쉬운 경량 프레임워크
· 제어의 역행(IoC, Inversion of Control) 기술을 사용해서 애플리케이션간의 느슨한 결합을 제어
(제어의 역행 : 메서드, 객체의 호출 작업을 개발자가 결정하는 것이 아니라 외부에서 결정하는 것)
· 의존성 주입(DI, Dependency Injection)기술 지원
(의존성 : 어떤 객체가 혼자서 동작할 수 없음)
· 관점지향 프로그래밍(AOP, Aspect-Oriented Programming) 기술을 지원
· 영속성(persistence)과 관련된 다양한 서비스 지원
· 다양한 라이브러리 지원, 쉬운 연동
- 주요 기능
· Core : 다른기능과 설정을 분리하기 위한 IoC 제공
· Context : 스프링 기본기능, 애플리케이션의 각 기능을 하는 객체(빈)에 대한 접근 제공
· DAO : JDBC 편리하게 사용가능
· ORM : 하이버네이트/My Batis 영속성관련 프레임워크와 연동가능
· AOP : 관점지향 프로그래밍 지원
· Web : 웹 애플리케이션 개발에 필요한 기능 제공
· WebMVC : 스프링 MVC를 제공
③ 의존성 주입(DI)
- 객체들 간의 관계를 개발자가 직접 코딩을 통해서 구현하는 것이 아니라 컨테이너(스프링)가 처리하는 형태
- 직접적인 관계가 없어져서 약한 결합을 보여주기 때문에 쉽게 변경이 가능
- set() 의존성 주입
- 생성자 의존성 주입
- 강한 결합(연관도 높음, 서로 관련있는 기능(객체)), 약한 결합(연관도 낮음, 서로 관계가 없는 기능(객체))