Django-Wanted-Internship-3-Team / repo1_feed-service

소셜 미디어 통합 Feed 서비스 (원티드 팀 과제 1)
https://bow-hair-db3.notion.site/Feed-938175f1165b470e90462d1f1d52fd78
MIT License
2 stars 0 forks source link

게시물 목록 API 작성 #20

Closed simseulnyang closed 1 year ago

simseulnyang commented 1 year ago

PR 체크리스트

아래 항목을 확인해 주세요:

PR 유형

이 PR은 어떤 종류의 변경을 가져오나요?

현재 동작은 무엇인가요?

이슈 번호: #9

새로운 동작은 무엇인가요?

이 PR은 호환성 변경을 도입하나요?

기타 정보

simseulnyang commented 1 year ago

게시글 기능 관련한 코드를 작성했습니다. 그런데 요구사항 분석할 때만 하더라도 구현은 어느 정도 할 수 있을 거라고 생각했는데 최대한 재혁님께서 구현해주신 코드와 비슷하게 해보려고 시도 하다 보니 너무 어렵고, 어지럽게 코드가 작성이 되어진 것 같습니다😢 리뷰 하시는 분들께 진심으로 죄송합니다

그래도 일단 할 수 있는 부분까지 작성 했습니다. 테스트 코드도 일단 작성할 수 있는 부분까지 작성해 보았습니다. 코드 리뷰 해주시면 확인 하는 즉시 바로 수정하겠습니다.

simseulnyang commented 1 year ago

수고하셨습니다! 질문이 있어요.

  1. django_filters가 어떻게 사용되는지 궁금합니다.

제가 정확히 질문을 이해했는지 잘 모르겠지만 일단 아래에 답변 드립니다!

django_filters 사용 방법은

  1. 먼저 설치를 해줍니다. (pip의 경우 pip install django-filter 이고 저는 poetry add django-filter 이렇게 설치했습니다.)
  2. settings.py에서 설치한 패키지를 추가해줍니다. ("django_filters")

    저는 THIRD_PARTY_APPS에 넣어두었습니다.

이 다음부터는 활용도가 많아서 방법은 개인적으로 선택해야 하는 것 같더라구요. [DRF 공식문서 'Filtering'] https://www.django-rest-framework.org/api-guide/filtering/ 공식문서 참조해서 다양하게 사용하면 될 것 같습니다!

simseulnyang commented 1 year ago

image

일단 swagger를 통해 다음 이미지와 같은 값을 받았습니다.

JaeHyuckSa commented 1 year ago

작업하시는 와중에 갑작스러운 커밋을 남기게 되어 죄송합니다. 아래는 CI 에러를 디버깅 과정입니다. 기본 설정을 제대로 하지 않아 일어난 일이라 꼼꼼하게 확인 후 작업하도록 하겠습니다. 불편을 끼쳐드려 죄송합니다.

1 커밋 번호:9afae8d

ERROR: /app/posts/views.py Imports are incorrectly sorted and/or formatted.

문제점: isort job에서 import 정렬이 안됐다고 에러 발생 원인: pre-commit-config.yaml에 작성되어있는 설정과 github actions에 작성되어있는 isort 설정이 다른 것이 원인 해결: github actions에 작성되어있는 isort 설정을 pre-commit에 적용하여 커밋 올려 수정

2 커밋번호: ec5493e

ImportError: 'tests' module incorrectly imported from '/Users/sajh/Documents/project/pre-onboarding/1_repo/posts/tests'. Expected '/Users/sajh/Documents/project/pre-onboarding/1_repo/posts'. Is this module globally installed?

문제점: 테스트를 실행시키려고 했으나 posts 앱에서 테스트 파일들을 못찾음 원인: tests 파일과 tests 폴더가 이중으로 존재하여 인식 못한 것이 원인 해결: 사용하지 않은 tests 파일을 제거

3 커밋번호: 70c494f

django.db.utils.IntegrityError: duplicate key value violates unique constraint "users_username_key"
DETAIL:  Key (username)=() already exists.

문제점: 테스트를 실행 도중 username필드값이 unique값이지만 중복으로 처리됨 원인: 기존에 작성되어있던 테스트 코드에서 유저 모델 중 username이 추가됨에 따라 작성하지 않아 null값으로 동일하게 저장되어 중복처리가 된것이 원인 해결: 기존 테스트 코드에 username을 각각 다른 값으로 저장

JaeHyuckSa commented 1 year ago
image

추가적으로 PostListSerializer로 query를 받아오고 있습니다. response값과 동일하게 받아오는 것으로 확인되는데 구분이 잘 안돼서PostListQuerySerialzier를 따로 만들어 적용하는 것은 어떨까요?

simseulnyang commented 1 year ago
image

추가적으로 PostListSerializer로 query를 받아오고 있습니다. response값과 동일하게 받아오는 것으로 확인되는데 구분이 잘 안돼서PostListQuerySerialzier를 따로 만들어 적용하는 것은 어떨까요?

이 부분은 제가 serializer 활용하는 방법이 부족해서 하나로 사용하게 되었습니다. 재혁님께서 말씀해주신 부분에 대해 한번 살펴보고 적용해볼게요!

simseulnyang commented 1 year ago

반복적인 에러 발생으로 PR이 많이 늦어진 점 죄송합니다.. 일단 PR 후 진행되는 테스트는 다 통과했는데 코드리뷰 받고 코드 수정한 부분도 있지만 에러 확인하면서 수정한 부분도 있습니다. 그래서 코드 리뷰가 필요할 것 같습니다. 확인 부탁드립니다!

코드 수정 파일

요구 사항에 있어 추가한 내용