본문 바로가기

자바 웹 개발자가 될거야/SPRING

스프링 프레임워크(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() 의존성 주입

- 생성자 의존성 주입

 

- 강한 결합(연관도 높음, 서로 관련있는 기능(객체)), 약한 결합(연관도 낮음, 서로 관계가 없는 기능(객체))