- 프론트엔드와 백엔드의 역할
- 프론트 : 사용자가 직접 사용하여 어떠한 액션 및 반응형, 시각적인 담당
HTML,CSS,JAVAScrpit를 이용하여 Django에서는 templates 디렉토리를 구축한다고 보면 되겠다.- 백엔드 : 서버,데이터베이스,API 통신 등 논리 및 기능 인프라 구축
Django에서의 역할은 데이터베이스 모델 URL, VIEW 설계가 되겠다.
2 . HTTP 메시지 구조를 이해한다.
- 클라이언트와 서버의 의 개념을 먼저 익히자면
클라이언트는 서버에 요청(URL)을 보내고
서버는 그에대한 응답(Response)을 보낸다.
HTTP 메시지의 구조는 요청 메시지와 응답 메시지에서 차이가 있다.
메시지의 구조는
RequestLine / StatusLine
Header
A Blank Line
Body
이런 형식으로 나뉘어져 있으며, 사진에서는
윗 부분은 GET'요청' 이므로 클라이언트
아랫 부분은 200 OK라 적힌것이 있는데, HTTP STATUS CODE로,
문제없이 잘 연결된 것을 뜻한다.
3 . Request와 Response 메시지의 역할을 이해한다.
- 2번 문제와 흡사한데, Request 요청, Response 응답으로
서버와 클라이언트간의 상호 통신을 통해
클라이언트는 GET,POST,PUT,PETCH,DELETE 요청을 보내고
서버는 Response로 어떠한 기능 처리로 응답을 한다.
이때 Petch와 Put은 데이터의 수정(Update)속성을 지니는데
Petch는 데이터의 부분 변경을
Put은 변경할 데이터의 모든 정보를 필요로 한다.(파일의 덮어쓰기 개념과 비슷하다)
4 . HTTP Status Code
Server의 데이터 처리 방식이, 어떤 결과값을 가져왔는지 응답하는 번호값이다
100번대는 요청이 수신되어 처리중을 알리며, 거의 사용되지 않는다.
200번대는 처리 성공
300번대는 다른 경로를 이용해야함을 안내
400번대는 client error
500번대는 server error
더 자세한 정보
5 . HTTP의 헤더의 역할을 이해한다.
데이터에 전송될 명함이라 이해하면 좋을 것 같다.
요청이나 응답은 무엇이고, host 등등, 정해진 규격이 있는것도 아니며
field-name(key) : value 형태로 데이터를 보낸다.
6 . 웹의 요청 흐름을 이해한다.
우리는 앞선 체크리스트에 클라이언트와 서버는 서로 통신을 하는데
클라이언트는 서버에 request 요청을 보내고
서버는 클라이언트에 reponse 응답을 보냄을 알게 되었다.
7.State와 Stateless의 뜻을 이해한다.
서버가 사용자(클라이언트)의 상태를 보존 유뮤의 차이
클라이언트가 무수한 요청을 보낼때마다, 연결을 유지하면 서버는 터지게된다.
| 무상태 프로토콜 (stateless:사용 자의 상태를 기억하지 않음) < > steatepull(사용자의 상태를 기억)
비 연결성을 통해 최소한의 자원을 사용할 수 있으며,
빠른 응답속도와, 서버 자원을 효율적으로 관리할 수 있는 이점이 있다.
- Restful한 API 설계를 할 수 있다
앞선 체크리스트에서 request요청에는
GET,POST,DELETE,PUT,PETCH 의 METHOD가 있다는 것을 알게 되었다.
지금까지의 URL 설계는
CRUD > 각각의 URL을 따로 설정해 주었다면
Restful한 API 설계는 하나의 URL에 CRUD를 처리할 수 있게 되며
이 과정에서 CBV(클레스 기반 VIEW)를 만들 수 있게 된다.