Spring?

Noob·2023년 1월 26일
0

Spring Framework란?

  • Spring은 자바 기반 웹 어플리케이션을 만들 수 있는 Framework(프레임워크)이다. 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로써 엔터프라이즈급 애플리케이션을 개발하기 위한 모든 기능을 종합적으로 제공하는 경량화된 솔루션이다.
  • 엔터프라이즈급 개발이란 뜻대로만 풀이하면 기업을 대상으로 하는 개발이라는 말이다. 즉, 대규모 데이터 처리와 트랜잭션이 동시에 여러 사용자로부터 행해지는 매우 큰 규모의 환경을 엔터프라이즈 환경이라 일컫는다.
  • Spring Framework는 경량 컨테이너로 자바 객체를 담고 직접 관리한다. 객체의 생성 및 소멸 그리고 라이프 사이클을 관리하며 언제든 Spring 컨테이너로부터 필요한 객체를 가져와 사용할 수 있다. 이는 Spring이 IoC기반의 Framework임을 의미한다.

Spring 특징

  • 자바 객체와 라이브러리들을 관리해주며 Tomcat과 같은 WAS가 내장되어 있어 자바 웹 어플리케이션을 구동할 수 있다.
  • 경량 컨테이너로 자바 객체를 직접 Spring안에서 관리한다. 객체의 생성 및 소멸과 같은 생명주기를 관리하며 Spring 컨테이너에서 필요한 객체를 가져와 사용한다.
  • Spring의 가장 큰 특징으로 제어의 역전(IoC)과 의존성 주입(DI)이 있다.
    • 제어의 역전(IoC, Iversion of Control)
      • 일반적으로 처음에 배우는 자바프로그램에서는 각 객체들이 프로그램의 흐름을 결정하고 각 객체를 직접 조작하는 작업을 한다. 즉, 모든 작업을 사용자가 직접 제어하는 구조이다. 예를들어 A객체에서 B객체에 있는 메소드를 사용하고 싶으면 B객체를 직접 A객체 내에서 생성하고 메소드를 호출한다.
      • 하지만 IoC가 적용된 경우, 객체의 생성을 특별한 관리 위임 주체에게 맡긴다. 이 경우 사용자는 객체를 직접 생성하지 않고 객체의 생명주기를 컨트롤하는 주체는 다른 주체가 된다. 즉, 사용자의 제어권을 다른 주체에게 넘기는 것을 제어의 역전(IoC)이라 한다.
      • Spring IoC란 Spring에게 제어를 위임하여 Spring이 만든 객체를 주입 -> 의존성 객체의 메소드 호출 구조이다. Spring에서는 모든 의존성 객체를 Spring이 실행될 때 만들어주고 필요한 곳에 주입해준다.
    • 의존성 주입(DI, Dependency Injection)
      • 어떤 객체B를 사용하는 주체A가 객체B를 직접 생성하는게 아니라 객체를 외부(Spring)에서 생성해서 사용하려는 주체 객체A에 주입시켜주는 방식이다. 사용하는 주체A가 사용하려는 객체B를 직접 생성하는 경우 의존성(변경사항이 있는 경우 서로에게 영향을 많이 준다.)이 높아진다. 하지만 외부(Spring)에서 직접 생성하여 관리하는 경우에는 A와 B의 의존성이 줄어들게 된다.

출처. "스프링(Spring), 스프링 부트(Spring Boot)란? 개념 정리", https://melonicedlatte.com/2021/07/11/174700.html, (2023.01.26)

profile
I m a Noob web develpoer.

0개의 댓글