Spring

[Spring Architecture DI] Spring 등장 배경

sujin7837 2022. 4. 19. 21:54
반응형

Controller의 역할

1. 사용자 요청이 들어오면 어떻게 처리할지 결정함

if(act=="로그인") {
	
} else if(act=="회원가입") {

} else if() ....

 

2. method를 이용하여 사용자가 요청한 data를 get

Dto에서 데이터를 얻어와서 호출한 곳으로 보내줌

request.getParameter(...)
return "path"

 

1번에서 2번을 호출하면 리턴을 통해 redirect 또는 forward 방식으로 응답을 전달합니다.

 

싱글턴 패턴

service와 dao에서는 싱글턴 패턴을 이용하여 인스턴스를 사용해왔습니다.

public class Singleton {
	private static Singleton singleton=new Singleton();
    private Singleton() {}
    public static Singleton getSingleton() {
    	return singleton;
    }
}

 

의존 관계

controller -> service -> dao -> data source

controller는 service를 필요로 하고,

service는 dao를 필요로 하고, 

dao는 data source를 필요로 하는 의존 관계를 가지고 있습니다.

 

Spring Framework

스프링을 사용하게 되면 위에서 언급한 것들이 모두 자동화됩니다.

 

1. controller의 역할 자동화

2. 싱글턴 패턴 자동화 : 싱글턴 패턴을 직접 코딩할 필요가 없음

3. 의존성 주입(DI : Dependency Injection) : 의존 관계에 있는 것들을 의존성 주입을 통해 처리함

 

따라서 Spring을 사용하게 되면 싱글턴 패턴을 직접 작성하지 않아도 자동으로 생성되고, dao와 data source를 얻어오는 코드도 작성할 필요가 없게 됩니다.

 

 

자동화 되는 코드들에는 "설정"이 뒤따르며, 설정 방법에는 두가지가 있습니다.

1. xml 사용

2. annotation 사용

 

Spring Framework 등장 배경

EJB(Enterprise JavaBeans)를 사용하면 애플리케이션 작성을 쉽게 할 수 있으나, 현실에서 반영이 어렵다는 문제가 있습니다. 코드 수정 후 반영하는 과정이 거창해서 효율성이 떨어지고, 어플리케이션 테스트를 위해 반드시 EJB 서버가 필요하기 때문입니다. 또한 기존에 작성된 POJO를 변경해야 한다는 문제가 있습니다.

 

점차 POJO + 경량 프레임워크를 사용하기 시작하였습니다.

 

POJO(Plain Old Java Object)

-Plain : component interface를 상속받지 않는(특정 프레임워크에 종속되지 않는) 특징

-Old : EJB 이전의 java class

-특정 프레임워크에 의존적이지 않은 자바 객체

-특정 기술에 종속적이지 않기 때문에 생산성, 이식성 향상

 

경량 프레임워크

-EJB가 제공하는 서비스를 지원해 줄 수 있는 프레임워크 등장

-Hibernate, JDO, iBatis(MyBatis), Spring 등

 

 

Spring Tools 다운로드

https://spring.io/tools

 

Spring Tools 4 is the next generation of Spring tooling

Largely rebuilt from scratch, Spring Tools 4 provides world-class support for developing Spring-based enterprise applications, whether you prefer Eclipse, Visual Studio Code, or Theia IDE.

spring.io

 

반응형