Spring, Spring boot란? (컨테이너, DI, IoC)
2022. 9. 2. 15:47ㆍSpring
이번 포스팅에서는 Spring과 Spring boot의 개념과 주요 특징(Ioc, DI)에 대해 간단히 알아보도록 하겠습니다.
1. Spring이란?
스프링은 자바 기반의 웹 애플리케이션을 만들 수 있는 프레임워크입니다.
2. Spring 특징
- Spring은 자바 객체와 라이브러리들을 관리해주며, 톰캣과 같은 WAS 가 내장되어 있어 자바 웹 애플리케이션을 구동할 수 있습니다.
- Spring은 경량 컨테이너로 자바 객체를 직접 Spring 안에서 관리합니다. 객체의 생성 및 소멸과 같은 생명 주기(Life cycle)를 관리하며, Spring 컨테이너에서 필요한 객체를 가져와 사용합니다.
- Spring의 가장 큰 특징으로 DI와 IoC가 있습니다.
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
'Spring' 카테고리의 다른 글
@RequestParam과 @PathVariable 차이 (0) | 2022.11.07 |
---|---|
스프링IoC 컨테이너 (Feat. 빈(Bean), 빈 스코프(Bean Scope)) (0) | 2022.10.24 |
[타임리프] 자주 사용하는 기능 정리 (0) | 2022.08.17 |
Spring Boot, Spring Security를 이용한 JWT 인증·인가 구현 (1/2) (5) | 2022.08.01 |
[Spring Security] JWT(Json Web Token)란? (0) | 2022.07.27 |