프로젝트 리팩토링 피드백

2star_·2025년 1월 27일
0

최종 프로젝트

목록 보기
30/32

프로젝트 리팩토링 피드백

1. 사용하지 않는 파일 삭제

  • 프로젝트에 사용하지 않는 파일이 깃허브에 업로드되어 있어 관리 효율성이 떨어짐
  • 조치: 사용하지 않는 파일과 코드를 확인 후 삭제

2. 모델 필드 설명 방식 개선

  • 모델의 주석 대신 verbose_name 속성을 사용하여 각 필드의 역할을 명확히 설명하는 Django 권장 방식을 따름
  • verbose_name은 모델 필드에 대한 가독성을 높이고 관리자를 포함한 여러 UI에서 더 직관적인 필드명을 제공

3. View를 가볍게 유지하기 위한 리팩토링

  • "Fat Model, Thin View" 원칙을 적용하여 뷰를 최대한 단순화
  • 조치 방향:
    - 복잡한 비즈니스 로직을 모델의 메서드 또는 별도의 유틸리티 함수로 이동
    - 예: ReviewAPIView에서 annotate와 관련된 정렬 로직을 모델 메서드로 추출

4. DB 성능 최적화를 위한 db_index 활용

  • 검색 및 필터링이 자주 사용되는 필드에 db_index=True를 설정
  • 예시:
    • Review 모델의 app_id 필드
    • Game 모델의 name 필드

5. Django 서브쿼리 활용

  • View에서 반복적으로 호출되는 쿼리를 최적화하기 위해 Django ORM의 서브쿼리를 사용
  • 적용 대상:
    • GameDetailAPIView에서 my_review 필드 로직

6. PEP8(파이썬 스타일 가이드) 준수

  • import 순서를 정리하고, 그룹별로 나누어 가독성을 향상
  • 조치:
    • 표준 라이브러리, 서드파티 라이브러리, 로컬 앱 순서로 구분

7. 에러 메시지 커스터마이징


8. 소프트 삭제 도입

  • 데이터 삭제 시 실제로 데이터베이스에서 제거하지 않고, Boolean 필드를 사용하여 삭제 상태를 관리
  • 적용 이유:
    • 삭제된 데이터를 복구하거나 로그를 추적할 수 있도록 보장
  • 구현 방향:
    • is_deleted = models.BooleanField(default=False) 필드를 추가하고, 쿼리셋에서 기본적으로 필터링


참고 자료

profile
안녕하세요.

0개의 댓글

관련 채용 정보