gone

[1주차] 01장. 스트링 부트란? 본문

개발일지(TIL)

[1주차] 01장. 스트링 부트란?

예쁨받는 돌맹이 2024. 10. 27. 01:56

1.1 스프링 프레임 워크(Spring Framework)란?

- 스프링 프레임워크는 자바에서 가장 많이 사용하는 프레임워크이다.

ex) 현재 우리나라에서도 공공기간 웹 서비스를 개발할 때도 사용됨.

 

- 스프링은 자바로 애플리케이션을 개발하는 데 필요한 기능을 제공하고 쉽게 사용하도록 돕는 도구이다.

≒ 오픈소스 경량급 애플리케이션 프레임워크

스프링의 핵심 가치

 

애플리케이션 개발에 필요한 기반을 제공해서 개발자가 비즈니스 로직 구현에만 집중할 수 있게끔 하는 것


1) 제어 역전(IoC; Inversion of Control)

IoC를 적용한 환경에서는 사용할 객체를 직접 생성하지 않고 객체의 생명주기 관리를 외부에 위임한다. 이때 '외부'는 스프링 컨테이너(Spring Container) 또는 IoC 컨테이너를 의미한다.

 

- 제어 역전이란? 객체의 관리를 컨테이너에 맡겨 제어권이 넘어간 것을 의미한다.

 

제어 역전을 통해 의존성 주입(DI; Dependency Injection),  관점 지향 프로그래밍(AOP; Aspect-Oriented Programming) 등이 가능해진다. 

 

--- 

- [일반적인 객체 사용방법]

사용하려는 객체를 선언하고 해당 객체의 의존성을 생성한 후 객체에서 제공하는 기능을 사용한다.

public class Car {
    private Engine engine;

    public Car() {
        engine = new Engine();  // 개발자가 직접 객체를 생성
    }

    // 스프링이 Engine 객체를 주입
    public Car(Engine engine) {
        this.engine = engine;
    }
}

 

IoC을 특징으로 하는 스프링은 기존 자바 개발 방식과 다르게 동작한다.

 

 

 

따라서 스프링을 사용하면 객체의 제어권을 컨테이너로 넘기기 때문에 개발자는 비즈니스 로직을 작성하는데 더 집중 할 수 있다.

@Component
public class Car {
    private final Engine engine;

    @Autowired  // 스프링이 Engine 객체를 주입
    public Car(Engine engine) {
        this.engine = engine;
    }
}

 

@Component
public class Car {
    private Engine engine;

    @Autowired
    public void setEngine(Engine engine) {
        this.engine = engine;
    }
}

 


출처 :  [스프링 부트 핵심 가이드] 참고하여 작성하였습니다.