❤️🔥TIL : Today I Learned❤️🔥
그날그날 내가 공부한 것을 정리하는 것
내일배움캠프 AI트랙 36day
오늘 배운 내용 - Django 심화에서 만난 네트워크
오늘부터 Django 심화 강의가 시작했다. Django 심화강의는 DRF에 관해 배우게 된다.
1주차는 DRF를 시작하기 전 Restful에 대한 간단하게 웹의 흐름에 대한 내용을 배우게 되었는데, 여기서 뭔가 익숙한.... 네트워크의 향기를 맡았다. 강의를 듣다가 교수님을 몇번 찾았다...
DJANGO REST FRAMEWORK
DRF란 Django 안에서 Restful API 서버를 쉽게 구축할 수 있도록 도와주는 오픈 소스 프레임워크이다.
DRF을 제대로 사용하기 위해서는 Restful에 대해 이해해야한다.
웹 개발을 하다보면 Restful API 라는 말을 엄청 많이 듣게 된다. Restful하게 API 개발해야한다고 하는데 정작 나는 아아 그런것이 있지 라고 하면서 정작 뭔제 제대로 알지 못했었따. 어렴풋이 알고만있었던 것을 이번기회에 확실하게 설명할 수 있을 정도로 이해하게 되었다.
Restful API (REpresentational State Transfer)
Rest이란 웹에 존재하는 모든 리소스(이미지, 동영상, DB 자원 등)를 식별해 리소스를 처리하는 메소드로 고유한 URI를 매핑하는 것이다. 따라서 Restful API는 이러한 Rest의 특징을 지키면서 API를 제공하는 것을 의미한다.
- 리소스 : 회원, 게시판 등
- 메소드 : 조회, 등록, 삭제, 변경 => HTTP 메소드로 표현
REST API 구성
구성 | 요소내용 | 표현방법 |
Resource | 자원 | HTTP URI |
Verb | 자원에 대한 행위 | HTTP Method |
Representations | 자원에 대한 행위의 내용 | HTTP Message Pay Load |
HTTP Method
Method | Action | 역할 | 페이로드 |
GET | index/retrieve | 모든/특정 리소스를 조회 | x |
POST | create | 리소스를 생성 | ○ |
PUT | replace | 리소스의 전체를 교체 | ○ |
PATCH | modify | 리소스의 일부를 수정 | ○ |
DELETE | delete | 모든/특정 리소스를 삭제 | x |
HTTP(HyperText Transefom Prototol)
HTTP란 인터넷에서 데이터를 주고받을 수 있는 프로토콜로, 이것에 대해서 자세히 뜯어볼려면 이제부터 학교 다닐 때 네트워크때 들었던 내용들이 나온다. 수업을 들을때에는 웹개발에 대해서 깊이있게 생각하지 않았어서 이론적으로 이해했지만 실제로 HTTP 네트워크 프로토콜을 가장 많이 사용하는 분야는 단언컨데 웹 개발이라고 볼 수도 있다는 것을 이번 시간을 통해서 깨닫게 되었다.
HTTP 특징
1. 클라이언트 서버 구조
클라이언트가 서버에 요청을 보내면 서버는 그에 대한 응답을 보내는 클라이언트 서버 구조로 이루어져 있다.
- Request Response 구조
- 클라이언트는 서버에 요청을 보내고 응답을 대기
- 서버가 요청에 대한 결과를 만들어 응답
2. 무상태 프로토콜 – Stateless
HTTP에서 서버가 클라이언트의 상태를 보존하지 않는 무상태 프로토콜이다.
- 서버가 클라이언트 상태를 보존하지 않음
- 장점 : 서버 확장성 높음 (스케일 아웃)
- 단점 : 클라이언트가 추가 데이터 전송
3. 비 연결성 – Connectionless
- HTTP는 기본이 연결을 유지하지 않는 모델
- HTTP 1.0 기준으로 HTTP는 연결을 유지하지 않는 모델이다.
- 일반적으로 초 단위 이하의 빠른 속도로 응답
- 트래픽이 많지 않고, 빠른 응답을 제공할 수 있는 경우에 비 연결성의 특징은 효율적으로 작동한다.
- 1 시간 동안 수천명이 서비스를 사용해도 실제 서버에서 동시에 처리하는 요청은 수십 개로 매우 작음
- 예) 웹 브라우저에서 계속 연속해서 검색 버튼을 누르지는 않는다.
- 트래픽이 많고 큰 규모의 서비스를 운영할 때는 비 연결성은 한계를 보인다.
HTTP 메세지 구조
오늘은 시작이 약간 부족해지만 TCP/IP 등 낯익은 용어들도 들었으니 조만간 네트워크 부분도 다시 공부하면 좋을듯하다.
'I learned' 카테고리의 다른 글
내일배움캠프 AI트랙 9 Week (0) | 2022.10.30 |
---|---|
내일배움캠프 AI - TIL 40 (0) | 2022.10.28 |
내일배움캠프 AI트랙 8 Week (0) | 2022.10.23 |
내일배움캠프 AI - TIL 35 (0) | 2022.10.21 |
내일배움캠프 AI - TIL 34 (0) | 2022.10.21 |