Controller (Frontcontroller, Dispatcher)

hee·2023년 8월 2일
0

스프링부트는 프레임워크이다. 스프링부트는 Servlet이라는 기술로 만들어졌는데, servlet은 java로 web을 할 수 있는 기술이다.
프레임워크=불필요한 작업을 하지 않도록 형식을 만들어 놓은 툴

  1. 클라이언트(웹 브라우저)가 요청을 할 때마다 java파일이 호출 된다.

    로그인 요청 - > login.java
    회원가입 요청 -> join.java
    게시글 요청 -> write.java

    이런식으로

  2. 요청의 종류가 3개면 3개의 java파일이 필요해짐

  3. 하나의 java파일에서 모든 요청을 받는 Frontcontroller 를 사용하기로 함

    로그인, 회원가입, 게시글 요청을 하나로 -> ForontController.java
    문제는 ; ex) 요청이 많아지면 100개..else if문도 100개..

  4. 너무많은 요청을 한 곳으로 모이는 것을 막기 위해 도메인(범주를 정해주는 것)별로 분기

    User테이블
    로그인 -> UserController.java
    회원가입 -> UserController.java
    Board테이블
    글쓰기 -> BoardController.java
    글삭제 -> BoardController.java
    글수정 -> BoardController.java
    Product테이블
    상품등록 -> ProductController.java
    상품 목록 보기 -> ProductController.java

    > 이는 Frontcontroller 패턴을 따르면서 도메인별로 나눈 것이다.

  5. 위와같이 요청을 해당 컨트롤러로 보내는 분기 일은 Dispatcher가 한다. (ServletDispatcher, RequestDispatcher라고도 함)

이와같은 Spring Framework(Spring Boot)는 이 Dispatcher가 이미 만들어져있고 Controller도 만들어져 있어서 내가 정의만 내리면 사용 가능하다.
Controller만 만들면 된다.

profile
고군분투 코린이의 코딩일기

0개의 댓글