인프런 스프링-5

Cloudman·2022년 11월 26일
0

항해99 스프링 공부

목록 보기
6/15
post-thumbnail

MVC 와 템플릿 엔진


Model, View, Controller
지금 가장 많이 쓰이는 방식이다.
컨트롤러는 비즈니스 로직 및 서버 뒷단에 있는것들은 여기서 처리하고 Model 에 관련된 것들을 담아서 View 로 넘겨주는 방식

지난번에 이어서...

새롭게 html 파일을 하나 만들어 준다.

맵핑 구문을 하나 더 추가해준다.

이후 html 파일에 조금 내용을 적어주고 나서 실행하고 사이트에 기존에 하던대로 들어가 보면

위처럼 에러가 뜨는것을 볼 수 있다.

스프링에 뜬 에러 구문을 보면 파라미터 name 이라는 것이 없다고 한다.

해당 위치에 ctrl + P 를 눌러주면 옵션을 볼 수 있다.
저 위치에 required() 라는 옵션이 있는 것을 볼 수 있다.

해당하는 required() 라는 옵션은 무조건 넣어줘야 하는데 기본값이 true 이기 때문에 굳이 넣지 않아도 상관은 없다.

이제 사이트로 돌아가서 저렇게 파라미터 값을 지정해서 넘어가면 정상적으로 작동한다.




위의 내용들에 대해서 설명을 하자면 아래와 같다.

이를 그림으로 표현하면

최종 과정 설명

  1. 웹브라우저 에서 localhost8080/hello-mvc 를 넘기면
  2. 스프링부트가 띄우는 내장톰캣서버 를 먼저 거친다
  3. 내장톰캣서버 hello-mvc 라는 것이 왔다고 스프링 부트로 준다.
  4. 스프링은 hello-controllerhello-mvc 가 메서드가 매핑이 되 있다는것을 알고 호출해준다.
  5. 리턴 해줄 때는 hello-template 가 되어있어서 해당 html 파일로 리턴해준다.
  6. 이 때, model 안에 키는 name 이고 값은 spring! 이라고 스프링에 넘겨준다.
  7. 그럼 스프링이 화면과 관련된 기능을 하는 뷰리졸버 에 넘겨준다. (뷰를 찾아주고 템플릿에 연결시켜주는 역할)
  8. 이제 뷰 리졸버가 templateshello-template.html 이라는 리턴의 String hello-template 와 같은 녀석을 찾아서 타임리프 엔진에 처리해달라고 넘긴다.
  9. 그럼 템플릿 엔진이 랜더링 후에 HTML 에 변환 후 넘겨준다.
profile
코린이

0개의 댓글