리뷰 관리 시스템 개선

금은체리·2024년 6월 10일
0

기존 리뷰 관리 시스템의 기능을 개선하여 RESTful 원칙에 더욱 부합하도록 설계하고, 효과적인 데이터 검증 및 예외 처리 로직을 구현하는 것을 목표로 했습니다. 주요 개선 사항으로는 API 경로의 RESTful 재설계, 입력 데이터 유효성 검증, 사용자별 리뷰 작성 제한 등이 있습니다.

문제 정의

  1. 비RESTful API 경로: 초기 API 설계에서 POST /reviews/create는 REST 원칙을 완벽히 따르지 않았습니다. API 경로에 동작(create)이 명시되어 있어, 리소스 지향적인 URL 설계 원칙에 어긋났습니다.
  2. 데이터 유효성 검증 부재: 리뷰 제목, 내용 및 평점에 대한 클라이언트 측 입력이 서버 측에서 충분히 검증되지 않아, 부적절한 데이터가 시스템에 저장될 위험이 있었습니다.
  3. 리뷰 중복 문제: 사용자가 동일한 기업 회원에 대해 여러 리뷰를 작성할 수 있는 문제가 있어, 데이터의 일관성과 신뢰성을 저해했습니다.

해결 방법

  1. RESTful API 재설계

    • POST /reviews/createPOST /reviews로 변경하여 리소스 생성에 대한 표준 REST 방식을 채택했습니다. 이 변경은 API의 이해를 돕고, 표준에 맞는 설계를 적용하는 데 도움이 되었습니다.
  2. 입력 데이터 검증 로직 추가

    • Jakarta Bean Validation을 활용하여 ReviewCreationRequestDTO에서 리뷰 제목은 최대 100자, 내용은 최대 1000자를 초과할 수 없도록 했습니다. 또한, 평점은 1에서 5 사이의 정수만 허용되도록 검증 로직을 추가했습니다.
    • 이 유효성 검사는 잘못된 데이터가 데이터베이스에 저장되는 것을 방지하고, 사용자에게 명확한 피드백을 제공하여 사용자 경험을 개선합니다.
  3. 사용자별 리뷰 작성 제한 로직 구현

    • ReviewService에 로직을 추가하여 사용자가 특정 기업 회원에 대해 이미 리뷰를 작성했는지 확인합니다. 이미 리뷰를 작성한 경우, 추가적인 리뷰 작성을 방지하는 예외를 발생시킵니다.
    • 이 기능은 데이터의 중복을 방지하고, 각 리뷰의 유니크함과 가치를 유지하는 데 기여합니다.

결과 및 영향

이러한 개선을 통해 리뷰 관리 시스템은 RESTful 원칙을 더욱 잘 따르며, 입력 데이터의 정확성이 보장됩니다. 또한, 사용자가 동일 기업에 대해 중복 리뷰를 작성하는 것을 방지함으로써 데이터의 일관성과 품질이 향상되었습니다. 이러한 변경은 시스템의 안정성과 신뢰성을 높이며, 최종 사용자의 만족도를 개선하는 데 기여했습니다.

profile
전 체리 알러지가 있어요!

0개의 댓글