Spring framework 란? / Spring framework의 장점
Spring framework
: 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크
-동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공
-전자정부 표준 프레임워크의 기반 기술
Spring framework의 장점
1. POJO based 이다: POJO(Plain Old Java Object)를 사용한 엔터프라이즈급 애플리케이션을 개발할 수 있다.
* POJO ?
- 객체지향적인 원리에 충실하면서, 환경과 기술에 종속되지 않고 필요에 따라 재활용될 수 있는 방식으로 설계된 오브젝트이다.
- 상속, 인터페이스가 필요없는 아주 단순하고 가벼운 객체를 의미한다.
- 원하는 business logic만 넣을 수 있도록 돕는다.
2.Modular : 모듈화가 잘 되어있어 패키지와 클래스 수가 많아도 필요한 것만 코딩한다.
3.Web MVC : MVC 가 잘 설계되어있다.
4.JDBC, Hibernate, JPA 기술을 위한 다양한 템플릿을 제공한다.
- JDBC 템플릿을 이용하면JDBC 연결 생성, 예외 처리, 트랜잭션 커밋 등을 일반화 할 수 있어서 쿼리와 실행부분코드만 작성하면 된다.
- Spring JDBC는 반복적으로 해야 하는 많은 작업들을 대신 해준다.
- Spring JDBC를 사용할 때는 실행할 SQL과 바인딩할 매개변수를 넘겨주거나, 쿼리의 실행결과를 어떤 객체에게 넘겨 받을 지를 지정해주는 것만 하면된다.
5. Lightweight Java application framework
-메모리와 cpu가 제한된 컴퓨터에서 응용 프로그램을 개발, 배포하는데 유용하다.
- POJO기반의 enterprise application 개발을 쉽고 편하게 할 수 있다.
6.Loose coupling
-DI로 인해 느슨한 결합 지원
* DI ?
-의존관계지원
-각각의 계층이나 서비스 간에 의존성이 존재할 경우 spring이 서로 연결시켜준다.
-POJO 객체들 사이의 의존관계를 spring이 알아서 연관성을 맺어준다.
7.Ease to test
-종속적주입(DI)를 통해 쉬운 테스트 가능
8.Transaction management
- Spring은 축소와 확장할 수 있는 일관된 트랜잭션 관리 인터페이스를 제공한다.
Spring framework는 IOC 기반인데, IOC 가 무엇일까?
IOC (Inversion Of Control) : 제어의 역전
: 제어의 흐름을 사용자가 컨트롤 하지 않고 위임한 컨테이너에 모든 것을 맡기는 것
-> IOC는 DI 와 DL에 의해 구현된다.
DL(Dependency Lookup) - 의존성 검색
컨테이너에서는 객체들을 관리하기 위해 별도의 저장소에 bean을 저장하는데 컨테이너에서 제공하는 API 를 이용하여 사용하고자하는 bean 을 검색하는 방법
DI(Dependency Injection) - 의존성 주입
의존성 주입이란 객체가 서로 의존하는 관계가 되게 의존성을 주입하는 것. 객체지향 프로그램에서 의존성 이란 하나의 객체가 어떠한 다른 객체를 사용함을 의미한다.
IOC에서의 DI란 ?
각 클래스 사이에 필요로 하는 의존관계를 빈 설정 정보를 바탕으로 컨테이너가 자동으로 연결해 주는 것이다.
IOC는 DI와 DL의 의해 구현됩니다.