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 10 months ago

simseulnyang commented 11 months ago

PR 체크리스트

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

PR 유형

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

현재 동작은 무엇인가요?

이슈 번호: #9

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

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

기타 정보

simseulnyang commented 11 months ago

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

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

simseulnyang commented 11 months 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 10 months ago

image

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

saJaeHyukc commented 10 months 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을 각각 다른 값으로 저장

saJaeHyukc commented 10 months ago
image

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

simseulnyang commented 10 months ago
image

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

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

simseulnyang commented 10 months ago

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

코드 수정 파일

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