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

 

 

  • 스프링 프레임워크 웹개발 적용
  •  IOC
  • DI

 

스프링의 특징 두가지 특징은 DI와 IoC에 대해서 말할 수 있다.

 

DI라 함은 Dependency Injection의 약자로 번역 하면 의존성 주입이라 한다.

 

A라는 클래스 내부에 has a 관계로 B클래스를 포함을 시키면 A클래스는 B에 의존적이다 라고 말을 하는데 

이 말을 쉽게 풀어 쓰면 A라는 클래스가 작동하기 위해서는 B가 필요하다는 의미가 된다.

 

평소 Java개발을 하던 사람이라면 

 

내부에서 new연산자를 사용해서 다른 클래스를 생성하는 경우를 많이 볼 수 있었을 것이다.

 

이때 new연산자를 사용해서 만들어진 객체에 의존한다 라는 표현을 사용할 수 있다.

 

클래스 A에서 의존성 객체를 생성하는 방법은 다음 두 가지로 분류가 된다.

 

public class A{

private B b;

 

A(){

b=new B();

}

}

 

public class A{

private B b;

 

public void setB(B b){

this.b = b;

}

}

 

여기에서 만약 B클래스를 확장시켜 C클래스를 만들었다고 가정을 하고 이제 A클래스에서 B클래스가 아닌 C클래스가 필요하게 된다면, 

첫번째 방법 같은 방법은 .java라는 확장자를 가진 파일의 소스코드를 변경 해주어야 한다.

 

하지만, 두번째 방법은 A클래스를 생성 후 간단한 setter를 통해  B클래스를 상속받는 C를 넣어주기만 하면되기 때문에 확장성 면에서 뛰어나다고 할 수 있다.

(A클래스의 생성자를 통해 B를 세팅할 수 도 있다.)

 

그렇기 때문에 스프링에서는 2번째 방법을 통해 내부적으로 의존성 객체를 주입시켜준다.

 

 

스프링에서는 객체의 생성과 소멸에 관련된 작업을 자동적으로 수행해주는데 객체가 생성되는 곳을 스프링에서는 Bean 컨테이너라고 부른다 

 

스프링에서는 객체를 Bean이라고 부르며, 스프링에서는  프로젝트가 실행될때 사용자가 Bean으로 관리하는 객체들을 자동으로 생성해준다.

 

A라는 클래스와 B라는 클래스 C라는 클래스에서 D라는 클래스를 요청했을때 스프링에서는 실행될때 생성했던 Bean을 주입시켜주는데 이 과정을 DI라고 한다.

 

 

 

Ioc(Inversion of Control)

 

 

스프링에서는 또 다른 특징으로 IoC(Inversion of Control)을 말할 수 있다. 

 

IoC는 제어의 역전이라고 말하며, 간단히 말해 제어의 흐름을 바꾼다라고 한다.

 

기존에는 다음과 순서로 객체가 만들어지고 실행되어졌다.

 

1.객체 생성

2.의존성 객체 생성(클래스내부에서)

3.의존성 객체 메소드 호출 

 

하지만, 스프링에서는 다음과 같은 순서로 객체가 만들어지고 실행된다.

 

1.객체 생성

2.의존성 객체 주입(스스로가 만드는것이 아니라 제어권을 스프링에게 위임하여 스프링이 만들어놓은 객체를 주입한다.)

3.의존성 객체 메소드 호출

 

스프링이 모든 의존성 객체를 스프링이 실행될때 다 만들어주고 필요한곳에 주입시켜줌으로써 Bean들은 싱글턴 패턴의 특징을 가지며, 

제어의 흐름을 사용자가 컨트롤 하는 것이 아니라 스프링에게 맡겨 작업을 처리하게 된다. 

'spring 작업한 부분 > 게시판 spring' 카테고리의 다른 글

스프링이란 - 김영한  (0) 2023.06.02
PART 01. 스프링 프레임워크 기본  (0) 2023.06.01

PART 01. 스프링 프레임워크 기본 

Chapter 01 스프링 프레임워크 소개 및 개념 

 

1.  Spring Framework (스프링 프레임워크)

  •  자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로 동적인 웹 사이트를 개발하기 위한 프레임워크
  • 스프링 프레임워크는 경량 컨테이너로 자바객체를 담고 직접관리 한다.
  • 객체의 생성 및 소멸 그리고  라이프사이클을 관리하며 언제든 Spring 컨테이너로부터 필요한 객체를 가져와 사용할 수 있다.  SpringIOC 기반의 Framework임을 의미한다JAVA의 웹 프레임워크로 JAVA 언어를 기반으로 사용한다. JAVA로 다양한 어플리케이션을 만들기 위한 프로그래밍 틀이라 할 수 있다.
  •  Spring은 이런 중복코드의 사용률을 줄여주고, 비즈니스 로직을 더 간단하게 해줄 수 있다.
  • 결론적으로 Spring이란 JAVA 기술들을 더 쉽게 사용할 수 있게 해주는 오픈소스 프레임 워크이다.

2. Framework (프레임워크)

개발자가 소프트웨어를 개발함에 있어 코드를 구현하는 개발 시간을 줄이고, 코드의 재사용성을 증가시키기 위해 일련의 클래스 묶음이나 뼈대, 틀을 제공하는 공통 라이브러리를 구현해 놓은 것을 말한다.

 

 

'spring 작업한 부분 > 게시판 spring' 카테고리의 다른 글

스프링이란 - 김영한  (0) 2023.06.02
스프링 프레임워크 기본, 응용  (0) 2023.06.02

+ Recent posts