2026/01/16 합동프로젝트 - 8

김기훈·2026년 1월 16일

TIL

목록 보기
113/194
# 어제 무엇을 했나요?
- 1. "좋아요" 기능 구현 (post / delete)
- 2. 리뷰 수정api 구현
- 3. 프로젝트 스웨거 세팅 수정 (기획서와 현재 구현된 기능 전부 사용 가능하도록)

# 오늘은 무엇을 할 것인가요?
- 1. 어제 멘토님이 언급하신 부분 수정
- 2. 리뷰 삭제 api 구현 
- 3. 파이썬 강의 찾아보기 
- 4. 현재 작성한 테스트코드를 Given When Then 으로 분리하기

# 진행하는데 어려운 부분(도움이 필요한 부분)이 있나요?
- 1. 어제 멘토링 내용대로 파이썬 / 장고 강의 찾기
- 2. 백준 다시 공부하기 

오늘 학습 내용 ✅


의문

  • 어제 리뷰 수정 api를 작성하는 동안 생각하지 못했던 내용
    • 어차피 등록과 수정의 필드가 동일한데 굳이 update시리얼라이저를 만들 필요있는가?
  • 여태동안 각 api마다 service / serializer은 각각 1개씩은 필수적이라 생각했는데
    • 생각을 하지않고 여태 코드를 작성해서 그런것 같다.
    • 좀더 고민을 하고 코드를 짜는 습관이 필요할 것 같다.
# 이전
    def patch(self, request, review_id):
        self.validation_error_message = "유효하지 않은 수정 요청입니다."

        # 1. 수정할 데이터 검증
        serializer = ReviewUpdateSerializer(data=request.data, partial=True)
        serializer.is_valid(raise_exception=True)


# 이후
class ReviewUpdateAPIView(APIView):
    permission_classes = [IsAuthenticated]
    validation_error_message = "이 필드는 필수 항목입니다."

    @extend_schema(
        tags=["리뷰"],
        summary="리뷰 수정 API",
        request=ReviewCreateSerializer,   # 여기도 교체
        responses=ReviewCreateSerializer, # 여기도 교체
    )
    def patch(self, request, review_id):
        self.validation_error_message = "유효하지 않은 수정 요청입니다."

        # 1. 수정할 데이터 검증 (CreateSerializer 재사용)
        serializer = ReviewCreateSerializer(data=request.data, partial=True)
        serializer.is_valid(raise_exception=True)

        # 2. 유저 타입 캐스팅 (Type Hinting)
        user = cast(User, request.user)

        # 3. 서비스 레이어 호출
        review = update_review(
            user=user,
            review_id=review_id,
            validated_data=serializer.validated_data,
        )

        # 4. 수정된 데이터 반환
        return Response(
            ReviewCreateSerializer(review).data,
            status=status.HTTP_200_OK,
        )

수정사항

스웨거 수정

  • 지금 구현된 기능별로 전체 수정

    • extend_schema 주요 파라미터

    • API 명세 수정

    • 스웨거 수정

      • 오류메세지도 상세하게 기록

새롭게 알게된 내용 ✅


오늘 발생한 문제(발생 했다면) ✅

profile
안녕하세요.

0개의 댓글