컨트롤러란? (FrontController와 Dispatcher)
(1) 요청을 할때마다 Java 파일이 호출된다.
(2) 요청의 종류가 3개이면 3개의 Java 파일이 필요하다.
(3) 하나의 Java 파일에서 모든 요청을 받는 FrontController 사용한다.
(4) 너무 많은 요청이 한곳으로 모이는 것을 방지하기 위해 도메인 별로 분기
(5) 분기의 일은 Dispatcher가 해준다.
스프링부튼 Servlet으로 만들어졌다.
자바에서 Servlet이란 Java로 웹을 할 수 있는 기술이다.
Servlet 자체도 Java파일이다.
로그인 요청을 하려면 Login.java 파일에 요청을 해야한다.
이러한 파일들을 Servlet 파일이라고 한다.
회원가입 요청을 하려면 Join.java 파일에 요청을 해야한다.
게시글 쓰기 요청을 하려면 Write.java 파일에 요청을 해야한다.
이렇게 진행할 경우 너무 번거롭다.
지금 같은 경우에는 로그인, 회원가입, 게시글 쓰기 총 3개의 java 파일이 필요하다.
3개의 파일이 아닌 하나의 java 파일에서 모든 요청을 받는 FrontContrller을 사용하는 것이다.
예를 들어, 100개의 요청을 하나의 java 파일로 넘기는 경우에 안좋은 점은 if문이 100개가 필요할 것이다.
이를 방지하기 위해 도메인 별로 분기를 해주는 것이다.
USER 테이블과 BOARD 테이블 그리고 PRODUCT 테이블이 있다고 가정하자.
우선 로그인과 회원가입은 UserController.java로 처리를 할 것이다.
도메인이란 예를들어, 이 세상에서 남자와 여자만 있다고 범주를 주는 것이다.
글쓰기, 글삭제, 글수정은 BoardController.java로 처리를 하겠다는 것이다.
상품등록, 상품목록보기라는 범주를 만들어서 ProductController.java에서 처리를 하겠다는 것이다.
이런식으로 분기를 해주는 일을 해주는 것이 Dispatcher가 해준다.
이를 정확하게 말하면 Servlet Dispatcher 혹은 Request Dispatcher라고 한다.
Dispatcher는 내가 직접 만들지 않아도 이미 만들어져있다.
Controller도 이미 만들어져 있기 때문에 어떠한 정의만 내리면 바로 만들 수 있게 설정이 되어 있다.
내가 만들어야 하는건 Controller만 만들면 된다.
그리고 Controller만 잘 다룰 수 있으면 어떤 요청에 대한 모든 처리를 할 수 있다.
'인스타그램(Springboot,JPA,Security,Oauth)' 카테고리의 다른 글
(12) 스프링부트 Controller - 쿼리스트링, 주소변수매핑 (0) | 2023.02.25 |
---|---|
(11) 스프링부트 Controller - http 4가지 요청 방식 (0) | 2023.02.25 |
(9) 환경설정 - yml 파일 이해하기 (0) | 2023.02.24 |
(8) 환경설정 - 시작프로젝트 다운로드(git) (0) | 2023.02.24 |
(7) 환경설정 - PostMan과 JSON Viewer 설치 (0) | 2023.02.24 |