[Spring Boot] MVC와 템플릿 엔진

GyeongEun Kim·2021년 6월 10일
0

Spring Boot

목록 보기
4/12
post-thumbnail
post-custom-banner

본 게시물은 인프런 김영한 강사님의 '스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술' 강의를 듣고 개인 공부용으로 작성되었음을 알립니다.


정적 콘텐츠

스프링부트는 정적 컨텐츠 기능을 자동으로 제공한다. 정적 컨텐츠는 static폴더에 저장을 하면 된다. 정적 컨텐츠는 말 그대로 정적이므로 이 파일에 어떤 프로그래밍을 할 수는 없다. 따라서 서버에서 정적 컨텐츠를 반환할 때 파일을 그대로 전달한다.

페이지 소스를 보면 다음과 같이 html파일이 그대로 전달이 된 것을 볼 수 있다.

정적 콘텐츠의 동작 방식은 다음과 같다

웹 브라우저에서 hello.html(정적 콘텐츠)를 요청하면 내장 톰캣 서버가 요청을 받아 스프링에게 넘긴다.

스프링은 컨트롤러 쪽에 hello라는 컨트롤러가 있는지 먼저 찾는다.

만약 관련 컨트롤러가 없으면 스프링부트가 resources/static/hello.html이라는 정적 콘텐츠를 찾아서 웹 브라우저에게 반환한다.

MVC와 템플릿 엔진

MVC란?

model, view, controller

  • model : db에 접근
  • view : 보여지는 화면
  • controller : 내부 동작 처리

예를 들어 웹 브라우저에서 localhost:8080/hello-mvc 를 요청했다면, 내장 톰캣 서버가 이를 스프링에게 알린다.

그러면 관련된 helloController (mapping이 되어있음) 가 model에서 name:spring이라는 데이터를 꺼내어 hello-template과 함께 return한다.

 @GetMapping("hello-mvc")
    public String helloMvc(@RequestParam(name= "name") String name, Model model) {
        model.addAttribute("name",name);
        return "hello-template";
    }

그 후에 viewResolverhello-template이라는 이름의 view가 있는지 찾는다.

templates폴더 내에 hello-template.html이 존재하므로 , 이 view에 템플릿 엔진 처리를 완료한 후 , 웹 브라우저에 전달한다.

profile
내가 보려고 쓰는 글
post-custom-banner

0개의 댓글