모든 팀원분들이 주말 간 열심히 해준 덕분에 DRF심화 과제를 예상보다 빨리 끝났다.
그래서 몇몇가지 기능 추가와 선택가능인 프런트앤드 구현을 해보기로 했다.
일단 pagination과 React에 관해 공부를 했다.
pagination
이번 과제는 팀원들끼리 Serializers.py를 사용 안 하고 구현하기 했다.
그러다 보니 ListAPIView를 사용 하는 것보다 직접 DRF에서 제공해 주는 PageNumberPagination을 사용해서 구현했다.
이런식으로 직접 불러와 사용하는 방법도 있지만 Pagination도 Django의 Framework이다 보니 내부에 Paginator을 이용한다면
구현이 가능 할거 같았다. 약간 많이 복잡해 보이지만ㅎ
https://docs.djangoproject.com/en/4.2/ref/paginator/#paginator
from rest_framework.pagination import PageNumberPagination
def get(self, request):
articles = get_list_or_404(Article)
pageination = PageNumberPagination()
data =[{
"id": article.id,
"title": article.title,
"content": article.content,
"article_type": article.article_type,
"article_link": article.article_link,
"author": article.author.username,
"created_at": article.created_at,
"comment_count": article.comments.count(),
"likey_count": article.likey.count(),
} for article in articles]
pageination.paginate_queryset(data,request)
return pageination.get_paginated_response(data)
React
사용자 인터페이스 즉 Frontend를 위한 JavaScript 라이브러리이다.
메타에서 만든 었으며 node.js 다음으로 많이 사용하는 웹 개발 기술이다. 페이스북, 인스타 , 에어비앤비든, 넷플릭스 등 이런 것들을 React로 만들었고 한국도 쿠팡, 카카오페이, 티몬등에서 사용한다.
데이터가 변할때마가 화면을 새로 뛰우는 것이 아닌 필요한 곳만 업데이트하며 사용하며 빠른 로딩 속도와 반응성이 높은 UI를 구현이 가능하고 데이터가 클수록 더 큰 힘을 발휘한다고 합니다.
이번 기회에 어떤식으로 이용하고 작동하는지 알아 두면 최종 프로젝트를 할 때도 팀원들에게 많이 도움이 될 거 같아 공부를 하기로 했다.
https://m.youtube.com/watch?v=6GECT2Jrr_g&t=459s&pp=ygUJ66as7JWh7Yq4
마무리
3~4주 정도의 팀원과의 팀 프로젝트가 있는데 사실 너무 두렵기도 하다.
아직 DRF도 서툴지만 아무것도 몰랐던 한 달 전의 나에 비하면 많이 달라졌다. 문제와 만날 쓸 때 과정과 내용들을 노션에 작성해 보는 방법도 좋을 거 같고 팀원 간의 소통도 더 잘할 수 있게 연습을 해야겠다.