Spring Framework
스프링 프레임워크 개요
Spring Framework_스프링 프레임워크 개요
스프링 프레임워크 개요
1. 도입배경
1) 자바 빈 (Java Bean)
• [1995년] JAVA 탄생, 애플릿의강력함에매력
• [1996년12월] Sun MicroSystems에서 자바빈1.0 명세발표, (자바를 위한 소프트웨어 콤포넌
트 모델을 정의) 자바빈즈는 너무 단순했고, 개발자는 엔터프라이즈 개발자들은 좀 더 나은 것
을 원함. 정교한 애플리케이션은 트랜잭션 지원, 보안, 분산컴퓨팅같은 서비스가 필요한데 반해
자바빈즈는 너무 단순함
• [1998년3월] EJB 1.0 발표. EJB는엔터프라이즈급의 서비스를 제공하고 자바 콤포넌트의 사상
을 서버측으로 확장했지만 원래의 자바빈즈가 가지고 있던 단순함은 잃어버림. 성공한 많은 애
플리케이션이 EJB를 기반으로 구축되었음에도 EJB는본래 의도와 달리 엔터프라이즈 애플리케
이션 개발을 단순화하지는 못함. 모든버전의EJB 명세에는“EJB는엔터프라이즈 애플리케이션의
작성을 쉽게 해준다” 라고 되어있다. EJB의 선언적 프로그래밍 모델이 트랜잭션, 보안과 같은 개
발의 기반 구조의 여러 측면을 단순화했지만 배치설명자(Deployment Descriptor), 홈 인터페
이스, 원격인터페이스 등과 같은 과도한 코드를 기술하도록 함으로써 복잡성을 가중시켰고 시
간이 지날수록 개발자들은 환멸을 느꼈으며 결국 EJB 명성은 쇠퇴하기 시작했다.
Spring Framework_스프링 프레임워크 개요
2) 모델1 개발 방법 (Model 1)
• 프리젠테이션 로직과 비즈니스 로직의 혼재로 JSP 복잡성 증가
• 비즈니스 로직과 화면 로직은 분리되어야 하지만 혼재되어있음.
• JSP의 목적은 VIEW에 있는데 너무 많은 일을 하고 유지 보수의 어려움이 있다.
→ Model 2의도입
Spring Framework_스프링 프레임워크 개요
3) 모델2 개발 방법 (Model 2, MVC)
• JSP가 View, Servlet이 Controller, Java Bean이Model 역할을 해서 프리젠테이션과 비즈니스
로직을 명확하게 구분하는 Model2 방식을 MVC 모델이라고한다.
• 모델(Model) : 데이터생산, DB삽입/삭제/저장/ 등의 비즈니스 로직 수행,
DAO(Data Access Object), DTO(Data Transfer Object)
• 뷰(View) : 클라이언트에게 보여 줄 프리젠테이션에 집중하는 역할
• 컨트롤러(Controller) : 클라이언트의 요청을 처리하기 위해 제어 흐름을 당담, 주로 Servlet
Spring Framework_스프링 프레임워크 개요
3) 모델2 개발 방법 (Model 2, MVC)
• 모든클라이언트의 요청은 서블릿 컨트롤러가 받고, 사용자의 요청에 따라 처리객체(Action 개체)
선택하고 각 Action 개체는 Model(DAO)를 이용해서 비즈니스 로직 실행한다.
• 비즈니스로직수행결과를Action, Controller로리턴한다.
• JSP를뷰로해서forward 시킨다. JSP에서 프레젠테이션 (표현영역, 사용자에게 보여지는 부분)을
생성한다.
• 컨트롤러 설계할 때 많은 주의가 필요하며. 이에 따라 프레임워크의 필요성이 증대되어 MVC
골격을 프레임워크화한 스트럿츠프레임워크(Struts Framework)가 탄생된다.
Spring Framework_스프링 프레임워크 개요
4) Spring Framework Overview
• 프레임워크를 이용하면 프로그램의 작성 분량을 줄일 수 있으며, 프로그램의 작성 방법에 대한
관습을 강제로 제어할 수 있다.
• 가이드와 표준에 의한 개발을 따르도록 제어하며 읽기 쉬운 프로그램 작성이 가능하다.
• 2004년 Rod Johnson이 만든 오픈 소스 프레임워크이며, 경량의 제어 역행과 관점지향 컨테이너
프레임워크이다. IoC 컨테이너를 사용하여 의존관계를 자동 주입할 수 있으며, AOP를 이용하여
공통 기능을 소스코드 변경 없이 필요한 곳에 주입시킬 수있다.
• 복잡한 엔터프라이즈 애플리케이션 개발을 겨냥하여 자바빈즈를 사용하지만 기존 EJB에서 가능
했던 일들이 가능하다. 선언적 트랜잭션 관리나 웹서비스나 RMI 등에 원격 접근가능하며 데이터
영속성 관리를 위한 다양한 옵션을 제공한다.
• 단순성, 테스트 용이성, 느슨한 결합성의 측면에서 스프링의 이점을 얻을 수 있으며
MVC Framework의 모든 부분에 대해 지원하고 있다.
• 최근에는 스프링부트(Spring Boot)를 제공하여 복잡한 스프링 프로젝트의 구성을 간편화하도록
지원하고 있다.
Spring Framework_스프링 프레임워크 개요
4) Spring Framework Overview
Spring Framework_스프링 프레임워크 개요
4) Spring Framework Overview
출처: http://docs.spring.io/

1.스프링프레임워크 개요

  • 1.
  • 2.
    Spring Framework_스프링 프레임워크개요 스프링 프레임워크 개요 1. 도입배경 1) 자바 빈 (Java Bean) • [1995년] JAVA 탄생, 애플릿의강력함에매력 • [1996년12월] Sun MicroSystems에서 자바빈1.0 명세발표, (자바를 위한 소프트웨어 콤포넌 트 모델을 정의) 자바빈즈는 너무 단순했고, 개발자는 엔터프라이즈 개발자들은 좀 더 나은 것 을 원함. 정교한 애플리케이션은 트랜잭션 지원, 보안, 분산컴퓨팅같은 서비스가 필요한데 반해 자바빈즈는 너무 단순함 • [1998년3월] EJB 1.0 발표. EJB는엔터프라이즈급의 서비스를 제공하고 자바 콤포넌트의 사상 을 서버측으로 확장했지만 원래의 자바빈즈가 가지고 있던 단순함은 잃어버림. 성공한 많은 애 플리케이션이 EJB를 기반으로 구축되었음에도 EJB는본래 의도와 달리 엔터프라이즈 애플리케 이션 개발을 단순화하지는 못함. 모든버전의EJB 명세에는“EJB는엔터프라이즈 애플리케이션의 작성을 쉽게 해준다” 라고 되어있다. EJB의 선언적 프로그래밍 모델이 트랜잭션, 보안과 같은 개 발의 기반 구조의 여러 측면을 단순화했지만 배치설명자(Deployment Descriptor), 홈 인터페 이스, 원격인터페이스 등과 같은 과도한 코드를 기술하도록 함으로써 복잡성을 가중시켰고 시 간이 지날수록 개발자들은 환멸을 느꼈으며 결국 EJB 명성은 쇠퇴하기 시작했다.
  • 3.
    Spring Framework_스프링 프레임워크개요 2) 모델1 개발 방법 (Model 1) • 프리젠테이션 로직과 비즈니스 로직의 혼재로 JSP 복잡성 증가 • 비즈니스 로직과 화면 로직은 분리되어야 하지만 혼재되어있음. • JSP의 목적은 VIEW에 있는데 너무 많은 일을 하고 유지 보수의 어려움이 있다. → Model 2의도입
  • 4.
    Spring Framework_스프링 프레임워크개요 3) 모델2 개발 방법 (Model 2, MVC) • JSP가 View, Servlet이 Controller, Java Bean이Model 역할을 해서 프리젠테이션과 비즈니스 로직을 명확하게 구분하는 Model2 방식을 MVC 모델이라고한다. • 모델(Model) : 데이터생산, DB삽입/삭제/저장/ 등의 비즈니스 로직 수행, DAO(Data Access Object), DTO(Data Transfer Object) • 뷰(View) : 클라이언트에게 보여 줄 프리젠테이션에 집중하는 역할 • 컨트롤러(Controller) : 클라이언트의 요청을 처리하기 위해 제어 흐름을 당담, 주로 Servlet
  • 5.
    Spring Framework_스프링 프레임워크개요 3) 모델2 개발 방법 (Model 2, MVC) • 모든클라이언트의 요청은 서블릿 컨트롤러가 받고, 사용자의 요청에 따라 처리객체(Action 개체) 선택하고 각 Action 개체는 Model(DAO)를 이용해서 비즈니스 로직 실행한다. • 비즈니스로직수행결과를Action, Controller로리턴한다. • JSP를뷰로해서forward 시킨다. JSP에서 프레젠테이션 (표현영역, 사용자에게 보여지는 부분)을 생성한다. • 컨트롤러 설계할 때 많은 주의가 필요하며. 이에 따라 프레임워크의 필요성이 증대되어 MVC 골격을 프레임워크화한 스트럿츠프레임워크(Struts Framework)가 탄생된다.
  • 6.
    Spring Framework_스프링 프레임워크개요 4) Spring Framework Overview • 프레임워크를 이용하면 프로그램의 작성 분량을 줄일 수 있으며, 프로그램의 작성 방법에 대한 관습을 강제로 제어할 수 있다. • 가이드와 표준에 의한 개발을 따르도록 제어하며 읽기 쉬운 프로그램 작성이 가능하다. • 2004년 Rod Johnson이 만든 오픈 소스 프레임워크이며, 경량의 제어 역행과 관점지향 컨테이너 프레임워크이다. IoC 컨테이너를 사용하여 의존관계를 자동 주입할 수 있으며, AOP를 이용하여 공통 기능을 소스코드 변경 없이 필요한 곳에 주입시킬 수있다. • 복잡한 엔터프라이즈 애플리케이션 개발을 겨냥하여 자바빈즈를 사용하지만 기존 EJB에서 가능 했던 일들이 가능하다. 선언적 트랜잭션 관리나 웹서비스나 RMI 등에 원격 접근가능하며 데이터 영속성 관리를 위한 다양한 옵션을 제공한다. • 단순성, 테스트 용이성, 느슨한 결합성의 측면에서 스프링의 이점을 얻을 수 있으며 MVC Framework의 모든 부분에 대해 지원하고 있다. • 최근에는 스프링부트(Spring Boot)를 제공하여 복잡한 스프링 프로젝트의 구성을 간편화하도록 지원하고 있다.
  • 7.
    Spring Framework_스프링 프레임워크개요 4) Spring Framework Overview
  • 8.
    Spring Framework_스프링 프레임워크개요 4) Spring Framework Overview 출처: http://docs.spring.io/