Everything counts - 라키의 IT 블로그

[Spring] Spring이란? 그리고 Spring특징 본문

프로그래밍/Spring

[Spring] Spring이란? 그리고 Spring특징

벡스파 2022. 4. 17. 18:49

SpringFramework

Framework란?

틀, 뼈대이며 프로젝트의 토대, 기반을 제공한다

  • 다양한 컴포넌트와 개발 패턴을 제공한다

  • 반완전 어플리케이션.

  • 전체 어플리케이션의 구조를 결정하는 아키텍처에 해당하는 골격 코드를 프레임워크가 제공한다.

  • 프로그램의 전체적인 구조와 흐름을 확정지으며, 어플리케이션 개발에 필요한 클래스와 인터페이스의 집합

    Framework의 장점

    • 빠른 구현시간
    • 쉬운 관리
    • 개발자의 역량 획일화
    • 검증된 아키텍처의 재사용, 일관성 유지

      Spring이란?

      앤터프라이즈 어플리케이션을 개발하기에 적합한 프레임워크. 객체관리를 해주는 빈 컨테이너 프레임워크
  • 스프링프레임워크는 많은 디자인패턴을 적용시켜 배포되므로 프레임워크를 사용하는 자체가 디자인패턴을 사용하는것.

    특징

    1. 경량

    일반적인 J2EE 등 다른 프레임워크와 달리 객체간의 관계를 구성할 때 별도의 API를 사용하지 않고 기존에 존재하는 라이브러리 등을 사용하기 때문에 객체가 가볍다

    1. 제어 역행(IoC)

    IoC

    IoC의 제어역행이란 객체의 생성에서부터 생명주기의 관리까지 모든 객체에 대한 제어권이 바뀐다는 것을 의미.
    Servlet, EJB등을 사용하는 경우 Container에 제어권이 넘어가 제어를 전담한다.

    1. 의존성 관리(DI: Dependency Injection)
    • 의존성 : 하나의 객체가 다른 객체 없이 제대로된 역할을 할 수 없다는 의미
    • 각각의 계층이나 서비스 간에 의존성이 존재할 경우 프레임워크가 자동으로 관리한다
    1. 관점 지향 프로그래밍(AOP : Aspect-Oriented Programming)

    AOP

    • 공통모듈의 반복적인 코드를 줄이고, 핵심 비즈니스 로직에만 집중할 수 있는 방법을 제공한다.
    • 트랜잭션이나 로깅, 보안과 같이 여러 모듈에서 공통적으로 사용하는 기능의 경우 해당 기능을 분리하여 관리할 수 있다.
    1. 컨테이너
    • 특정 객체의 생성과 관리를 담당하며 객체 운용에 필요한 기능을 제공
    • 일반적으로 서버 안에 포함되어 배포 및 구동된다.
    • 대표적인 컨테이너로는 Servlet 객체를 생성하고 관리하는 Servlet컨테이너와 EJB객체를 관리하는 EJB 컨테이너가 있다.
    • Servlet 컨테이너는 톰캣버서버에도 포함되어 있다.
    • 애플리케이션 운용에 필요한 객체를 생성하고 객체간의 의존관계를 관리한다는 점에서 스프링도 일종의 컨테이너

참조

스프링부트로 배우는 자바 웹개발 (윤석진 저)

프레임워크란

IOC/AOP/container