※ 해당 강의듣고 나서 공부한 것을 정리하는 포스트입니다.
정적 컨텐츠란?
이름 그대로 정적인 화면을 보여주는 컨텐츠를 뜻한다. 일반 적인 웹사이트의 경우 백엔드(서버)에서 정보를 받아와서 사용자에게 보여주지만 정적 컨텐츠의 경우 서버와의 소통 없이 단순히 정해진 것만을 보여주는 것을 뜻한다.
<!DOCTYPE HTML>
<html>
<head>
<title>static content</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
정적 컨텐츠 입니다.
</body>
</html>
위 와같이 코드를 작성했다면 작성된 코드를 그대로 출력해주는 것을 정적 컨텐츠라고 한다.
MVC란?
MVC는 Model, View, Controller의 약자로 웹사이트를 구동하기 위한 소프트웨어 디자인 패턴이다. 여기서 가장 핵심은 관심사를 분리하는 것에 있다. View는 사용자에게 화면을 보여주는 것에 더 집중하고 Model은 정보를 처리하는 것에 더 집중하도록 만든 디자인 패턴으로 유지보수단계에서 더 쉽고 편리하게 관리할 수 있도록 해주는 것이 특징이다.
API(Application Programming Interface)
강의에서는 API의 활용 예시를 설명해주셨기에 우선은 강의 내용 위주로 정리해볼 예정입니다.
위에서 MVC를 활용하여 웹사이트를 만든다고 했는데 이 때 model에서 viewResolver라는 것에 여러 정보를 넘겨주면서 그 정보를 사용자에게 보여주게 된다. 하지만 @ResponseBody를 사용하면 viewResolver를 사용하지 않으면서 사용자에게 정보를 보여줄 수 있게되는데 이게 API를 활용한 방법이다.
@GetMapping("hello-mvc")
public String helloMvc(@RequestParam("name") String name, Model model) {
model.addAttribute("name", name);
return "hello-template";
}
@GetMapping("hello-string")
@ResponseBody
public String helloString(@RequestParam("name") String name){
return "hello " + name;
}
위의 두 코드는 스프링 부트를 실행시킨 뒤 각각
http://localhost:8080/hello-mvc?name=spring
http://localhost:8080/hello-string?name=spring
라는 주소로 접속했을 때 같은 결과를 보여준다.
하지만 결과를 소스코드로 보았을 때의 정보는 차이를 보인다. 같은 결과라도 정보를 전달하는 방식에 따라 차이를 보일 수 있다.
'코딩 공부 > SpringBoot' 카테고리의 다른 글
마이바티스 The column index is out of range (0) | 2023.09.21 |
---|---|
인텔리제이 스프링부트 실행 오류 - 환경 변수 주입 안되는 오류 (0) | 2023.09.20 |
스프링 시큐리티 로그인 구현 + jwt (스프링 부트 3.0 이상, 시큐리티 6.1 이상) (0) | 2023.06.27 |
application.yml 외부 환경 변수 사용 (0) | 2023.06.24 |
TDD - 테스트 주도 개발 (0) | 2022.12.26 |