프로그래밍 언어/Java

[java spring] MVC 모델 공부

happy_life 2022. 3. 6. 17:20

MVC 모델

 - model

 - view

 - controller

 

 

*개념

모델(Model)

-DATA, 정보들의 가공을 책임지는 컴포넌트.

 

뷰(View)

-사용자에게 보여지는 부분, 유저 인터페이스를 의미

-MVC 패턴은 여러 개의 뷰가 존재할 수 있으며, 모델에게 질의하여 데이터를 전달받는다.

 

컨트롤러(Controller)

-모델(Model)과 뷰(View) 사이를 이어주는 브릿지 역할을 함

-모델이나 뷰로부터 변경 내용을 통지 받으면 이를 각 구성 요소에게 통지

 

 

*특징

 -각 컴포넌트는 자신이 맡은 역할만을 수행 후 다른 컴포넌트로 결과만 넘겨주면 되기 때문에 시스템 결합도를 낮출 수 있음 ( 시스템 결합도가 낮아야 유지보수 편리)

 

 -다수의 뷰와 모델이 컨트롤러를 통해 연결되기 떄문에 컨트롤러가 불필요하게 커지는 단점이 존재.

massive-MVC

 

 

*코드 예제

 

Controller 코드 예제

package hello.hellospring.controller;

import org.springframework.boot.Banner;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class HelloController {

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

}

view 코드 예제 (hello-template.html)

<html xmlns:th="http://www.thymeleaf.org">
<body>
<p th:text="'hello' + ${name}">hello! empty</p>
</body>
</html>

 

HellloController가 "hello-mvc"라는 url을 가진 서버에서 동작하고 return의 "hello-template"를 이름으로 하는 view로 가서 비즈니스 로직을 실행합니다.

 

Request Param으로 담긴 "티스토리"가 model에 담기고 템플릿(view)으로 담기고 ${name} 모델에서  name 의 값을 꺼내 넣는다.

 

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/lecture/49577?tab=note&volume=1.00&mm=null 

 

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 학습 페이지

지식을 나누면 반드시 나에게 돌아옵니다. 인프런을 통해 나의 지식에 가치를 부여하세요....

www.inflearn.com