■ 스프링 프레임워크 개요


자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크이다. 모듈 별로 나눠서 필요한 부분만 사용하도록 개선하였다. 개발자가 복잡하고 실수하기 쉬운 로우레벨에 많이 신경쓰지 않으면서 비즈니스 로직 개발에 전념할 수 있도록 해준다. 스프링은 오픈소스의 장점을 충분히 취하면서 동시에 오픈소스 재품의 단점과 한계를 잘 극복한다.


경량급 애플리케이션 - 다소 가벼운 애플리케이션을 의미한다. 엔터프라이즈 개발을 굉장히 무겁다. WAS 같은 무거운 애플리케이션에서만 개발이 가능했지만 스프링은 웹 컨테이너 처럼 다소 작은 것에도 동작이 가능하다


로우레벨 - 레벨이 낮을 수록 하드웨어랑 가까워진다. 서블릿을 만들지 않고 url 맵핑을 자유롭게 할 수 있다. 애플레케이션이 담당하는 업무에 집중하고 그 외적인 것은 스프링이 대신해준다. 


오픈소스 - 스프링은 사용자 마음대로 사용할 수 있는 라이선스 기반이다. 오픈소스를 수정을 하든 상업적 목적으로 사용하든 비용이 발생하지 않는다. 누구나 참여 가능하고 자유롭게 쓸 수 있다.



EJB


Enterprise Java Bean 프레임워크를 사용해서 개발을 했던 당시에 불편한 점들을 해소하기 위하여 2002년 로드존슨이 출한 도서 Expert One-on-One J2EE Design and Delvelopment 도서를 출판하게 되었고 이것이 스프링 프레임워크 탄생의 초석이 되었다.



■ 스프링 역할


1. 컨테이너 역할 - 자바 객체를 담는 컨테이너 역할을 한다. 자바 객체가 생성이 되고 소멸 될 때까지 모든 Life-Cycle을 관리해준다. 컨테이너에는 메모리를 갖고 있는 객체들이 있다. 사용자가 원하는 객체를 사용하고 싶을 때 스프링은 사용자에게 메모리 주소를 할당한다.


2. DI (Dependency Injection) 지원 - Dependency 의존이란 A라는 클래스에 B라는 클래스가 멤버변수로 정의 되어 있다고 하는 관계를 의존관계라고 설명하는데 이러한 관계를 스프링이 사용자 대신하여 만들어 준다. 컨트롤러는 DAO에게 의존하고 DAO는 DTO에게 의존한 관계


3. AOP - 관점지향 프로그램 어떤 상황이 발생했을 때 제 3자의 눈으로 바라보는 것을 관점이라 한다. 관점은 전체, 에러, 실행전, 실행후, 트랜잭션 이러한 관점으로 상황에 집중하여 트랜잭션이나 로깅, 보안과 같이 공통적으로 필요로 하는 모듈들을 실제 핵심 모듈에서 분리해서 적용할 수 있다. 


4. POJO 지원 - 스프링 컨테이너에 저장되어 있는 자바 객체는 인터페이스를 구현하거나, 상속받지 않아도 되게끔 순수한 자바 객체만으로 사용할 수 있게끔 지원한다.


5. 트랜잭션 처리를 위한 일관된 방법을 지원 -  어떤 쿼리가 실행 되었을 때 commit을 할지 rollback을 할지 결정해야 한다. oracle, mySql이든 jdbc, jta 든지 문제없이 일관된 트랜잭션 처리를 자동으로 해주기 때문에 사용자는 개발에만 집중할 수 있다.


6.  영속성관 관련된 다양한 API지원 - 스프링은 myBatis. Hibernate, Spring Jdbc 등 데이터베이스 처리를 위한  ORM 프르엠워크들과의 연동을 자동으로 지원해 준다. 



스프링 프레임워크 모듈


이 모든 모듈들을 다 사용하지 않고 필요한 것들만 골라서 사용할 수 있다. 그렇기 때문에 무거운 프레임워크는 맞지만 경량급 프레임워크라고 말하는 것이다.



■ Maven


스프링의 의존 라이브러리를 간편하게 추가할 수 있도록 의존성 주입을 제공한다. 필요한 모듈을 사용할 때 그것에 의존성을 갖고 있는 모든 라이브러리들을 자동으로 빌드해 주는 것을 의미한다. 

1. 빌드를 통해서 배포를 위한 파일 생성

2. 라이브러리를 자동으로 구성함





'Spring' 카테고리의 다른 글

JSTL  (0) 2018.08.22
MVC 패턴 & ModelAndView  (0) 2018.08.21
Dispatcher Servlet  (0) 2018.08.21
DI  (0) 2018.08.20
스프링 프로젝트 생성  (0) 2018.08.20

+ Recent posts