Framework

DeadWhale·2022년 6월 20일
0

Spring

목록 보기
4/25
post-thumbnail

Framework

  • IOC ( 제어 역전 )

    제어의 흐름이 어디에 위치한가에 따라 프레임워크와 라이브러리가 차이 난다
  • 개발 시간을 줄일수 있고
  • 정형화되어 있어 일정 수준 이상의 품질을 기대할 수 있음
  • 유지 보수가 쉬움

Library

  • .jar
  • new [라이브러리 이름]으로 생성해 사용함

영속성 Framework

  • DB
    • 데이터의 저장 , 조회 ,변경,삭제를 다루는 클래스 및 설정 파일을 라이브러리화 하여 구현한 것

MVC ? Boot 차이

Spring MVC

  • 설정 처음부터 다함
  • 자체 서버 X
  • 일반웹 (서블릿)

Spring Boot

  • 자동 설정
  • 톰캣 내장
  • API ( 데이터만 응답(AJAX) )
  • 보통 화면단에서 데이터를 처리한다(Vue , React , Augler)으로 화면단 작성

Spring Framework

자바로 동적웹 개발을 위한 여러 기능 제공

IOC (Inversion of Control) [제어 역전]

  • DI와 연괄성을 가짐
  • 객체의 생명주기를 프레임워크가 책임짐.
  • 객체를 만드는게 아닌 프레임워크가 만든 Bean(객체)를 호출해 사용한다.
  • Bean ( 프레임워크가 만들어낸 객체 )
  • 프로그램 개발중 주도권이 필요한 순간에 제어권이 필요한 순간이 있다
    프레임워크가 생성한 객체를 @으로 의존성 주입 요청을 한다

DI

  • IOC와 연관성을 가짐
    POJO기반 프레임 워크
    Spring AOP

POJO

  • 순수하고 오래된 자바 객체( ? )
  • 라이브러리의 내용을 상속받지 않고 자바의 기본적인 기능만 가진 순수한 자바객체를 의미한다.( Extends HttpServlet 등 외부요소 상속 X )

AOP ( Aspect Oriented Programming )

  • 원래 요청 <-> Controller <-> service <-> DAO <-> DB
  • AOP는 이 중간 중간에 관여 할 수 있다 ( DB <-> DAO )에서 주로 사용

Spring JDBC

  • Mybatis나 Hibernate등의 데이터 베이스를 처리하는 영속성 프레임워크와 연결 할 수 있는 인터페이스

Spring MVC

  • MVC디자인 패턴을 통해서 Model , View, Controller 사이의 의존 관계를 DI 컨테이너에서 관리해 개발자가 아니라 서버가 객체를 관리하는 웹 어플리케이션을 구축 할 수 있다

PSA( Portable Service Abstraction )

  • 여러 모듈을 사용함에 있어 별도의 추상화 레이어를 제공한다
    예를 들어 JPA를 사용할때에는 Spring JPA 사용하여 추상화 하여 실제 구현할 때 Hibernate 혹은 EclipsLink를 사용하든 개발자는 모듈에 의존 없이 프로그램에 집중할 수 있다.

Spring Container


  • Data Access
    • JDBC나 DB에 연결하는 모듈 영속성 프레임워크 연결을 담담
  • Web 계층 (MVC / Remoting )
    • Spring Framework에서 Servlet등의 웹 구현 시굴과으 연결점을 Spring MVC 구성으로 지원하기 위해 제공되는 모듈 계층
    • remoting 기술로 RMI , Hessian , Burlap , JAX-ws ,HTTP 호출자 REST API를 지원 ( 다 뭔지 모름)
  • AOP계층
    • 흐름간 공통된 코드를 한쪽으로 빼내어 필요한 시점에 해당 코드를 첨부하게 하기 위해 지원하는 계층 별도의 Proxy가 존재
      객체간의 결합도를 낮출 수 있다.
  • Core Container
    • Spring 핵심 부분이라고 할 수 있으면 모픈 스프링 관련 모듈은 이 컨테이너를 기반으로 구축된다 Spring의 기반이 되는 IOC(제어역전)담당하고 있다.
      BeanFactory를 기반으로 Bean 클래스르를 제어할 수 있다

Spring MVC 요청 처리 과정

Spring Web

Spring Framework에서는 클라이언트의 화면을 표현하기 위한 View 서비스를 수행하기 위한 개발 로직을 나누는 MVC2 패턴을 지원함
M - V - C 사이의 의존 관계를 DI 컨테이너에서 관리하여 유연한 웹 애플리케이션을 쉽게 구현 및 개발 할 수 있다.

요청 처리 과정

DispatcherServler

  • 클라이언트의 요청을 전달 받고 요청에 맞는 컨트롤러가 리턴한 결과 값을 View에 전달하여 알맞은 응답(Response)을 생성

HandlertMapping

  • 요청URL을 어느 컨트롤러가 처리하지 결정

Controller

  • 클라이언트의 요청을 수행 처리 후 결과를 다시 DispatcherServlet으로 반화(Retrun)

ModelAndView

  • 컨트롤러가 처리한 결과 정보 및 뷰 선택에 필요한 정보를 담음

ViewResolver

  • 컨트롤러의 처리 결과를 생성할 View를 결정

View

  • 컨트롤러의 처리 결과 화면을 생성 JSP / Velocity 템플릿 파일등을 View로 활용


Spring 프로젝트 기본 구조

Spring 폴더구조

main 폴더

webapp폴더

0개의 댓글