Home (SpringBoot)2.웹 개발 기초_김영한 스프링부트 기초 강의
Post
Cancel

(SpringBoot)2.웹 개발 기초_김영한 스프링부트 기초 강의

웹 개발 구분

  1. 정적 컨텐츠
  2. MVC와 템플릿 엔진
  3. API

1. 정적 컨텐츠

정적 컨텐츠 원리

  1. SpringBoot에서 localhost:8080/{정적페이지이름.html}에 요청이 들어오면 먼저 controller에 정적적페이지.html에 대한 controller가 있는지 확인한다.
  2. 없다면 정적페이지로 가정한 후 static파일에 정적페이지이름.html에 대한 파일이 있는지 확인한다.
  3. 있다면 해당하는 정적페이지를 반환한다.

2. MVC와 템플릿 엔진

MVC: model, view, controller

1
2
3
4
5
@GetMapping("hello-mvc")
public String helloMvc(@RequestParam("name") String name, Model model){
    model.addAttribute("name",name);
    return "hello-template";
}

MVC와 템플릿 엔진 원리

  1. 내장 톰켓 서버에 local:8080/hello-mvc라는 요청이 들어오면 SpringBoot는 해당하는 Controller를 찾는다.
  2. 주소와 일치하는 Controller가 있다면 returen 값을 확인한다. 이때, RequestParam을 사용했기 때문에 name의 이름을 확인하고 ViewResolver에게 전달한다.
  3. viewResolver는 해당하는 웹 페이지를 연결시켜주는 동시에 name을 같이 변환을 해주어 화면을 출력한다.

3. API

1
2
3
4
5
6
7
8
9
10
11
12
13
@GetMapping("hello-string")
@ResponseBody //http에서 body에 직접 데이터를 입력하겠다는 것
public String helloString(@RequestParam("name")String name){
    return "hello" + name;
}

@GetMapping("hello-api")
@ResponseBody
public Hello helloApi(@RequestParam("name") String name){
   Hello hello = new Hello();
   hello.setName(name);
   return hello;
}

API방식을 사용하기 위해서는 @ResponseBody 어노테이션을 사용한다.

첫번째 함수는 문자열 형식의 api를 반환하는 것이고

두번째 함수는 Hello라는 객체를 api로 반환하는 것이다.

API 원리

  1. 스프링부트에 localhost:8080/hello-api 라는 요청이 들어오면 스프링 컨테이너에서 알맞는 Controller가 있는지 확인한다.
  2. @ResponseBody라는 어노테이션이 있으므로 viewResolver가 아닌 HttpMessageConvter에게 처리하라고 명령한다. 이때 HTTP의 Body 문자 내용을 직접 전달하는 방식으로 진행된다.
  3. 기본 문자 일때는 : StringConverter
  4. 기본 객체 일때는 : JsonConverter
This post is licensed under CC BY 4.0 by the author.

(SpringBoot)1.프로젝트 환경설정_김영한 스프링부트 기초 강의

(ChatGPT)ChatGPT활용방법 정리