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

Hyeonjun·2022년 8월 15일
0

스프링입문

목록 보기
2/8
post-thumbnail
post-custom-banner

정적 컨텐츠

파일을 웹 브라우저에 바로 전달하는 방식

스프링 부트에서 정적 컨텐츠를 지원함.

resources>static 에 html 파일로 저장.

동작 원리

  1. 내장 Tomcat 서버가 요청을 받음.
  2. Controller에 hello-static으로 매핑된 컨트롤러가 있는지 찾음.
  3. resources에 hello-static이 있는지 확인
  4. 있다면 hello-static.html을 return

MVC와 템플릿 엔진

서버에서 html을 변형 후 웹 브라우저로 전달

MVC

  • Model, View, Controller
  • View는 페이지를 그리는 것에만 집중
  • Model과 Controller는 비즈니스 로직을 처리

MVC 패턴으로 만들기

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

동작 방법

  1. hello-mvc로 접속할 때, name을 parameter로 받음.
  2. model에 name을 key 값으로, parameter로 받은 name을 value로 전달하게 됨.
  3. hello-template에서 처리 후 html로
  4. 변환한 html을 웹 브라우저로 return

API

JSON 포맷으로 데이터를 클라이언트에 전달함.

혹은 서버간 통신에 사용함.

JSON

key-value로 이루어진 데이터 구조

최근에는 xml보단 json 방식으로 진행함.

Getter / Setter

  • Java Bean 규약
  • 변수를 접근할 때, getter, setter로 접근해야함.
  • property 접근 방식이라고 하기도 함.

동작 방식

  1. api 요청이 옴.
  2. hello-api가 컨트롤러에 있는지 확인함.
  3. @ResponseBody를 확인하고 viewResolver 대신 HttpMessageConverter가 동작함.
  4. HttpMessageConverter는 객체/문자열을 파악하고 각각에 맞춰 처리함.
    1. 문자처리: StringHttpMessageConverter
    2. 객체처리: MappingJackson2HttpMessageConverter
    3. byte 처리 등등 기타 여러 HttpMessageConverter가 기본으로 등록되어 있음.

클라이언트의 HTPT Accept 헤더와 서버의 컨트롤러 반환 타입 정보 둘을 조합해서 HttpMessageConverter가 선택된다.

profile
더 나은 성취
post-custom-banner

0개의 댓글