이번 강의에서는 웹 개발하는 방법을 크게 세가지로 나누고 정리해 보았다. 크게 정적 컨텐츠, MVC와 템플릿 엔진, API 방식이 있다.
/resource/static
폴더 안의 html을 spring 내에서 읽어서 바로 띄워줄 수 있다.http://localhost:8080/hello-static.html
로 접속하면 컨트롤러를 타지 않고 바로 hello-static.html을 띄워준다.서버단에서 html을 동적으로 변경하여 웹 브라우저로 전달한다. 예를 들면 jsp
Model, View, Controller(MVC 패턴)
요즘의 개발 패턴이나, 이미 레거시하다.
controller 에서 ViewResolver로 던진다
@GetMapping("hello-mvc")
public String helloMvc(@RequestParam("name") String name, Model model) {
model.addAttribute("name", name); // hello-template.html에 name을 동적으로 넣어주고 웹 브라우저로 반환
return "hello-template";
}
안드로이드, IOS 등 개발 시 JSON 구조의 포맷으로 클라이언트에게 데이터를 전달한다.
Vue, React 등의 클라이언트 혹은 서버끼리 통신 시에도 사용된다.
@ResponseBody
가 붙어있다면 ViewResolver에게 보내지 않고 그대로 데이터를 return 한다. ( return 내용을 http body부에 직접 넣어줌) @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;
/* getter setter
java bean 표준 방식 or property 접근 방식 이라고 부름
*/
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
이미 알고 있는 내용이지만 개념적으로 정리하는 시간이라서 좋았다. 빨리 완강하고 더 깊이있는 내용을 공부하고 싶다.