spring MVC 패턴

<전체적인 실행 순서>
Request -> DispatcherServlet -> HandlerMapping -> Controller -> Service -> DAO -> DB
-> DAO -> Service -> Controller -> DispatcherServlet -> ViewResolver -> View -> Response
-HTTP 프로토콜로 들어오는 모든 요청을 가장 먼저 받아 적합한 컨트롤러에 위임해주는 프론트 컨트롤러(Front Controller):사용자의 모든 요청을 전달받는곳
-클라이언트의 요청을 전달받아 해당 요청에 대한 컨트롤러를 선택하여 클라이언트의 요청
을 전달한다.
-또한 컨트롤러가 반환한 값을 View 에 전달하여 알맞은 응답을 생성한다.
-클라이언트가 요청한 URL 을 처리할 컨트롤러를 지정한다.
-클라이언트로부터 어떠한 요청이 오면 Tomcat(톰캣)과 같은 서블릿 컨테이너가 요청을 받게 된다.
그리고 이 모든 요청을 프론트 컨트롤러인 디스패처 서블릿이 가장 먼저 받게 된다. 그러면 디스패처 서블릿은 공통적인 작업을 먼저 처리한 후에 해당 요청을 처리해야 하는 컨트롤러를 찾아서 작업을 위임한다.
-클라이언트의 요청을 처리한 후 그 결과를 DispatcherServlet에 전달한다.
-스프링에는 컨트롤러를 지정해주기 위해 어노테이션 @Controller 사용
-개발자가 직접 개발하는 컴포넌트로, 비지니스 로직을 수행하는 컴포넌트
-Service가 알맞은 정보를 가공하는 과정을 ‘비즈니스 로직을 수행한다’ 라고 한다.
-개발자가 직접개발하는 컴포넌트로, Database에 직접적으로 접근하여 SQL 문을 실행할 수 있는 객체
출처: https://devscb.tistory.com/119
https://mangkyu.tistory.com/18
https://velog.io/@hyunjong96/Sprin-Spring-MVC-DispatcherServlet
자바웹을 다루는 기술 - 이병승