정적컨텐츠는 서버에서 아무것도 하지않고 파일 그대로 웹 브라우저에 내려주는 것이다.
다음과 같이 src > main > resources > static 폴더안에 제작한다.
관련 Controller가 따로 존재하지않으며 url에 파일을 입력하여 실행한다.
정적 컨텐츠는 동적컨텐츠와 같이 사용되는데
예를들어 쿠팡 화면을 예를 들어 보겠다.
다음에서 상단의 카테고리나 각종 배너들은 모든 사용자에게 보여주는 것이기 때문에 정적 컨텐츠로 제작한다.
하지만 로그인을 하게 되면 사용자마다 다른 화면을 주어야하고 그런것을 동적 컨텐츠로 제작하는것이다.
MVC는 Model,View,Controller를 한번에 부르는 말이다.
Controller에서는 Model을 통해 데이터를 가져오고 그 정보를 바탕으로 시각적인 표현을 담당하는 View를 제어하여 사용자에게 제공한다.
Model은 application의 정보 즉 데이터를 나타낸다.
View는 데이터를 기반으로 사용자에게 보여줄 화면을 나타낸다.
Controller는 Model과 View를 잇는 다리역할을 하는데, 즉 "이벤트 처리"를 담당하는 역할을 한다.
다음과 같이 controller 와 view를 따로 제작하고
controller 에서는
@GetMapping("hello-mvc")
public String helloMvc(@RequestParam("name") String name,Model model){
model.addAttribute("name",name);
return "hello-template";
}
다음과 같이 Model을 받아 View에게 보여주는 다리역할을 하고 있다.
그렇게 Model을 통해 받은 데이터를 View에게 보여주도록 하였다.
이렇게 처리할경우 장점이 아주많다!!
MVC를 사용하여 애플리케이션을 제작하면 각각의 맡은 바에만 집중할 수 있어 혼란을 주지 않는다. 그렇게 하여 유지보수성, 확장성, 유연성이 증가하게 된다.
API 방식은 운영체제와 응용프로그램 사이의 통신에 사용되는 언어나 메세지를 말한다.
이전에는 완성된 HTML을 브라우저에게 주었지만 요즘에는 데이터만을 전달하는 방식으로 변하여 가고있다.
이것을 사용하는 방식이 API이다.
이때 @Responsebody를 사용하게 되는데, 데이터 자체를 전달하기 위한 용도임을 나타내는 annotation이다.
이때 객체를 반환하면 기본값으로 JSON 방식을 사용하게 된다.
//JSON 방식
@GetMapping("hello-api")
@ResponseBody
public Hello helloApi(@RequestParam("name") String name){
Hello hello = new Hello();
hello.setName(name);
return hello;
}
static class Hello{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
다음과 같이 Hello라는 객체를 생성하고 API 방식을 이용하여 실행해 보았다.
결과화면으로 JSON 방식으로 출력되게 된다.
JSON 방식은 간단하게 말하면 {"Key":"Value"} 페어를 이용하는 방식이다.