파비의 매일매일 공부기록

Django 실습 프로젝트 후기 본문

Study/Python

Django 실습 프로젝트 후기

fabichoi 2021. 3. 5. 23:30

최근에 Django를 주로 사용할 일이 생겨서

관련 내용들을 Guide 받는 중에 해본 일 들을 정리해본다.

 

나중에 다른 Language/Framework를 접하게 되더라도

유사한 방법으로 숙련도를 높이는데 도움이 될까 싶어 이렇게 기록으로 남긴다.

 

일단 시작은 Django Girls Tutorial & 심화를 진행했다.

tutorial.djangogirls.org/ko/

그냥 소스 보고 따라 해 보고 글 읽어보면서 간단히 이해하는 게 첫걸음이라고 본다.

 

그러고 나서 아래의 항목들을 하나씩 개선해갔다.

 

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 자체에 대한 이해도는 상당히 올라간 거 같아 뿌듯하다.

반응형
Comments