-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature/report review] 식당 리뷰 신고하기 기능 개발 및 코드 리펙토링 #76
Conversation
추가 사항오늘 먹었어요 리뷰가 없을 경우, NPE 발생으로 인해 첫 번째 CI에서 실패했습니다. -> DTO 매핑 과정에서 null 체크 후, 없으면 그대로 null을 반환하는 것으로 처리했습니다. 테스트 케이스를 위한 더미 데이터 생성 시, insert 쿼리 오류로 두 번째 CI에서 실패했습니다. -> beforeEach 시, 원하는 데이터를 insert하는 것으로 해결했습니다. 오늘 먹었어요 리뷰 조회 쿼리에 오류가 있어 해당 부분 수정했습니다. ( 서브 쿼리 조건절 AND -> OR ) |
@Qbeom0925 ㅎㅎ... 로컬에서는 되는데, 액션에서 실패하는지 모르겠어요... HELP 🥺 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
신고하기 기능에 대해서 관리자가 삭제 처리 하는 것이 맞다고 생각을 합니다!
But, 현재 리소스에 백오피스를 만들 것이 고려되어 있지 않기에 현재는 case2로 진행하고 운영 단계에서 유저가 많지 않을 것으로 예상되기에 당장에 백오피스는 괜찮을 듯 합니다.
비즈니스 로직과 repository를 갖는것을 구분하는 리펙토링은 비즈니스 로직에 집중 할 수 있게 된 것 같습니다. 좋습니다!!
ErrorCode 깔끔하게 잘 되어있는거 확인했습니다!!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
제가 깃허브 액션 관련해서 손 보겠습니다!
case2 로 로직 수정해두겠습니다! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
해당 PR에서 GitHub Action Fail관련 문제 해결했습니다.
조치는 p6spy를 제거와 test yaml파일에서 jpa showsql을 false로 변경했습니다.
해당 조치를 취하게 된 이유는 github action의 로그를 보았을때 쓰레드 관련 에러가 발생했으며, 액션을 실행할 때마다 실패 갯수가 달랐기에 혹시 github action의 사양이 낮고 한번에 너무 많은 Task를 처리하다 생긴 에러가 아닐까하여, log 기능을 꺼보았는데 정상 작동 확인하였습니다.
운영 단계에서는 jacoco의 html을 slack으로 받는 로직을 추가해두어도 좋을 것 같네요 ^0^
고생하셨습니다.
작업 내용
식당 리뷰 신고하기 기능 개발 및 코드 리펙토링을 진행했습니다.
관련 이슈
#75
작업 확인 방법
Swagger-ui
추가 정보 (선택 사항)
case 1) 신고 접수 -> 즉시 삭제 처리
case 2) 신고 접수 -> 관리자가 삭제 처리
후자의 경우, 백오피스가 필요할 것으로 생각됩니다.
정책에 따라 신고 테이블(reports)는 변경될 수 있습니다. ( 이를 위해 최소한의 데이터만을 정의해두었습니다. )
swagger-ui 접근 제한을 위해 application.yml 파일에서 swagger 설정을 변경했습니다.
prod 환경에서 swagger 접근으로 무분별하게 디비 접근을 할 수 없도록 사전에 방지하는 것이 좋을 거 같다는 생각에 변경했습니다.
서비스 계층 리펙토링
기존 : 하나의 서비스에 여러 repository를 접근
변경 : 하나의 repository에 접근할 수 있는 통로는 단 한군데.
하나의 테이블에 접근할 수 있는 통로를 한 군데만 두어 코드의 유지보수성을 높이고, 높은 의존 관계를 낮추는 작업을 수행했습니다.
**commServiceImpl
가 붙은 클래스가 repository를 갖는 서비스입니다.이외에 기존 컨벤션 규칙에 따른
**ServiceImpl
은 비즈니스 로직을 수행하는 서비스입니다.기존 : 도메인의 시작 키워드 + 000 + i ( 예: U0001 -> 유저 관련 )
변경 : 도메인 키워드 축약어 + 000 + i ( 예: USR001 -> 유저 관련 ) USR ... USER
변경 이유 : 겹치는 대문자가 생기면 이를 구분하기가 어렵다고 생각되어 prefix를 전체적으로 변경하였습니다.