MusinsaObserver / backend

1 stars 0 forks source link

코드 일관성 확보 #8

Closed andrewkimswe closed 2 weeks ago

andrewkimswe commented 3 weeks ago

문제 설명

현재 LikeServiceProductService에서 사용되는 예외 처리 방식 및 코드 구조에 일관성이 부족합니다. 알림 로직, DTO 변환 로직 등 다양한 부분에서 중복 코드가 존재하거나 코드 가독성이 떨어집니다. 이를 개선하여 코드 일관성을 확보하고 유지보수성을 향상시키고자 합니다.

개선사항

  1. 맞춤형 예외 클래스 활용 및 예외 처리 일관성 개선:

    • BusinessExceptionGlobalExceptionHandler에서 예외 처리 방식을 일관되게 개선합니다.
    • LikeServiceProductService의 예외 처리에서 RuntimeException 대신 맞춤형 예외 클래스를 정의하여 사용합니다. (UserNotFoundException, ProductAlreadyLikedException 등)
  2. 알림 주기 설정 유연화:

    • 하드코딩된 NOTIFICATION_INTERVAL_DAYS 상수를 환경 설정 파일 (application.properties 또는 application.yml)로 이동하여 운영 환경에서 쉽게 조정할 수 있도록 합니다.
  3. 알림 로직 분리:

    • LikeServicenotifyPriceDrop() 메서드에 포함된 알림 전송 로직을 별도의 NotificationService 클래스로 분리하여 단일 책임 원칙을 유지합니다.
  4. 중복 코드 제거 및 코드 재사용성 강화:

    • ProductServicesearchProducts()searchProduct() 메서드에서 중복된 가격 계산 로직을 별도의 헬퍼 메서드나 유틸리티 클래스로 분리하여 유지보수성을 향상시킵니다.
    • getLikedProductsByUser() 메서드에서 ProductResponseDto로 변환하는 로직을 변환 전용 유틸리티 클래스로 분리하여 재사용성을 높입니다.

수정이 필요한 파일

예상 효과