[작정하고 Django] DRF의 기본 개념 (1강~9강)
웹 프레임워크 웹을 만드는 도구 모음고
웹 브라우저를 만드는데 최적화 - 근데 요즘은 모바일 등등 어플리케이션의 사용도 증가 - multi platform 사용자의 웹 서비스 사용 방식이 다양화됨
장고 프론트로는 한계(웹). 이는 브라우저에서의 show임 안드로이드, ios에 대응해야함
multi platform에 대응하기 위해 rest를 사용하는 것
[3강] REST란 무엇인가?
rest가 무엇인가?
중요한 요소
- http 프로토콜 사용
- 자원관리 편리
- 플랫폼(기기)에 종속되지 않아야 함
REpresentation State Transfer
자원 상태의 전송.. 을 의미함
- 관리하고자 하는 자원의 이름(ex. profiles)
-
http 메소드로 행위를 분리(GET, POST, …)
- url자체는 고정이 되어있고, HTTP 메소드를 달리 함으로써 자원관리를 편리하게 해 줌
예시. get방식으로 하면 json 방식으로 넘어옴
기존 장고로 프론트 백을 전부 다 관리하는 것의 문제점
- 탬플릿과 뷰가 너무 강하게 결합되어 있음
- 모델과 탬플릿의 하드코딩(한번에 다 코딩되어 있음)
웹만 만든다면 위와 같은 방식은 상관 없지만 요즘은 모바일 시대이다. Django REST Framework로 멀티플랫폼에 대응하자
[4강] 강좌 로드맵
핀터레스트 기반한 프로젝트를 만들 것
사용할 개발 툴
- 장고: 자원 관리
- 도커: 클라우드에 올릴 때(컨테이너)
- 플러터: 프론트
개발 순서
장고에서 account, article, project, comment앱의 CRUD를 구현한 뒤,
이를 다 만들면 장고 프로젝트를 컨테이너화 시켜서 도커 시스템 안에 업로드
이거를 통~ 틀어서 aws에 올라가게 됨
비동기 작업 처리… <- 이게 가장 필요한거같은데
(참고로, 장고를 사용하지 않고 스프링, 플라스크, fast api 사용하여 구현해도 됨)
[8강] Django 개발 패턴
기본적인 장고의 구조
- MVC 개발 패턴
- 모델, 뷰, 컨트롤러
- 모델, 뷰, 탬플릿
Django REST Framework -> MV에만 집중
Model row, columns item, attributes
ORM(object relational mapping)
- 객체 연결로기를 만들어주는 기술
- 굳이 sql사용하지 않고도 db관리하게 해 줌
View - controller 역할
[9강] Django 개발 패턴
라우팅
- 요청이 들어오면 매인에서 처리, 메인이 각각의 앱으로 보냄
- urls.py에서 관리