일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- English
- realclass
- 사이드
- 영어공부
- 파비최
- 10분
- 괜찮음
- 화상영어
- FIT XR
- 스탭퍼
- Writing
- 잡생각
- 영어원서읽기
- 30분
- leetcode
- 쓰릴오브파이트
- Problem Solving
- 개발자
- 매일
- 프로젝트
- 만화도
- 미드시청
- 뭐든
- 리얼 클래스
- Daily Challenge
- 읽기
- 운동
- 월간
- 링피트
- 3줄정리
- Today
- Total
파비의 매일매일 공부기록
Django 실습 프로젝트 후기 본문
최근에 Django를 주로 사용할 일이 생겨서
관련 내용들을 Guide 받는 중에 해본 일 들을 정리해본다.
나중에 다른 Language/Framework를 접하게 되더라도
유사한 방법으로 숙련도를 높이는데 도움이 될까 싶어 이렇게 기록으로 남긴다.
일단 시작은 Django Girls Tutorial & 심화를 진행했다.
그냥 소스 보고 따라 해 보고 글 읽어보면서 간단히 이해하는 게 첫걸음이라고 본다.
그러고 나서 아래의 항목들을 하나씩 개선해갔다.
ListView에서 count(*) 하는 로직 개선(SQL 부분) > 댓글 추가 시 cnt 변수 활용하도록 수정
특정 테이블의 PK를 biginteger로 변경
save() 호출 시 동작에 대해 > 전체 update 되는 부분
race condition 발생을 막을 수 있는 방법에 대해
migration가 꼬이는 경우 어떻게 해결하는지? > (migrate 명령어로 뒤로 돌려서 해결 가능)
DB를 sqlite3에서 mysql로 변경
session을 redis cache server로 변경
redis 서버 통신 시 트래픽 줄이는 옵션 설정 > zlib 등을 사용
redis 서버 connection 효율 높이는 옵션 설정 > connection pool class 활용
function 기반으로 작성된 view를 모두 class 기반으로 작성된 view로 재작성
class 기반으로 작성된 view를 모두 generic view로 재작성
queryset 활용하지 않는 방법으로 구현
revere_lazy를 사용해서 success_url을 수정
1:N 관계에서 foreign key를 넣어주는 방법(CreateView, UpdateView 등에서)
get_queryset()를 오버 라이딩하도록 수정(super()의 형태로 부모 호출 필수)
context_object_name을 사용하지 않고 기본 object name을 쓰도록 수정
form_valid() 안에서 redirect 대신 부모 클래스를 활용하도록 수정 > get_success_url(), form_valid의 끝에서 return super() 형태로 수정
근 1주일간 정말 많은 내용들을 수행했었다.
머리를 쥐어뜯어서 찾아낸 것도 있었고 생각보다 쉽게 찾아낸 것들도 있었다.
무엇보다 중요한 건(그리고 다행인 건)
소스를 모두 볼 수 있어서 API 문서에 안 나오는 내용들에 대해서도 정확히 파악할 수 있는 게 다행이었다.
아직도 모르는 것 투성이지만
그래도 2주 전의 나에 비해 Django 자체에 대한 이해도는 상당히 올라간 거 같아 뿌듯하다.
'Study > Python' 카테고리의 다른 글
Two Scoops of Django - #1장 (0) | 2021.06.02 |
---|---|
Django에서 Docker에 올린 MySQL과 연결이 안될 때(Pycharm 에서) (0) | 2021.03.06 |
Django 실전 연습 #17 - ch17 (0) | 2021.03.04 |
Django 실전 연습 #16 - ch16 (0) | 2021.03.03 |
Django 실전 연습 #15 - ch15 (0) | 2021.03.02 |