ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Spring 기초
    개발 2020. 11. 28. 15:30

    Spring의 등장 배경

    점점 커지는 웹 사이트에서 서비스를 편리하게 하기 위해서

    •  Session Bean에서 Transaction 관리가 용이하다.
    • 로긴, 분산처리, 보안 등

     

    POJO(Plain Old Java Object)

    • 특정 프레임워크나 기술에 의존적이지 않는 자바 객체 = 우리가 일반적으로 사용하는 자바 객체
    • 특정 기술에 종속적이지 않기 때문에 생산성, 이식성 향상
    • Plain : Component Interface를 상속받지 않는 특징을 가진다.
    • Old : EJB 이전의 Java Class

     

    경량 프레임 워크

    EJB가 제공하는 서비스를 지원해 줄 수 있는 프레임워크

    ex) Hibernate, JDO, iBatis(Mybatis), Spring

     

    POJO + Framework

    • EJB Server와 같은 거창한 Containor가 필요 없다.
    • 오픈소스 프레임워크라 무료 사용.
    • 개발에 필요한 많은 라이브러리 지원
    • Spring의 경우 모든 플랫폼에서 사용이 가능하다.

     

    Spring Framework

    Enterprice Application을 만들기 위한 모든 기능을 종합적으로 제공하는 경량화된 솔루션

    JEE가 제공하는 다수의 기능을 지원하여 대체 프레임워크로 자리 잡았음.

    뿐만 아니라, DI(Dependency Injection), AOP(Aspect Oriented Programming) 지원

     

     

    Spring의 핵심 개념

     

    POJO를 통해 특정 환경이나 기술에 종속적이지 않은 객체지향 원리에 충실한 자바 객체 생성.

    테스트하기 용이하며, 객체지향 설계를 자유롭게 적용할 수 있다.

     

    PSA (Portable Service Abstraction)

    • 추상화를 통해 환경관계 x, 일관된 방식으로 기술에 접근할 수 있게 하는 설계 원리
    • 환경과 세부기술의 변경과 관계없이 일관된 방식으로 기술에 접근할 수 있게 해주는 설계 원칙.
    • 트랜잭션 추상화, OXM 추상화, Data Access의 Exception 변환기능 등 기술적 복잡함은 추상화를 통해  Low Level의 기술 구현 부분과 기술을 사용하는 인터페이스로 분리

     

    IOC(Inversion of Control)

    제어의 역전, 프로그램 life cycle의 주도권이 Web Application에 존재한다.  High Level -> Low Level 의존 x

    Interface에 의존해야하므로 결합도를 낮춘다. DI를 통해 해결한다.

     

    DI(Dependency Injection)

    Spring은 설정파일 (pom.xml, Application properties)이나, Annotation을 통해 객체간의 의존 관계를 설정할 수 있다.

    즉 객체는 의존하고 있는 객체를 직접 생성하거나 검색할 필요가 없다.

     

    AOP(Aspect Oriented Programming)

    • 문제를 바라보는 관점을 기준으로 프로그래밍하는 기법이다.
    • 관심사의 분리를 통해서 소프트웨어의 모듈성을 향상.
    • 공통 모듈을 여러 코드에 쉽게 적용가능.

     

    Spring MVC 구조

    • Dispatcher Servlet
    • View Resolver
    • Intercepter
    • Handler
    • View 등으로 구성

     

    Spring 동작 과정

    1. Client로 부터 Request 요청이오면 Dispatcher Servlet에 전달한다.
    2. Dispatcher Servlet이 Handler Mapping에 맞는 Handler를 Request, Handler Mapping은 맞는 Handler를 Response에 담아 전달한다.
    3. Dispatcher Servlet은 Response로부터 맞는 Handler에 Request요청을 보내고 Handler는 Service를 호출한다.
    4. Handler는 이러한 Service 처리에 대한 Response를 Model/View 형식으로 Dispatcher Servlet에 전달한다.
    5. Dispatcher Servlet은 Response에 맞는 View name을 확인하여 View Resolver에 Request요청을 보낸다.
    6. View Resolver는 맞는 View를 Response에 담아 Dispatcher Servlet에 전달, model을 view 로 보내 Response를 받는다.
    7. 결과적으로 온 Response를 client에게 전달한다.

     

    '개발' 카테고리의 다른 글

    이것저것 공부한거 (Proxy, Transaction)  (0) 2020.11.30
    Spring AOP  (0) 2020.11.30
    Servlet?  (0) 2020.10.23
    WAS ?? Class Loader?  (0) 2020.10.23
    AWS EC2 환경에 nginx를 설치해 배포하는 방법.  (0) 2020.10.21
Designed by Tistory.