서버 동작 방식
1. 정적 콘텐츠 :
서버에서 뭔가 동작하지 않고 페이지를 보여주는 방식
2. 동적 컨텐츠 :
- 템플릿 엔진 :
서버에서 프로그래밍 후 동적으로 템플릿 엔진을 통해 html을 뿌려주는 방식
모델 1 방식! mvc개념이 생기기 전까지 view에서 처리를 다했었음!!
그래서 view의 코드가 엄청나게 길어짐 - mvc :
model - view - controller를 통해 html을 동적으로 관리해주는 방식
controller에서 처리를 해서 model에 담아 view를 렌더링!
3. api :
안드로이드, ios와 같이 json데이터 포맷을 이용해 클라이언트에게 전달하는 방식
서버끼리 통신할때도 사용함!
스프링 부트 정적컨텐츠 api
Spring Boot Features
Graceful shutdown is supported with all four embedded web servers (Jetty, Reactor Netty, Tomcat, and Undertow) and with both reactive and Servlet-based web applications. It occurs as part of closing the application context and is performed in the earliest
docs.spring.io
스프링에서의 정적컨텐츠
src/resources/static 폴더에 페이지 생성

동작 확인 - localhost:8080/hello-static.html 접속해보기

동작 방식 설명

컨트롤러가 먼저 hello-static 컨트롤러가 있는지 확인함
(컨트롤러가 우선순위를 가짐!!)
없으므로 동적 콘텐츠( resources/stiatic 폴더 안)에 hello-static.html 이 있는지 확인함!!
즉 1. 컨트롤러 2. 동적 콘텐츠 순으로 확인함!
스프링에서의 MVC와 템플릿 엔진
MVC : Model, View, Controller
- View : 단순하게 화면을 표현해주는 역할
- Controller : 비즈니스 로직, 서버 단위 처리 후 모델에 관련 데이터를 담아서 View에 전달
- Mode : 데이터를 담는 곳
사용해보기
1. Controller 생성
이전에 만들었던 src/main/hello.hellospring/controller/HelloController.java 에 새로운 동작을 추가해보자.

- @RequestParam(value = "name", defaultValue = "son") : 파라미터를 받는데 아무 입력이 없을 경우 "son"으로 저장한다. (get방식)
2. View생성
resources/template 폴더에 hello-template.html 생성

3. 동작 확인하기
http://localhost:8080/hello-mvc 접속하면 기본 값인 son으로 나오는 것을 볼 수 있다.

url에 파라미터 전달방법: 주소 뒤에?를 붙인 뒤 전달해주면 된다.
http://localhost:8080/hello-mvc?name=spring!

동작 과정

스프링에서의 API
: @ResponseBody를 추가로 어노테이션 해주면 viewResolve를 호출하지 않고 데이터 자체를 반환함.
사용해보기 1 (기본형)
1. controller 생성
기존의 생성 방식과 동일함. 하지만 @GetMapping아래 @ResponseBody를 추가로 어노테이션 해준다

2. 사용해보기
http://localhost:8080/hello-string?name=hi 시
return "hello" + name; 문장 그대로 "hellohi"가 전달된 것!

사용해보기 2 (객체 반환)
1. 컨트롤러에 추가해주기

- @ResponseBody를 어노테이션 하는 다른 부분은 같으나 객체를 반환해주기!
- getter/setter 방식을 사용함(단축키 alt + insert)
2. 동작 확인해보기
http://localhost:8080/hello-api?name=hi 접속해보기

- 객체를 반환 시 Json 데이터 형식으로 값이 전달된 것을 확인할 수 있다.
동작 방식

스프링은 객체형을 반환할 때 Jackson2 라이브러리를 사용해서 Json으로 변환 후 반환해줌
'Library & Framework > Spring' 카테고리의 다른 글
스프링에 대해서 (0) | 2022.02.24 |
---|---|
자바 스프링입문5 - 회원 관리 예제 만들기 1 (1) | 2022.02.07 |
자바 스프링입문3 - View환경설정, 빌드&실행 (1) | 2022.01.25 |
자바 스프링입문2 - 라이브러리 (1) | 2022.01.25 |
자바 스프링입문1 - 프로젝트 생성 (0) | 2022.01.24 |