[내배캠/TIL(5/26)]Spring의 mvc 구조

손홍서·2022년 5월 26일
1

Spring

목록 보기
2/24
post-thumbnail

day25 TIL

day25 느낀점

오늘 하루는 정말 후딱 지나갔다. 확실히 Spring이나 오늘 실강으로 들은 프론트 배포 부분 모두 새로워서 하다보니 빨리 지나가는 것 같다. Spring은 강의는 쉬운데 막상 혼자하려면 잘 안된다. 혼자 연습을 많이 해보는게 중요할 것 같다.

MVC 패턴

Model, View, Controller의 줄임말로 어플리케이션을 구성하는 요소를 역할에 따라 3가지로 나누어 구분한 패턴이다.

  • Model: 어플리케이션의 데이터!
    • 사용자가 이용하는 모든 데이터를 가지고 있다.
  • View: Client에 보여지는 결과화면 즉, 시각적인 요소를 의미한다.
  • Controller: Client 요청이 들어왔을때 처리하면서 Model과 View를 연결하는 역할을 한다.

MVC 처리순서

  1. Client의 요청이 오면 front controller(DispatherServlet.class)가 요청을 받는다.

  2. 그러면 등록된 핸들러(@Controller 인자를 통해 등록됨) 중 매핑되는 핸들러가 있다면 어댑터를 통해 컨트롤러를 호출한다.

  3. 컨트롤러는 해당 요청을 처리하는 서비스를 통해 핵심 비지니스 로직을 수행한다.

    • 컨트롤러가 역할이 너무 많기 떄문에 서비스가 핵심 비지니스 로직을 수행하고 컨트롤러는 이를 호출하는 역할을 한다.
    • 서비스가 작업을 수행할때 데이터에 접근해야한다면 DTO를 통해 한다. 왜냐면 그냥 데이터 객체를 변경해 버린다면 문제가 생길 수 있기 때문이다.
  4. 서비스는 완료된 결과를 컨트롤러에 전달한다.

  5. 컨트롤러는 모델에 객체에게 요청에 맞는 뷰 정보를 담아(ModelAndView) front controller(DispatherServlet.class)에 전달한다.

  6. front controller(DispatherServlet.class)는 ViewResolver에게 전달받은 정보를 전달하면 ViewResolver는 View를 반환한다.

  7. front cotroller는 전달받은 View를 렌더링하고 Client에 보낸다.


참고자료
https://iri-kang.tistory.com/4
인프런의 김영한 강사님의 '스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술' 강의
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard

profile
Hello World!!

0개의 댓글