스프링 웹 개발 기초

 

1. 정적 컨텐츠

서버에서 파일을 웹브라우저에 그냥 내려준다.

resources 경로 안에 static, public안에 html은 스프링 부트에서 자동으로 올려준다.

/hello-spring/src/main/resources/static 경로 안 파일 확인

-rw-r--r--  1 mac  staff  222  8  9 14:10 hello-static.html

-rw-r--r--  1 mac  staff  227  8  9 10:52 index.html

 

정적컨텐츠 가져오는 순서

클라이언트 요청 -> 컨트롤러 체크(우선순위는 컨트롤러) -> 없을 경우 static, public 경로 파일 있는지 확인

 

2.MVC와 템플릿 엔진

Model View Controller

 

View : 화면을 그리는데 집중해야 한다.

Model, Controller : 비지니스 로직에 집중한다.

 

Code

@GetMapping("hello-mvc")

public String helloMvc(@RequestParam(value = "name") String name, Model model){

    model.addAttribute("name",name);

    return "hello-template";

}

 

 

3.API

View를 사용하지 않고 데이터를 바로 내릴 수 있다.

@ResponseBody를 사용할 경우 viewResolver 대신 httpMessageConverter가 동작한다.

기본 문자 처리

StringMessageConverter

기본 객체 처리

MappingJackson2 MessageConverter

요새는 보통 json형태로 데이터를 제공해준다.

Ex)

{

"name": "test"

}

 

Code

@GetMapping("hello-string")

@ResponseBody

public String helloString(@RequestParam(value = "name") String name, Model model){

    return "hello "+name;

}

'개발 소발 > 개발 Spring' 카테고리의 다른 글

Spring form login RSA 암호화 적용  (0) 2022.08.18
Spring Bean,스프링 빈이란?기초  (0) 2021.08.13
Spring DispatcherServlet 기초개념  (0) 2020.08.06
Spring Environment 기초 사용방법  (0) 2020.07.13
Spring Scope란?  (0) 2020.07.13

여러 서비스를 개발 할때 REST API란 이름으로 우리는 API를 만든다.

그러면서도 우린 아니 나는 REST API가 무엇인지 정확히 모르고 있었다.

그러던 차에 https://tv.naver.com/v/2292653

그런 REST API로 괜찮은가? 라는 영상을 보게되었다.

다들 시간이 날때 보면 좋을거 같다.


우선 REST란 말의 해석을 보면

Representational State Transfer 의 약자

이렇게 나온다.
몬지 모르겠다...


rest란말은 로이필딩(roy fielding)이란 사람이 여러사람과

http1.0을 정립하고 명세를 하게되었는데

http를 고치게되면 기존 웹과의 호환성의 문제가 생길 수 있었다.

웹을 망가트리지않고 http를 진보 시킬방법을 생각하다

Http Object Model이란 해결책을 만들게 되었다.


이 Http Object Model이 Rest 정의의 시작이다.


RestAPI

- 여러 아키텍쳐스타일의 집합(6가지)

동영상을 보면 다 나온다.

- 그중 uniform interface를 지키지 않는경우가 많다.


uniform interface란?

메세지는 스스로 설명해야한다.

- 목적지,명세를 표현해줘야한다.

- HETEOAS

전이가 될 수 있어야한다.

예를 들어 글 목록 -> 글 쓰기 -> 글 저장 -> 글 보기 -> 글 목록

링크를 타고 할 수 있게 되는 것이다.

- 명세

명세는 id,title란 정보가 있으면 그게 무엇인지 표현해주는것을 말한다.


uniform interface을 신경 써야하는 이유

- 서버와 클라이언트가 독립적으로 진화한다.

- 서버가 기능 변경이 되어도 클라이언트는 업데이트를 할 필요없다.

예를 들어 이전글,다음글을 보게 개발되어있을때 링크정보가 있다면

클라이언트는 변경할 것이 없다.


RestAPI로 안만들어도 될때는?

- 서버가 클라이언트를 통제가능할때 

혼자 다 개발하면 신경안써도된다.

- 진화에 관심 없을때

여러번의 업데이트등이 문제안될때


다음번 API개발할때는

RestAPI개념을 정확히 하여 개발해보자.

+ Recent posts