Programming/Spring

컨트롤러란, 기본적인 동작방식 (FrontController, Dispatcher)

JunFe 2021. 8. 11. 18:57
반응형

본 내용은 이지업 사이트의 스프링부트 SNS프로젝트 - 포토그램 만들기 강의를 들은 내용을 기반으로 작성하였습니다.

 

Spring Boot는 Servlet으로 만들어져 있습니다.

 

Servlet이란?

- 서버에서 웹페이지 등을 동적으로 생성하거나 데이터 처리를 수행하기 위해 자바(Java)로 작성된 프로그램을 말한다.

- Java로 매핑할 수 있는 기술

 

예시로 

 

로그인 요청 -> Login.java

회원가입 요청 -> Join.java

게시물 쓰기 -> write.java

 

이렇게 요청의 갯수에 따라 Java파일(Servlet 파일)이 필요하다.

이는 매우 비효율적이다. 이것을 보완하기 위해 Controller를 사용한다고 생각하면 된다. Controller를 사용하면 아래와 같은 구조.

 

모든 요청을 FrontController.java에서 받고 있다.

여기에는 또 문제가 존재한다. 요청이 엄청나게 많아진다면 한 Controller에서 그 요청을 다 받는 것은 좋은 구조가 아니다.

그렇다면 어떻게 해야하는가?

 

Dispatcher를 통해 Domain 별로 분기해주고 Controller를 이용하여야 한다.

스프링 부트의 경우 Dispatcher가 이미 만들어져있고, 사용자는 Controller만 만들고  적절하게 사용하면 된다.

반응형