Back-end/Spring

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

Dev다D 2021. 3. 16. 21:19
반응형
정적 컨텐츠

 

정적 컨텐츠

  • 'welcome page'처럼 server에서 하는 것 없이 파일 그대로 'web browser'에 내려주는 것

 

수업 자료

 

MVC와 템플릿 엔진

 

MVC

  • Model, View, Controller
  • 템플릿엔진(jsp, php) html을 그냥 주는 것이 아니라 서버에서 프로그래밍해서 동적으로 바꿔서 내려주는 것

 

View

  • 화면을 그리는데 모든 역량을 집중

 

Model, Controller

  • business logic과 관련, 내부적인 것을 처리하는 것에 집중

 

수업 자료

 

API

 

API

  • JSON 데이터 구조 포맷으로 클라이언트에게 전달하는 것
  • 서버끼리 통신할 때도 API로 소통

 

package hello.hellospring.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
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 String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }
    }
}

 

 

API - JSON 방식으로 데이터 전달받은 화면

 

@ResponseBody 사용 원리

  • HTTP의 BODY에 문자 내용을 직접 반환
  • 'viewResolver' 대신에 'HttpMessageConverter'가 작동
  • 기본 문자처리: 'StringHttpMessageConverter'
  • 기본 객체처리: 'MappingJackson2HttpMessageConverter'
  • byte 처리 등등 기타 여러 HttpMessageConverter가 기본으로 등록되어 있음

 

수업 자료

 


본 내용은 inflearn의  '스프링 입문' 강의를
참고하여 작성한 내용입니다.

 

반응형