[스프링 입문] 스프링 웹 개발 기초

JYC·2024년 1월 1일

[SPRING STUDY]

목록 보기
3/39

정적 컨텐츠

  • 서버에서 파일을 웹에 그대로 전달.

MVC와 템플릿 엔진

  • 서버에서 변형 후 HTML로 내어주는 방식

API

  • JSON 구조로 클라이언트에게 전달하는 방식

1. 정적 컨텐츠

resources/static 폴더에 html 파일 작성.

강의 중

  • resources/static 폴더에 hello-static.html 작성
  • 크롬 브라우저에 localhost:8080/hello-static.html 로 접속할 수 있음.

작동 방식

2. MVC와 템플릿 엔진

MVC

  • M(Model) : Controller에서 처리한 것을 View에 담아 화면 데이터 관리함.
  • V(View) : 화면 표시 부분 수행.
  • C(Controller) : 비지니스 로직 / 서버 뒷단 관련 일 수행.

MVC와 정적 컨텐츠 차이

  • 정적 컨텐츠 - 고정된 컨텐츠 다룸.
  • MVC - 동적인 데이터 처리를 다룸.

작동 방식

  • Controller
@Controller
	public class HelloController {
	@GetMapping("hello-mvc")
	public String helloMvc(@RequestParam("name") String name,Model model) {
 		model.addAttribute("name", name);
 		return "hello-template";
 	}
}
  • View(템플릿 파일)
<html xmlns:th="http://www.thymeleaf.org">
<body>
<p th:text="'hello ' + ${name}">hello! empty</p>
</body>
</html>
  • 실행 결과

3. API

작동 방식

  • Controller + hello Class

public class HelloController {
  @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 void setName(String name) {
              this.name = name;
          }

          public String getName() {
              return name;
          }
      }
  }
}

@ResponseBody 추가

  • 실행 결과

만약 retrun에서 hello가 객체라면?
-> JsonConverter가 동작.
만약 hello가 단순 문자라면?
->StringConverter가 동작.

profile
열심히 하기 1일차

0개의 댓글