SPRING/강의

강의 10

배워도끝이없네 2021. 6. 23. 11:30

2번째 시대 :웹 어플리케이션의 시대

 

웹페이지의 시대에서 가장 중요하게 작용한것이 검색엔진이라 생각한다.

 

url의 중요성이 대두되면서 rest라는 방식이 대두된다. (이전에는 쿼리스트링을 통해 페이지를 분기했다)

 

url은 locator를 이야기하는것이고

uri 는 identifier이다 (즉 id라는 말이라 전세계에서 유니크해야한다)

 

웹과 앱의 가장 큰 차이점은 공유이다 (웹은 공유가 너무 쉬운데 앱은 기능에 초점이기때문에 공유하기 쉽지않다)

 

웹 어플리케이션이라는 시대는 왜 열렸나? -> 기존에 url이동을하면 전체를 다 랜더링하기때문에 너무 느려서 열렸다.

 

ajax가 출현하면서 부분부분에 대한 바꿔치기가 가능하다는 개념들이 열리기 시작했다.

 

이러면서 생긴 개념이 CSR (Client Side Rendering)이다.

 

이러면서 엄청나게 많은 종류의 프레임워크들이 발전한다. (react , angular등.. 이것이 2015~6년쯤..)

 

이제 더이상 웹페이지라고 부르지 않는다. 웹앱이라고 부른다(왜냐하면 한페이지 안에서도 여러가지의 동작을 하기때문에)

 

이런 변화들이 생기면서 서버쪽에 많은 변화가 생기게 된다.

 

SSR을 벗어나서 순수데이터를 서버쪽에서 전송하는 일들이 생긴다. -API(Application Programming Interface)

 

Rest에서 URL이 바뀌면 문제가 생기기 때문에 이래서 나온것이 GraphQL이 나온다.

 

REST방식은 무상태다

 

무상태 프로그래밍이란(stateless)?

2가지가있는데 하나는 client무상태

나머지는 서버사이드... 이 이야기는 나중에 한다

 

rest방식은 호출하는데 어디서 나를 호출하는지 모르는 상태가 생긴다.

 

브라우저는 쿠키를 이용해 상태를 유지했지만 앱은 그런게 없었다.

 

스프링에서 이런 rest방식의 여러가지 고민거리가 생기면서 스프링4에서 @RestController가 나왓다

 

@GetMapping이 나오면서 중요한건 consumes와 produce가 큰 의미가 있다( 내가 어떤 종류의 데이터가 serving이 가능한가)

 

RestController를 이용하면 모든 리턴형은 ResponseEntity로 설계하는게 가장 안전하다. (널포인트등을 관리하기 위해서, 이렇게하면 톰캣에서 사용하는 예외메세지가아니라 내가 원하는 상태코드를 컨트롤 할 수 있다.)

그리고 헤더메세지를 보낼 수 있게된다.

 

rest방식이던 graphQL이던 응답메시지의 구조는 어떻게 설계하는게 가장 좋을까

리액트에서는 가능하면 props를 중첩된구조로 보내지말고(하나의객체로 묶어서 보내지말고) flat한 구조로 짜라고 한다..