'Spring Framework'에 해당되는 글 2건

반응형

1. Framework

  • 특정 형태의 소프트웨어 문제를 해결하기 위해 상호 협력하는 클래스 프레임과 인터페이스 프레임의 집합
  • 특정한 틀을 만들어 놓고 거기에 내가 만든 부품을 조립하여 작업시간을 줄여주는 것
  • 특정 개념들의 추상화를 제공하는 여러 클래스나 컴포넌트로 구성
  • 추상적인 개념들이 문제를 해결하기 위해 같이 작업하는 방법을 정의
  • 프레임워크는 좀 더 높은 수준에서 패턴을 조작
  • 프레임워크가 중요한 이유는 객체지향 개발을 하게 되면서 개발자의 취향에 따라 다양한 프로그램이 나오게 되었다. 프로그램 개발에 투입되는 개발자도 점점 늘어남에 따라 전체 시스템의 통합성, 일관성이 부족하게 되었기 때문이다. 그래서 개발자의 자유를 제한하기 위해 프레임워크를 도입했다.

 

  • 프레임워크가 가져야 할 특징
  • - 개발자들이 따라야할 가이드라인을 가진다
  • - 개발할 수 있는 범위가 정해져 있다.
  • - 개발자를 위한 다양한 도구들이 지원된다.

 

  • 프레임워크의 장단점
  • 장점 - 개발 시간을 줄일 수 있고 오류로부터 자유로울 수 있다.
  • 단점 - 프레임워크에 너무 의존하면 개발 능력이 떨어져서 프레임워크 없이 개발하는 것이 불가능해진다.

 

2. Spring Framework(스프링 프레임워크)

  • 자바(JAVA)플랫폼을 위한 오픈소스 애플리케이션 프레임워크이다.
  • 자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크
  • 자바 개발을 위한 프레임워크로 종속 객체를 생성해주고, 조립해주는 도구
  • 자바로 된 프레임워크로 자바 SE로 된 자바 객체(POJO)를 자바 EE에 의존적이지 않게 연결해주는 역할

3. 스프링의 특징

  • 가볍다
  • 제어 역행(IoC)이라는 기술을 통해 애플리케이션의 느슨한 결합을 도모
  • 관점 지향 프로그래밍(AOP)을 위한 풍부한 자원
  • 애플리케이션 객체의 생명주기와 설정을 포함하고 관리한다는 점에서 일종의 컨테이너(Container)라고 할 수 있다.
  • 간단한 컴포넌트로 복잡한 애플리케이션을 구성하고 설정할 수 있다.

4. 스프링의 특징

  • 경량 컨테이너로써 자바 객체를 직접 관리한다. 각각의 객체 생성, 소멸가 같은 라이프 사이클을 관리하며 스프링으로부터 필요한 객체를 얻어 올 수 있다.
  • 스프링은 POJO(Plain Old Java Object)방식의 프레임워크이다. 일반적인 J2EE 프레임워크에 비해 구현을 위하여 특정한 인터페이스를 구현하거나 상속을 받을 필요가 없어 기존에 존재하는 라이브러리등을 지원하기에 용이하고 객체가 가볍다.
  • 스프링은 제어의 역행(IoC : Inversion of Control)을 지원한다. 컨트롤의 제어권이 사용자가 아니라 프레임워크에 있어서 필요에 따라 스프링에서 사용자의 코드를 호출한다.
  • 스프링은 의존성 주입(DI: Dependency Injection)을 지원한다. 각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결시켜준다.
  • 스프링은 관점 지향 프로그래밍(AOP: Aspect-Oriented Programming)을 지원한다. 따라서 트랜잭션이나 로깅, 보안과 같이 여러 모듈에서 공통적으로 사용하는 기능의 경우 해당 기능을 분리하여 관리할 수 있다.
  • 스프링은 영속성과 관련된 다양한 서비스를 지원한다. MyBatis나 Hibernate등 이미 완성도가 높은 데이터베이스 처리 ㄱ라이브러이와 연결할 수 있는 인터페이스를 제공한다.
  • 스프링은 확장성이 높다. 스프링 프레임워크에 통합하기 위해 간단하게 기존 라이브러리를 감싸는 정도로 스프링에서 사용이 가능하기 때문에 수많은 라이브러리가 이미 스프링에서 지원되고 있고 스프링에서 사용되는 라이브러리를 별도로 분리하기도 용이하다.

5. Spring MVC 구조의 처리과정

  • DispatcherServlet: 어플리케이션으로 들어오는 모든 Request를 받는 관문이다. Request를 실제로 처리할 Controller에게 전달하고 그 결과값을 받아서 View에게 전달하여 적절한 응답을 생성할 수 있도록 흐름을 제어한다.
  • HandleMapping: Request URL 각각 어떤 Controller가 실제로 처리할 것인지 찾아주는 역할
  • Controller: Request를 직접 처리한 후 그 결과를 다시 DispatcherServlet에게 돌려준다.
  • ModelAndView: Controller가 처리한 결과와 그 결과를 보여줄 View에 관한 정보를 담고있는 객체이다.
  • ViewResolver: View관련 정보를 갖고 실제 View를 찾아주는 역할을 한다.
  • View: Controller가 처리한 결과값을 보여줄 View를 생성한다.

참고 사이트

https://sas-study.tistory.com/58?category=774876

반응형
블로그 이미지

꽃꽂이하는개발자

,
반응형

스프링 프레임워크는 웹 애플리케이션 개발에 필요한 여러 가지 기능을 미리 만들어서 제공합니다. MVC 기능도 그 중 하나입니다. 스프링에서 제공하는 기능 사용법을 익히고 나면 MVC기능을 일일이 만들 필요 없이 편리하게 MVC 기능을 사용할 수 있습니다.

  스프링에서 지원하는 MVC 기능의 특징은 다음과 같습니다.

  • 모델2 아키텍처를 지원합니다.
  • 스프링과 다른 모듈과의 연계가 쉽습니다.
  • 타일즈나 사이트메시같은 View 기술과의 연계가 쉽습니다.
  • 태그 라이브러리를 통해 message 출력, theme 적용 그리고 입력 폼을 보다 쉽게 구현할 수 있습니다.

스프링에서는 애플리케이션 개발 시 많이 사용되는 모델2 기반의 MVC 기능을 제공하므로 편리하게 애플리케이션을 개발할 수 있습니다. 그리고 타일즈나 사이트메시처럼 화면 관련 프레임워크와도 쉽게 연동할 수 있습니다.

구성요소 설명
DispatcherServlet 클라이언트의 요청을 전달받아 해당 요청에 대한 컨트롤러를 선택하여 클라이언트의 요청을 전달합니다. 또한 컨트롤러가 반환한 값을 View에 전달하여 알맞은 응답을 생성합니다.
HandlerMapping 클라이언트가 요청한 URL을 처리할 컨트롤러를 지정합니다.
Controller 클라이언트의 요청을 처리한 후 그 결과를 DispatcherServlet에 전달합니다.
ModelAndView 컨트롤러가 처리한 결과 및 뷰 선택에 필요한 정보를 저장합니다.
ViewResorlver 컨트롤러의 처리 결과를 전달할 뷰를 지정합니다.
View 컨트롤러의 처리 결과 화면을 생성합니다.

출처 : https://gmlwjd9405.github.io/2018/12/20/spring-mvc-framework.html

1. 브라우저가 DispatcherServlet에 URL로 접근하여 해당 정보를 요청합니다.

2. 핸들러 맵핑에서 해당 요청에 대해 매핑된 컨트롤러가 있는지 요청합니다.

3. 매핑된 컨트롤러에 대해 처리를 요청합니다.

4. 컨트롤러가 클라이언트의 요청을 처리한 결과와 View 이름을 ModelAndView에 저장해서 DispatcherServlet으로 반환합니다.

5. DispatcherServlet에서는 컨트롤러에서 보내온 View 이름을 ViewResolver로 보내 해당 View를 요청합니다.

6. ViewResorvler는 요청한 View를 보냅니다.

7. View의 처리 결과를 DispatcherServlet으로 보냅니다.

8. DispatcherServlet은 최종 결과를 브라우저로 전송합니다.

 

반응형
블로그 이미지

꽃꽂이하는개발자

,