본문 바로가기

About coding/Today I learned

2023년 04월 18일 TIL [#Django 심화]


오늘의 학습 계획

_ 팀프로젝트가 끝나고 심화 발제

: 진도가 어렵지 않은 사람은 django REST framework로 지난 팀프로젝트를 리펙토링해보라고 하였다.

: 나는 진도가 어려운 편이어서 파이썬부터 장고까지 기초 복습을 하기로 했다!

: 권기현 튜터님 유튜브로 기초 복습을 하겠다!

 

_이번 주차 공부할 내용 체크리스트!

더보기

[ ] 프론트엔드와 백엔드의 역할을 이해한다.

[ ] HTTP 메시지의 구조를 이해한다.

[ ] Request와 Response 메시지의 역할을 이해한다.

[ ] HTTP의 상태코드의 역할을 이해한다.

[ ] HTTP의 헤더의 역할을 이해한다.

[ ] 웹의 요청 흐름을 이해한다.

[ ] State와 Stateless의 뜻을 이해한다.

[ ] Restful한 API 설계를 할 수 있다.

[ ] DRF로 프로젝트 세팅을 할 수 있다.

[ ] 시리얼라이저의 의미와 역할을 이해한다.

[ ] 시리얼라이저를 활용해서 CRUD를 할 수 있다.

[ ] 포스트맨으로 DRF 개발을 테스팅 할 수 있다.

[ ] 프로젝트에 Swagger를 적용할 수 있다.

[ ] 클래스형 뷰를 작성할 수 있다.

[ ] fetch api를 써서 프론트엔드에서 DRF의 데이터를 가져와서 나타낼 수 있다.

[ ] 쿠키 세션 방식 로그인과 토큰 방식 로그인의 차이를 이해한다.

[ ] 쿠키와 로컬스토리지의 차이를 이해한다.

[ ] JWT의 구조를 이해한다.

[ ] 장고에서 JWT를 이용해서 회원가입과 로그인을 구현할 수 있다.

[ ] 브라우저의 로컬스토리지에 백엔드에서 받은 토큰을 저장할 수 있다.

[ ] 프론트에서 로컬스토리지의 토큰을 헤더에 실어서 백엔드로 보낼수 있다.

[ ] 포스트맨에서 헤더에 토큰을 실어서 백엔드로 보낼 수 있다.

[ ] 토큰의 만료기간을 설정할 수 있다.

[ ] 토큰이 만료되면 refresh token을 다시 받아올 수 있다.

[ ] 미디어 파일과 스태틱 파일에 대해 이해한다.

[ ] 게시글 모델과 조회/업로드를 위한 serializer를 만들 수 있다.

[ ] 이미지를 포함한 게시글 기능을 개발할 수 있다.

[ ] 포스트맨으로 백엔드 개발을 하면서 테스팅을 할 수 있다.

[ ] drf에서 댓글, 좋아요, follow 기능을 개발할 수 있다.

[ ] many-to-many 관계를 설정하는 경우와 방법, 그리고 related_name의 사용방법을 이해한다.


기록하고 싶은 학습내용

_JSON : 서버&서버 / 클라이언트&서버 간 데이터를 주고 받을 때 사용하는 데이터의 형식이다. 자바스크립트 파이썬 자바 등 많은 언어들이 키:밸류 모양으로 이루어진 자료구조를 갖고 있는데, 데이터를 효율적으로 전송하기 위해서 그 모양을 닮기로 함. 그래서 JASON의 의미는 JAVASCRIPT OBJECT NOTATION. 

그러한 배경 하에, 자바스크립트, 파이썬, 자바 등 언어의 자료구조를 가지고 서버:서버, 서버:클라이언트 통신하기 위해 JSON 형식으로 변환하는 것을 serialization이라고 하고, 그 반대를 deserialization 이라고 한다. 사람들은 deserialization을 parsing/parse 이라고도 하는데, parse가 더 넓은 의미이다. 데이터를 보고 의미를 해석하는 과정을 모두 통틀어 파싱이라고 한다.

 

_Cache : 캐시는 개인수첩 같은 개념이다. 웹사이트에 접속 할 때, 이미지나 동영상 같은 미디어는 많은 용량을 요구하는데, 같은 화면에 여러번 접속 시 매번 새로 로딩이 되면 낭비가 발생하게 된다. 이를 줄이기 위해서 한 번 접속한 곳의 미디어는 노트에 임시로 적어놓고 중복 호출 시 적어 놓은 것을 보여주는 효과를 내는 게 캐시다.