Spring MVC

Ahn yi·2022년 10월 5일
0

spring

목록 보기
1/11

학습내용

  • Spring MVC에 대해 알아보자.

Spring 3계층(Controller, Service, Repository)

  • Controller는 제일 바깥 쪽에서 요청을 받고, 응답을 되돌려주는 역할을 한다.
  • Service는 중간에서 구체적인 요구사항을 처리해준다.
  • Repository는 DB와 직접 연결되어 자료를 생성, 조회, 변경, 삭제한다.
  • 각 계층에서 Entity는 직접 사용하지 않고, DTO를 사용한다.

스프링 MVC 동작원리

  1. Client -> DispatcherServlet
    • 가장 앞 단에서 요청을 받아 FrontController라고도 불린다.
  2. DispatcherServlet -> Controller
    • API를 처리해 줄 Controller를 찾아 요청을 전달한다.
    • Handler mapping 에는 API path와 Controller함수가 매칭되어 있다.
    • Controller 에서 요청하는 Request의 정보 ('Model')전달한다,
  3. Contoller -> DispathcerServlet
    • ViewResolver를 통해 View에 Model을 적용한다,
    • View를 Cient에게 응답으로 전달한다.
  4. DispathcerServlet -> Client
    • ViewResolver를 통해 View에 Model 적용한다.
    • View를 Client에게 응답으로 전달한다.

Controller 와 HTTP Request 메시지

  • @PathVariable (X)
    - url경로에 변수를 넣어주는 것
    • ex)/api/select/{id}
  • @RequestParam (O)
    - url이 전달될 때 name, value를 받아온다.
    • /api/select?id="id"&name="name"
  • @ModelAttribute (O)
    - 명명 된 모델 속성에 메서드 매개 변수 또는 메서드 반환 값을 결합하는 어노테이션과 후 웹보기를 제공한다.
  • @RequesBody (X)
    - View 페이지가 아닌 반환값 그대로 Client한테 return 한다.

마지막으로...

Spring MVC에 대해 알아봤지만 Spring은 끝이 없다. 사용자에게 제공해 주는게 너무 많아서 무엇을 제공 받는지 찾아보기가 힘들다. 우선, 프로젝트 진행을 하면서 자주 Annotation에 대해서 파악을 해두면 도움이 될 거 같다. Spring MVC는 그냥 눈에 보이는 흐름 정도 같다. Spring MVC처럼 다른 개념들에 대해 무턱대고 공부를 하기 보다는 자주 사용되는 부분부터 공부를 시작해야 될 거 같다.
알고리즘.. 시간초과로 포기.
난이도가 조금씩 어려워져서 시간을 늘리는 방향으로 생각해봐야겠다. 동시에 SQL테스트도 진행을 하면 좋을듯!

profile
소통을 잘하고싶은 백엔드 개발자

0개의 댓글