Spring

Spring, Spring boot란? (컨테이너, DI, IoC)

Lea Hwang 2022. 9. 2. 15:47

이번 포스팅에서는 Spring과 Spring boot의 개념과 주요 특징(Ioc, DI)에 대해 간단히 알아보도록 하겠습니다.

 

 

 

1. Spring이란?

스프링은 자바 기반의 웹 애플리케이션을 만들 수 있는 프레임워크입니다.

 

 

2. Spring 특징

  • Spring은 자바 객체와 라이브러리들을 관리해주며, 톰캣과 같은 WAS 가 내장되어 있어 자바 웹 애플리케이션을 구동할 수 있습니다.
  • Spring은 경량 컨테이너로 자바 객체를 직접 Spring 안에서 관리합니다. 객체의 생성 및 소멸과 같은 생명 주기(Life cycle)를 관리하며, Spring 컨테이너에서 필요한 객체를 가져와 사용합니다.
  • Spring의 가장 큰 특징으로 DI와 IoC가 있습니다.

 

출처 : https://100100e.tistory.com/285

 

2-1. 의존성 주입 (DI, Dependency Injection)

A 객체에  B,C 객체를 사용(의존)하는 두 가지 방법이 있습니다.

1.  직접 생성 : B,C객체를 직접 생성

  • 강한 결합으로 의존성이 높아짐
  • 생성부터 소멸의 라이프사이클을 해당 개발자가 전부 관리 

2.  의존 주입(DI) : B, C 객체를 외부에 생성해 A객체에 주입

  • 약한 결합으로 의존성이 줄어듦
  • 미리 있는 것을 할당받아 사용, 생성된 것을 주입 받음(컨테이너가 의존을 주입) 

객체지향 프로그램에서 약한 결합을 사용하게 되면 개발자가 관리해야 할 범위가 작아진다 장점이 있습니다.

 

💡 컨테이너
객체를 생성하고 라이프사이클 관리하며  필요한 객체를 의존 주입해주는 누군가를 컨테이너라고 하는데, 
스프링이 컨테이너의 역할을 합니다.

 

2-1. 제어의 역전 (IoC, Inversion of Control)

  • 개발자가 객체를 제어하지 않고 스프링 컨테이너로 객체의 제어권이 넘어갔다는 의미로 제어의 역전이라고 합니다.
  • 스프링에게 제어를 위임하여 모든 의존성 객체를 스프링이 실행될 때 만들어주고 필요한 곳에 주입해줍니다.

 

 

 

 

3. SpringBoot란?

스프링 부트(Spring Boot)는 스프링(Spring)을 더 쉽게 이용하기 위한 도구라고 볼 수 있습니다. 스프링 이용하여 개발을 할 때, 이것저것 설정을 해야 될 요소들이 많습니다.(의존성 관리, 기본 설정 등)

Spring Boot는 매우 간단하게 프로젝트를 설정할 수 있게 하여, Spring 개발을 조금 더 쉽게 만들어주는 역할을 하고 있습니다.

 

 

 

 

 

 


 

 

출처

https://www.youtube.com/watch?v=fGOU7JqNHyE

https://melonicedlatte.com/2021/07/11/174700.html