[스프링 입문 by 김영한] 2. 스프링 웹 개발 기초

Hazel Park·2021년 2월 14일
0
post-custom-banner
  • 정적 컨텐츠
  • MVC와 템플릿 엔진
  • API

개요

  • 정적 컨텐츠 : 서버에서 하는 일 없이 파일을 웹브라우저에 그대로 내려줌.
  • MVC와 템플릿 엔진 : 가장 많이 하는 방식
    • 템플릿 엔진(과거 jsp, php 방식)
    • html을 바로 주는게 아니라 서버에서 프로그래밍 해서 html을 동적으로 바꿔서 내려줌
  • API
    • 앱 개발할 때 서버에서 json 데이터 구조 포맷으로 클라이언트에게 데이터를 내려줌 (과거에는 xml 포맷 사용했음)
    • React 나 Vue.js 사용할 때 사용
    • 서버끼리 통신할 때 사용 (html 내릴 필요 없는 상황)

1. 정적 컨텐츠

그냥 파일을 그대로 내려준다

resources/static 폴더 안에 임의의 html 파일 올려 놓으면 됨

작업절차

  1. resources/static/hello-static.html
  2. 브라우저에서 http://localhost:8080/hello-static.html 접속

동작방법

  1. 웹브라우저에서 localhost:8080/hello-static.html 요청
  2. (내장 톰캣 서버) 요청을 받은 후 스프링 부트에게 넘겨줌
  3. (스프링 부트) 스프링 컨테이너
    3-1. hello-static란 이름의 컨트롤러가 있는지 찾아봄. 컨트롤러가 없으면 3-2로 넘어감
    3-2. resources 폴더 안에 hello-static.html 파일이 있는지 찾아봄. 있으면 반환.

2. MVC와 템플릿 엔진

뷰를 템플릿 엔진으로 프로그래밍 된 내용에 따라 렌더링 한 후, 렌더링이 된 HTML을 전달해준다.

  • Model : 화면에 필요한 데이터 관리
  • View : 화면 그리기에 집중
  • Controller : 비즈니스 로직 처리에 집중

3. API

객체를 (JSON 형식으로) 반환한다.

@ResponseBody

응답 HTTP의 Body 부분에 데이터를 (HTML 문서가 아닌) 직접 넣어주겠다는 의미.

  • 기본 문자처리 : StringHttpMessageConverter
  • 기본 객체처리 : MappingJackson2HttpMessageConverter
profile
금융에 진심인 개발자
post-custom-banner

0개의 댓글