MVC 모델
- model
- view
- controller
*개념
모델(Model)
-DATA, 정보들의 가공을 책임지는 컴포넌트.
뷰(View)
-사용자에게 보여지는 부분, 유저 인터페이스를 의미
-MVC 패턴은 여러 개의 뷰가 존재할 수 있으며, 모델에게 질의하여 데이터를 전달받는다.
컨트롤러(Controller)
-모델(Model)과 뷰(View) 사이를 이어주는 브릿지 역할을 함
-모델이나 뷰로부터 변경 내용을 통지 받으면 이를 각 구성 요소에게 통지
*특징
-각 컴포넌트는 자신이 맡은 역할만을 수행 후 다른 컴포넌트로 결과만 넘겨주면 되기 때문에 시스템 결합도를 낮출 수 있음 ( 시스템 결합도가 낮아야 유지보수 편리)
-다수의 뷰와 모델이 컨트롤러를 통해 연결되기 떄문에 컨트롤러가 불필요하게 커지는 단점이 존재.
*코드 예제
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 의 값을 꺼내 넣는다.
'프로그래밍 언어 > Java' 카테고리의 다른 글
[java] Stream 개념 공부 (0) | 2022.03.08 |
---|---|
[Android java] 이미지 fade in fade out 애니메이션 주는 방법 (0) | 2022.03.08 |
[java spring boot] Please set the JAVA_HOME variable in your environment to match thelocation of your Java installation. 에러 해결 (0) | 2022.03.05 |
[Android java] 해상도 별 이미지 크기 변경 하는 방법(이미지 대응) (0) | 2022.03.03 |
[Android java] Mpchart specific Xlabel custom color (0) | 2022.02.23 |