오늘 공부한 내용

  • Spring 심화주차 영상 시청
  • 코드카타 2문제
  • 베이직반 보충수업 / 디스패처 서블릿, CSR, SSR

 

어려웠던 내용

  • 개인 과제 / 테스트 코드 구현
    • 약 2시간 가량 작성하며 고민했으나 진도가 나가지 않음... 테스트코드 자체에 대한 공부 필요

 

새로 알게된점

  • DispatcherServlet

디스패처 서블릿의 dispatch는 "보내다"라는 뜻을 가지고 있다.

그리고 이러한 단어를 포함하는 디스패처 서블릿은 HTTP 프로토콜로 들어오는 모든 요청을 가장 먼저 받아 적합한 컨트롤러에 위임해주는 프론트 컨트롤러(Front Controller)라고 정의할 수 있습니다.

 

  • 디스패처의 장점

과거에는 모든 서블릿을 URL 매핑을 위해 web.xml에 모두 등록해주어야 했지만, dispatcher-servlet이 해당 어플리케이션으로 들어오는 모든 요청을 핸들링해주고 공통 작업을 처리면서 편리하게 사용가능 합니다.

 

  • 디스패처 서블릿의 흐름

  1. 처음 클라이언트에서 요청이 오면 디스패처 서블릿이 해당 요청을 받는다.
  2. Handler Mapping을 통해 요청에 알맞은 컨트롤러를 찾아낸다.
  3. 찾아낸 컨트롤러를 Handler Adapter를 통해 해당 컨트롤러의 메서드를 실행시킨다.
  4. 컨트롤러는 요청을 처리한 뒤 처리한 결과와 해당 뷰 정보(ModelAndView)를 다시 디스패처 서블릿에게 전달한다.
  5. 받은 정보로 디스패처 서블릿은 View Resolver를 통해 View 파일을 찾는다.

 

  • CSR ( Client Side Rendering )

SSR과 달리 렌더링이 클라이언트 쪽에서 일어나는 형식, 서버는 요청을 받으면 클라이언트에 HTML과 JS를 보내준다. 클라이언트는 그것을 받아 렌더링을 시작한다.

  1. 기본적인 HTML구조를 받고 JavaScript가 실행되면서 필요한 데이터를 불러와 화면을 작성.
  2. 서버에 부하가 적습니다.
  3. 네트워크를 많이 사용하기 때문에  첫 진입 시 로딩 속도가 길다.
  4. HTML 파일을 하나만 받아와서 작동하다 보니 각각 페이지에 대한 정보를 담기 힘들어 SEO에 취약.

 

  • SSR ( Server Side Rendering )

서버쪽에서 렌더링 준비를 끝마친 상태로 클라이언트에 전달하는 방식

  1. 모든 HTML을 받아서 렌더링만 하면 됩니다.
  2. 서버에 부하가 많이 갑니다.
  3. 완성된 페이지를 빠르게 볼 수 있습니다.
  4. 초기 진입은 CSR보다 빠를지 몰라도 페이지 이동은 SSR이 더 느린 편에 속함.
  5. Javascript 다운로드가 늦어진다면 기능이 동작하지 않는 경우가 있음.

 

오늘의 느낀점

박성원 튜더님의 보충강의는 정말 이해가 잘간다.

영상을 보면서 의문을 가지거나 혹은 이해가지 않는 개념을 하나하나 세세히 알려주면서 이해를 도와주기 때문에 필수적으로 들으면서 복습에도 좋은 공부가 된다.

+ Recent posts