장고 모델은 장고의 모든 프로세스의 핵심이다.
장고는 기본적인 CRUD를 지원하는 웹UI를 제공한다. 이를 admin이라고 하며 모델 등록을 통해 사용할 수 있다.CMS로 활용할 정도는 아니며 서비스 초기에 관리도구로 사용하기에 좋다.관리도구를 만들 시간을 줄이고 엔드유저 서비스에 집중할 수 있게 한다.위에서 정의
장고에서 Media 파일을 다루는 방법을 정리하였다.
파이썬 쉘에서 장고 환경 가져오기
모델을 통한 조회
django_extensions 모듈 활용하기
대부분의 성능문제는 DB IO에서 발생하는 경우가 많다. SQL 디버깅을 위한 툴을 소개한다.
ORM을 통해 RDB의 관계 설정을 처리할 수 있다.
유저 모델을 올바르게 임포트 하는 방법을 소개한다.
마이그레이션을 통해 데이터베이스를 관리하는 법을 살펴본다.
정규표현식을 이용해서 Custom path converter 적용해보기
클래스 기반 뷰 이해
뷰에 장식자를 적용하는 방법과 CBV에도 적용하는 방법을 알아본다.
서버는 적절한 HTTP 상태코드로 응답해줄 의무가 있다. 상황별로 적절한 상태코드를 알아본다.
장고의 우아한 url 체계에 대해서 알아보자.
외부 네트워크에서 개발서버로 접속하는 방법
장고 서버에서 어떻게 정적 파일을 서빙하는지 알아본다.
장고 Form의 주요 기능에 대해 알아본다.
build-in CBV를 통해 폼을 처리하는 방법을 알아본다. CreateView, DeleteView, UpdateView를 통해 구현한 CBV와 FBV를 비교해본다.
장고 기본 인증을 구현한다.
장고 프로젝트 셋업하기
프로젝트의 목적이 MVC구조의 웹사이트를 만드는 것이라면 장고로 풀스택 개발이 가능하다. 부트스트랩을 프로젝트에 포함하고, 기본 레이아웃을 구성하는 방법을 알아본다.
SendGrid API와 Django의 SMTP를 활용해서 이메일 서비스를 구현해본다.
프로필에 대한 디폴트 이미지를 구현하는 법을 알아본다.
TextChoices, ImageField 및 CharField의 validators를 활용한 필드 구현
auth앱의 PasswordChangeForm와 PasswordChangeView를 커스텀해서 비밀번호 변경 뷰를 구현해본다.
ManyToMany를 이용해 Tag기능을 구현해본다. 또한 어떻게 테이블이 생성되는지 확인해본다.
detail 페이지를 구현한다.
정규표현식을 이용해서 url 매칭을 수행해본다.
여러 크기의 이미지가 저장되어 있을 때 손쉽게 크롭 처리 하는 방법을 알아본다.
장고 템플릿을 기능단위로 컴포넌트로 나누어서 구성하며 인스타그램의 타임라인을 구현해 본다.
장고의 ManyToMany 필드를 이용해서 팔로우 관계를 구현해본다.
모델 상속을 통해 공통 필드를 구현해본다.
커스텀 템플릿 필터를 활용해본다.
humanize 모듈을 활용해서 숫자 및 날짜 데이터를 읽기 좋게 출력하는 법을 알아본다.
웹 문서 형태 만으로 댓글 쓰기 화면을 구성하고 개선 해본다.
기존의 프로젝트에 jQuery를 붙여서 UI의 한 부분만 업데이트하도록 수정해본다.
API 서버는 앱 / 웹 서비스를 만드는 개발자들이 이용하는 데이터 위주의 응답을 하는 서비스이다.
장고 기본 구현과 DRF 구현을 비교해본다.
직렬화의 개념 및 방법에 대해서 알아본다. 또한 Django와 DRF에서 직렬화 룰을 추가하고 수행하는 예제를 살펴보고 JSON API 응답을 비교해본다.
drf의 APIView을 기반으로 JSON 응답뷰를 구현해본다.
generics의 APIView들은 mixin의 로직을 재사용해서 정의되었다. 이와 같이 필요에 따라 다양한 믹스인을 조합해서 뷰를 구현할 수 있고 믹스인 또한 정의해서 사용이 가능하다.
ViewSet은 REST의 반복적인 코딩 패턴을 줄여준다. List API (GET, POST) - Detail API (GET, PUT, DELETE)를 모델을 기준으로 하나의 ViewSet으로 묶어서 간단하게 구현이 가능하다. ViewSet의 활용법을 알아보자.
DRF의 Renderer를 이용하면 다양한 형태의 응답 포맷을 지원할 수 있다.
Form은 HTML Form을 생성하고 요청을 처리하는데 초점이 맞춰져 있다. 반면에 Serilizer는 다양한 API 요청에 대한 처리(직렬화, 유효성검사 등)가 목적이기 때문에 위젯과 같은 속성은 존재하지 않는다.
Serializer를 이용해 유효성 검사를 하고 데이터베이스로 저장하는 과정 및 Serializer의 관심사가 아닌 필드는 어떤식으로 뷰에서 처리하는지 알아본다.
DRF에서 인증 및 권한을 어떻게 관리하고 커스텀 하는지 알아본다.
DRF의 APIView에서 응답데이터의 정렬 및 필터링을 하는 방법을 알아본다.
DRF에서 지원하는 페이지네이션
DRF에서 지원하는 Throttling 설정을 통해 시간당 최대 횟수를 제한할 수 있다. 또한 APIView에 scope를 지정함으로써 scope별로 다르게 설정도 가능하다.
DRF에서 지원하는 기본 인증을 활용해본다.
JWT인증은 유효기간이 존재하며 서명을 통해 위조를 방지한다. JWT인증의 특징과 사용법을 알아본다.
리액트를 공부하기위해 필요한 ES6+ 문법을 정리해본다.
순수함수와 커링기법
CRA를 이용하면, 리액트 프로젝트를 간편하게 생성할 수 있다. webpack, babel, eslint등의 기본 설정이 포함된다.