[ Spring Boot ] IOC DI

hod0ri·2022년 6월 26일
0

SpringBoot

목록 보기
1/2

Spring Boot 란?

스프링(Spring)을 더 쉽게 이용하기 위한 수단

그럼 Spring은 뭔데?

Java 기반의 Web Framework

  • WAS (Web Application Server) 내장
  • 경량 컨테이너로 Java 객체를 Spring 안에서 관리 > 생명주기 관리

IOC와 DI

스프링의 큰 특징으로 IoC, DI가 자주 나오므로 자세하게 알아보자.

Java Bean

데이터를 표현하는 것을 목적으로 하는 자바 클래스

[ Java Beans ]
1. 모든 맴버 변수의 접근제어자는 private이며, getter/setter가 있어야 한다.
2. 외부에서 맴버 변수에 접근하려면 메서드로 접근하여야 한다.
3. 기본 생성자가 존재해야한다.
4. 직렬화가 가능해야한다.
import java.io.Serializable;
import lombok.*;

@Data
public class User implements Serializable {
	private String name;
    private String email;
    private int age;
}

Spring Bean

Spring Framework의 Container에 등록/CRUD/관계 설정이 되는 객체
Java 객체와 동일하지만 IoC방식으로 관리됨

IoC (Inversion Of Control) - 제어의 역전

일반적인 자바 프로그램에서는 각 객체들이 직접 객체를 생성/호출하여 프로그램의 흐름을 결정하였다.

모든 프로세스를 사용자가 직접 제어하는것이 일반적인 프로그램의 형식이다.

기존 객체의 경우에는 클래스 내부에서 new 연산자를 활용하여 객체를 생성하고 생명주기를 관리하였는데, Spring에서는 외부에서 객체를 생성/수정 방식을 사용한다.
이를 제어의 역전이라고 한다.

DI (Dependency Injection) - 의존성 주입

IoC 컨테이너에서 Bean 객체를 생성하는 방식

DI는 외부에서 의존관계를 결정한다.
다시말해, 런타임 시점의 의존관계를 외부에서 주입하여 DI를 구현한다.

참고 자료

[SPRING] - 스프링 주요 특성 IOC와 DI 이해하기
스프링(Spring), 스프링 부트(Spring Boot)란? 개념 정리
의존관계 주입(Dependency Injection) 쉽게 이해하기

profile
떠돌이 신입

0개의 댓글