-
뷰 템플릿 & MVC 패턴, 역할, 실행 흐름back-end/SpringBoot 입문 2022. 2. 21. 10:25728x90
뷰 템플릿 페이지가 출력되기까지, MVC의 역할과 실행 흐름
MVC의 역할 - View Templates : 보여지는 화면 담당. 웹 페이지를 하나의 틀로 만들고 변수로 재구성시킴
- Controller : 화면 처리 로직 -> 라우팅
- Model : 데이터 관리
위와 같은 역할들이 어떤 흐름으로 처리되는지 살펴보자.
웹 서비스는 클라이언트와 서버의 소통으로 이루어진다. 스프링 부트는 서버의 역할을 수행해준다. 자세히 들어다보면 Model, View, Controller의 유기적 역할분담으로 이루어진다. - Controller : 클라이언트로 부터 요청을 받음
- View : 최종 페이지를 만들어줌
- Model : 최종 페이지에 쓰일 데이터들을 View에게 전달
MVC란 자그만치 3가지 기술이 합쳐진 콤비네이션! 간단한 예시
View Templates : greetings.mustache
<html> <head> <meta charset="UTF-8"> .... <body> <h1>홍팍님, 반갑습니다!</h1> </body> </html>
Controller : controller.java
@Controller //자바클래스를 컨트롤러로 선언 public class controller { @GetMapping("/hi") //접속할 url주소 매핑 public String niceToMeetYou() { return "greetings"; //templates/greetings.mustache -> 브라우저로 전송! } }
hi주소로 요청을 보내면 greetings를 반환해준다. 여기서 질문하나
템플릿이라메 일반 html 파일이랑 다를게 뭐임?
mustache 파일을 조금 수정해봄
(mustache는 서버 사이드 템플릿 엔진임. 타임리프나 등등 있음.)
View Templates : greetings.mustache
<html> <head> <meta charset="UTF-8"> .... <body> <h1>{{username}}님, 반갑습니다!</h1> </body> </html>
username을 내가 원하는대로 바꿀거임. 페이지를 템플릿화 시켜버리겠다.
그럼 이제 데이터를 쓸 수 있게 모델을 만들어야되는데 새로 만들까?? ㄴㄴㄴ
컨트롤러로 다시가보자.
Controller : controller.java
@Controller public class controller (Model model) { //모델을 파라미터로 받아옴 model.addAttribute("usernmae", "hongpark") //addAttribute() : 변수를 가져옴, 뒤에는 변경시킬 값 @GetMapping("/hi") public String niceToMeetYou() { return "greetings"; } }
username부분을 내가 원하는대로 model로 변경함 정리한다.
728x90'back-end > SpringBoot 입문' 카테고리의 다른 글
인텔리제이(intelliJ)에서 롬복(Lombok) 설정하기 (0) 2021.09.01