본문 바로가기

프로그래밍/Spring

프레임워크란?

프레임워크

 : 뼈대 혹은 틀

소프트웨어 개발에 있어 아키텍처에 해당하는 골격코드


'아키텍쳐' , '골격' 

아키텍쳐 : 애플리케이션의 구조를 결정

골격 : 프레임워크가 제공


기존 애플리케이션 개발과정의 문제점

- 유지보수 과정에서 개발자의 경험에 의존되는 경우가 많음.

해결방법 : 프레임워크도입 - 애플리케이션의 아키텍처는 프레임워크에서 제공, 뼈대에 살을 붙이는 작업을 개발자가 한다.


스프링 프레임워크의 특징

1. 스프링은 경량의 프레임워크이다.

2. 스프링은 DI(dependency Injection)패턴을 지원한다 - 의존성 주입

3. 스프링은 AOP(Asepct Oriented Programming)를 지원 - 트랜잭션 처리

4. 스프링은 POJO(Plain Old Java Object)를 지원한다 - 자바 객체를 스프링 컨테이너가 저장

5. 영속성과 관련된 다양한 API 제공 - JDBC, MyBatis

6. 자체적으로 MVC 프레임워크 제공


스프링 프레임워크의 주요 특징

- UI 계층 : 화면구성

- 비즈니스 계층 : 모델처리

- 퍼시턴스 계층 : Mybatis ..등


DenpenDency Injection과 스프링프레임워크

스프링 프레임워크에서는 객체를 직접 명시적으로 생성하지 않는다 (유연성이 떨어짐)

주입받을 수 있는 메서드, 생성자로 주입하며 XML설정파일에 A클래스를 설정으로 등록해서 주입하는 형식(Bean)

DI - 의존하는 객체에 대한 취득의 책임이 class에 있지 않고 스프링 컨테이너가 제공(주입)해 준다.

(위 예제처럼 B b = new B(); 식의 코드를 작성할 필요가 없다.)


Spring 컨테이너의 역할 

1. 객체관리 (생명주기) - 생성,주입,삭제

2. XML 설정파일에 사용할 class(bean)를 보관, 설정

3. 요청이 들어오면 보관했던 class를 생성, 주입


결론

 1. 컨테이너가 객체에 대한 관리를 하며 class에서 객체를 생성하는 것이아닌 컨테이너가 주입해준다.

2. XML 설정으로 등록해서 주입한다.

3. 사용하는 객체의 메서드가 바뀌면 사용하는 쪽에서도 메서드의 이름을 바꿔야한다.(의존성 높음) 

컨테이너가 빈 팩토리 역할, 설정파일에서 필요한 설정을 하면 기존코드를 변경하지않고 사용할 수 있음.(interface 기반)

코드의 변경없이 XML설정만으로 객체의 주입으로 바꿀 수 있다.





 


-





'프로그래밍 > Spring' 카테고리의 다른 글

DI(DepenDency Injection) - 1  (0) 2018.07.26
스프링 프레임워크 설치 - STS  (0) 2018.07.24