Skip to content
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

Q&A 관련 인프라 리팩토링 #686

Merged
merged 17 commits into from
Oct 15, 2023
Merged

Q&A 관련 인프라 리팩토링 #686

merged 17 commits into from
Oct 15, 2023

Conversation

JJ503
Copy link
Member

@JJ503 JJ503 commented Oct 15, 2023

📄 작업 내용 요약

Q&A 관련 인프라 리팩토링

🙋🏻 리뷰 시 주의 깊게 확인해야 하는 코드

특별히 없습니다.

📎 Issue 번호

@JJ503 JJ503 added refactor 기존 기능에 변경이 없는 구현 변경 시 backend 백엔드와 관련된 이슈나 PR에 사용 labels Oct 15, 2023
@JJ503 JJ503 added this to the 최종 데모데이 milestone Oct 15, 2023
@JJ503 JJ503 requested review from apptie, swonny and kwonyj1022 October 15, 2023 05:49
@JJ503 JJ503 self-assigned this Oct 15, 2023
Copy link
Collaborator

@swonny swonny left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다 제이밍
간단한 질문 한 개 남기고 approve하겠습니다.

left join fetch q.answer
join fetch q.auction a
join fetch a.seller
where q.deleted = false and a.id = :auctionId
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

질문

질문은 정렬이 필요하지 않은지 궁금합니다!

// when
final List<Question> actual = questionRepository.findAllByAuctionId(질문이_3개_답변이_2개인_경매.getId());

System.out.println(actual.size());
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

필수

디버깅의 흔적이군요..ㅠㅠ

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

으악 지웠습니다


Answer save(final Answer answer);

boolean existsByQuestionId(Long questionId);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

필수

final이 누락되었습니다

Copy link
Member Author

@JJ503 JJ503 Oct 15, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

추가해두었습니다. 감사합니다.

Copy link
Collaborator

@kwonyj1022 kwonyj1022 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

수고하셨습니다!

Copy link
Collaborator

@apptie apptie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이슈가 없는 것으로 보여 Approve 하겠습니다

@JJ503 JJ503 merged commit 6351bee into develop-be Oct 15, 2023
1 check passed
@JJ503 JJ503 deleted the refactor/673 branch October 15, 2023 07:02
JJ503 added a commit that referenced this pull request Oct 18, 2023
* refactor: #605 경매 목록 조회 시 마감된 경매의 정렬 순서를 후순위로 변경 (#608)

* refactor: 경매 목록 조회 시 마감된 경매의 정렬 순서를 후순위로 변경

* test: 정렬 조건 변경으로 인한 테스트 케이스 변경

* refactor: 복잡하지 않은 쿼리를 querydsl로 표현하지 않고 JPQL로 표현

* refactor: left outer join이 필요하지 않은 경우를 inner join으로 변경

* refactor: 모든 관계를 fetch join하는 Auction 조회 메서드 네이밍 변경

* feat: Auction만을 조회하는 메서드 추가

* refactor: Auction의 정보만이 필요한 비즈니스 로직에서 fetch join을 하지 않도록 변경

* chore: 배포 스크립트 의미 없는 break 키워드 삭제

* refactor: #613 경매 등록 시 경매 마감 시간 제한 변경 (#620)

* refactor: 마감 시간을 미래만 적용할 수 있도록 제약조건 변경

* feat: 마감 시간 Custom Validator 추가

* refactor: 경매 등록 요청 시 마감 시간 검증을 Custom Validator으로 하도록 변경

* refactor: #609 소셜 로그인 시 최초 로그인(회원가입)한 회원인지 여부 반환 (#612)

* refactor: 소셜 로그인 시 사용자가 최초 로그인을 하는지 여부를 의미하는 필드 추가

* docs: 문서 최신화

* refactor: 신규 회원가입을 했는지에 대한 네이밍을 명확하게 변경

* test: 실패하는 테스트 케이스 수정

* style: 개행 및 누락된 final 키워드 추가

* feat: #585 상호 평가 반영 스케줄링 (#602)

* feat: 신뢰도 점수 타입을 Double -> double로 변경

* feat: 평가 저장 시 신뢰도를 갱신하지 않고 저장만 하도록 변경

* feat: 신뢰도 업데이트에 필요한 비즈니스 로직 추가

* feat: 신뢰도 업데이트 서비스 구현에 필요한 비즈니스 로직 보완 및 레포지토리 추가

* feat: 신뢰도 업데이트 서비스 추가

* feat: 스케줄링 설정 추가

* feat: flyway 스크립트 추가

* style: 개행 수정

* feat: 신뢰도 업데이트 이력을 관리하는 엔티티의 toString 대상 항목 추가

* refactor: 평가 관련 일급컬렉션에서 EqualsAndHashCode 재정의 제거

* test: 테스트코드에서 선언과 assertion 분리

* comment: 주석 제거

* refactor: #625 회원 탈퇴 시 소셜 로그인 방식을 DB에서 조회하도록 변경 (#626)

* chore: flyway 버전 17 추가

* feat: User 도메인에 사용한 소셜 로그인 방식 필드 추가

* refactor: 회원 탈퇴 시 소셜 로그인 방식을 DB에서 조회하도록 변경

* refactor: Oauth2와 관련된 필드를 별도의 클래스로 분리

* chore: flyway 스크립트 버전 변경

* test: 의미 없는 테스트 mocking 삭제

* refactor: access token 재발급 시 refresh token도 재발급되도록 변경

* feat: #587 Q&A 알림 기능 구현 (#614)

* feat: 답변 서비스에서 알림 이벤트 발행

* feat: 질문 서비스에서 알림 이벤트 발행

* feat: 질문, 답변 이벤트 리스너 추가

* chore: 수정 필요한 부분 주석 추가

* refactor: 이미지 절대 경로 컨트롤러에서 전송하도록 수정

* refactor: 이벤트 발행 시 별도의 DTO가 아닌 도메인 전달하도록 수정

* fix: 잘못 복제한 커밋 내역 복구

* refactor: 레포지토리 저장 엔티티를 이벤트 dto에 전달하도록 수정

* refactor: #649 Auction 관련 인프라 리펙토링 (#651)

* refactor: Querydsl 기반의 Auction 인터페이스 제거 및 구현체에서 일반 클래스로 변환

* refactor: Querydsl 기반의 Auction 조회 인터페이스를 domain 패키지로 이동

* refactor: 경매 목록 조회 메서드 파라미터 순서 변경

* feat: 도메인 영역의 Repository 추가

* feat: 도메인 영역의 Repository 구현체 추가

* test: 누락된 테스트 케이스 추가

* feat: 경매 id가 존재하는지 여부를 반환하는 기능 추가

* refactor: Service에서 도메인 영역의 Repository를 사용하도록 변경

* refactor: Service에서 도메인 영역의 Repository를 사용하도록 변경

* rename: 경매 목록 조회 관련 테스트 패키지 분리

* remove: 사용하지 않는 경매 더미 데이터 초기화 로직 삭제

* test: fixture에서 구체적인 DB 구현 기술에 의존적이지 않도록 변경

* refactor: #648 Category 관련 인프라 리펙토링 (#650)

* feat: 도메인 영역의 Repository 추가

* feat: 도메인 영역의 Repository 구현체 추가

* refactor: Service에서 도메인 영역의 Repository를 사용하도록 변경

* refactor: Service에서 도메인 영역의 Repository를 사용하도록 변경

* refactor: #645 Authentication 관련 인프라 리펙토링 (#647)

* test: 누락된 테스트 케이스 추가

* feat: 도메인 영역의 Repository 추가

* feat: 도메인 영역의 Repository 구현체 추가

* refactor: Service에서 도메인 영역의 Repository를 사용하도록 변경

* test: when & then 주석 추가

* test: BlackListToken의 도메인 인터페이스 Fixture에서 구체적인 인프라 구현 방식을 알지 못하도록 변경

* test: fixture 메서드 네이밍 변경

* refactor: #655 User 관련 인프라 리팩토링 (#661)

* feat: 도메인 영역의 사용자 Repository 추가

* feat: 도메인 영역의 사용자 Repository 구현체 추가

* test: 누락된 테스트 케이스 추가

* refactor: Service에서 도메인 영역의 사용자 Repository를 사용하도록 변경

* refactor: id로 사용자 조회 시 삭제된 값은 조회하지 않도록 수정

* feat: 도메인 영역의 사용자 신뢰도 Repository 추가

* feat: 도메인 영역의 사용자 신뢰도 Repository 구현체 추가

* test: 누락된 테스트 케이스 추가

* refactor: Service에서 도메인 영역의 사용자 신뢰도 Repository를 사용하도록 변경

* refactor: 사용자 신뢰도 조회 시 사용자도 함께 조회되도록 수정

* fix: 사용자 레포지토리 구현체에서 잘못된 메서드를 호출해서 테스트를 실패하는 현상 해결

* test: 테스트 실패 해결

* refactor: 사용자 신뢰도 엔티티에서 cascade 옵션 수정

* feat: 도메인 영역의 신뢰도 업데이트 기록 Repository 추가

* feat: 도메인 영역의 신뢰도 업데이트 기록 Repository 구현체 추가

* test: 누락된 테스트 케이스 추가

* refactor: Service에서 도메인 영역의 신뢰도 업데이트 기록 Repository를 사용하도록 변경

* refactor: 픽스처에서 Jpa 사용자 Repository 의존 제거

* refactor: 픽스처에서 Jpa 사용자 신뢰도 Repository 의존 제거

* refactor: 픽스처에서 Jpa 신뢰도 업데이트 기록 Repository 의존 제거

* style: 개행 추가

* refactor: 누락된 final 추가

* test: jpa 저장 테스트 시 불필요한 엔티티 매니저 호출 제거

* refactor: 누락된 final 추가

* refactor: RepositoryImpl 테스트에서 Jpa 의존 제거

* refactor: #656 ChatRoom 관련 인프라 리팩토링 (#663)

* feat: 도메인 영역의 채팅방 Repository 추가

* refactor: 불필요하게 Querydsl을 사용한 코드를 JPQL을 사용하도록 변경

* feat: 도메인 영역의 채팅방 Repository 구현체 추가

* refactor: Service에서 도메인 영역의 채팅방 Repository를 사용하도록 변경

* refactor: 픽스처에서 Jpa 채팅방 Repository 의존 제거

* feat: 도메인 영역의 채팅방 정보(채팅방, 이미지) dto를 반환하는 Repository 추가

* feat: 도메인 영역의 채팅방 정보(채팅방, 이미지) dto를 반환하는 Repository 구현체 추가

* refactor: Service에서 도메인 영역의 채팅방 정보(채팅방, 이미지) dto를 반환하는 Repository를 사용하도록 변경

* feat: 도메인 영역의 채팅방 정보(채팅방, 메시지, 이미지) dto를 반환하는 Repository 추가

* feat: 도메인 영역의 채팅방 정보(채팅방, 메시지, 이미지) dto를 반환하는 Repository 구현체 추가

* feat: Service에서 도메인 영역의 채팅방 정보(채팅방, 메시지, 이미지) dto를 반환하는 Repository를 사용하도록 변경

* style: 개행 추가

* refactor: 누락된 final 추가

* ci: 브랜치 최신화 과정에서 누락된 사항 추가 및 충돌 해결

* refactor: #658 Region 관련 인프라 리팩토링 (#665)

* feat: 도메인 영역의 지역 Repository 추가

* feat: 도메인 영역의 지역 Repository 구현체 추가

* test: 누락된 테스트 케이스 추가

* refactor: Service에서 도메인 영역의 지역 Repository를 사용하도록 변경

* test: 테스트에서 Jpa 의존 제거

* test: 테스트에서 Jpa 의존 제거

* style: 공백 추가

* refactor: 누락된 final 추가

* refactor: #657 Review 관련 인프라 리팩토링 (#664)

* feat: 도메인 영역의 평가 Repository 추가

* feat: 도메인 영역의 평가 Repository 구현체 추가

* refactor: Service에서 도메인 영역의 평가 Repository를 사용하도록 변경

* test: 픽스처에서 Jpa 의존 제거

* test: 테스트 실패 케이스 해결

* refactor: 누락된 final 추가

* ci: 브랜치 최신화 과정에서 누락된 사항 추가 및 충돌 해결

* refactor: #659 입찰 목록 조회 API 명세 변경에 따른 수정 (#667)

* refactor: 입찰 목록 조회 시 배열이 그대로 반환되도록 수정

* docs: 문서화 최신화

* refactor: 체이닝 개행 수정

* refactor: #660 Q&A 목록 조회 API 명세 변경에 따른 수정 (#669)

* refactor: 컨벤션에 따른 개행 수정

* feat: 질문과 답변 조회 시 질문 작성자인지 판단하는 값 추가

* refactor: 컨벤션에 따른 개행 수정

* refactor: 메서드 순서 변경

* fix: 충돌로 발생한 문제 해결

* refactor: import 와일드카드 제거

* fix: #680 신규 회원가입이 안되는 버그 수정 (#681)

* fix: 신규 회원 가입 시 null이 될 수 없는 필드를 초기화하지 않아 레코드 저장에 실패하던 문제 수정

* test: 테스트 케이스 검증 부분 추가 및 잘못된 테스트 케이스 수정

* test: Fixture 네이밍과 테스트 메서드 네이밍을 명확하게 변경

* refactor: 초기 신뢰도를 상수로 초기화

* refactor: 초기 신뢰도 상수 변경

* refactor: #670 Image 관련 인프라 리팩토링 (#678)

* refactor: 변수명을 명확하게 수정

* feat: 도메인 영역에 경매 이미지 repository 추가

* feat: 도메인 영역에 경매 이미지 repository의 구현체 추가

* refactor: service에서 도메인 영역의 repository를 사용하도록 변경

* feat: 도메인 영역에 프로필 이미지 repository 추가

* feat: 도메인 영역에 프로필 이미지 repository의 구현체 추가

* refactor: service에서 도메인 영역의 프로필 이미지 repository를 사용하도록 변경

* refactor: 변수명을 의도에 맞게 수정

* refactor: 레파지토리 어노테이션 누락 추가

* test: final 추가

* test: final 추가

* refactor: import 와일드카드 제거

* refactor: 쿼리문 명령어를 대문자로 수정

* refactor: 세팅 메서드명 수정

* refactor: 잘못된 클래스명 수정

* refactor: #671 Bid 관련 인프라 리팩토링 (#684)

* feat: 도메인 영역에 입찰 repository 추가

* refactor: 메서드 네이밍과 파라미터 변수명을 명확하게 수정

* feat: 도메인 영역에 입찰 repository의 구현체 추가

* refactor: service에서 도메인 영역의 입찰 repository를 사용하도록 변경

* refactor: 레파지토리 어노테이션 누락 추가

* test: 테스트 영역에서 도메인 영역의 입찰 repository를 사용하도록 변경

* refactor: 쿼리문 명령어를 대문자로 수정

* refactor: 레파지토리에서 null이 아닌 Optional을 통해 반환되도록 수정

* test: 도메인 영역에 입찰 repository의 구현체 테스트 추가

* test: 테스트 영역에서 도메인 영역의 repository를 사용하도록 변경

* refactor: #672 Report 관련 인프라 리팩토링 (#685)

* feat: 도메인 영역에 경매 신고 repository 추가

* refactor: EntityGraph를 jpql로 변경

* refactor: EntityGraph를 jpql로 변경

* feat: 도메인 영역에 경매 신고 repository 구현체 추가

* refactor: service에서 도메인 영역의 경매 신고 repository를 사용하도록 변경

* test: 테스트에서 도메인 영역의 경매 신고 repository를 사용하도록 변경

* feat: 도메인 영역에 채팅방 신고 repository 추가

* refactor: EntityGraph를 jpql로 변경

* feat: 도메인 영역에 쪽지방 신고 repository 구현체 추가

* test: 테스트 실패 해결

* test: 픽스처 클래스 네이밍 수정

* feat: 도메인 영역에 질문 신고 repository 추가

* refactor: EntityGraph를 jpql로 변경

* test: 테스트에서 도메인 영역의 질문 신고 repository를 사용하도록 변경

* refactor: service에서 도메인 영역의 쪽지방 신고 repository를 사용하도록 변경

* refactor: service에서 도메인 영역의 질문 신고 repository를 사용하도록 변경

* refactor: import 와일드카드 제거

* refactor: EntityGraph를 jpql로 변경

* feat: 도메인 영역에 답변 신고 repository 추가

* feat: 도메인 영역에 답변 신고 repository 구현체 추가

* refactor: service에서 도메인 영역의 답변 신고 repository를 사용하도록 변경

* test: 테스트에서 도메인 영역의 신고관련 repository를 사용하도록 변경

* refactor: import 와일드카드 제거

* test: 테스트 실패 문제 해결

* test: final 추가

* refactor: 쿼리문 명령어를 대문자로 수정

* refactor: 클래스명 수정

* refactor: 필드 순서 변경 및 불필효한 필드 제거

* test: 테스트 영역에서 도메인 영역의 repository를 사용하도록 변경

* refactor: #673 Q&A 관련 인프라 리팩토링 (#686)

* feat: 도메인 영역에 질문 repository 추가

* refactor: EntityGraph를 jpql로 변경

* refactor: 사용하지 않는 클래스 제거

* refactor: 잘못된 쿼리문 수정

* feat: 도메인 영역에 질문 repository 구현체 추가

* refactor: service에서 도메인 영역의 질문 repository를 사용하도록 변경

* test: 테스트에서 도메인 영역의 질문 repository를 사용하도록 변경

* refactor: 사용하지 않는 메서드 제거

* refactor: 쿼리문 명령는 대문자로 수정

* feat: 도메인 영역에 답변 repository 추가

* feat: 도메인 영역에 답변 repository 구현체 추가

* test: 테스트에서 도메인 영역의 답변 repository를 사용하도록 변경

* test: 테스트 실패 문제 해결

* fix: 잘못된 쿼리 조건 수정

* test: 불필요한 로직 제거

* refactor: final 누락 추가

* feat: #687 닉네임 수정 시 중복 예외 처리 추가 (#688)

* feat: 이름 수정시 이미 존재하는 이름에 대한 예외처리 추가

* feat: 예외 처리 추가

* refactor: #689 Message 인프라 리팩토링 (#694)

* feat: 도메인 영역에 메시지 레포지토리 추가

* refactor: 메서드명에서 레포지토리명과 중복되는 부분 제거

* fix: 불필요한 메서드 제거

* refactor: 도메인 메시지 레포지토의 구현체 추가

* refactor: 서비스에서 도메인 레포지토리 사용하도록 변경

* refactor: 클래스명 변경에 따른 테스트 네이밍 변경

* test: 도메인 메시지 레포지토리 구현체 테스트 추가

* refactor: 변수명 명확하게 변경

* refactor: 누락된 then절 추가

* test: 테스트에서 도메인 영역의 메시지 레포지토리 사용하도록 수정

* refactor: 테스트 픽스처에서 도메인 영역의 메시지 레포지토리를 사용하도록 변경

* refactor: 불필요한 주석 삭제

* refactor: 누락된 SuppressWarnings 어노테이션 추가

* refactor: 불필요한 import문 삭제 및 사용되지 않는 필드 지역변수로 변경

* style: 불필요한 개행 제거

* refactor: #692 경매 상세 조회 시 로그인한 사용자가 해당 경매의 최고 입찰자인지 여부를 반환하도록 응답 형식 변경 (#695)

* refactor: 경매 상세 조회 api 요청 시 로그인한 사용자가 해당 경매의 최종 입찰자인지 여부를 반환하도록 변경

* docs: 문서 최신화

* style: 개행 변경

* refactor: #690 Device 인프라 리팩토링  (#696)

* feat: 도메인 영역 기기토큰 레포지토리 추가

* feat: 도메인 기기토큰 레포지토리의 구현체 추가

* feat: 기기토큰 레포지토리 메서드 중 누락된 메서드 추가

* refactor: 서비스 레이어에서 도메인 영역 기기토큰 레포지토리 사용하도록 변경

* refactor: 누락된 final 추가

* test: 테스트에서 도메인 영역의 기기토큰 레포지토리 사용하도록 변경

* refactor: 레포지토리명에 맞춰 변수명 변경

* refactor: 테스트 픽스처에서 도메인 영역의 사용자 레포지토리 사용하도록 변경

* test: 기기토큰 레포지토리 구현체 테스트 추가

* chore: 질문에 대한 todo 주석 추가

* style: 개행 추가

* refactor: jpaQueryFactory 파라미터명 통일

* refactor: 필드 순서 변경

* refactor: given절 추가

* refactor: jpa 레포지토리 저장 테스트 메서드에서 엔티티 매니저 사용하는 코드 삭제

* refactor: 불필요한 필드 삭제

* refactor: 테스트에서 도메인 레포지토리 사용하도록 변경

* refactor: 불필요한 todo 삭제

* refactor: #697 질문과 답변 조회 시 삭제된 답변은 보이지 않도록 수정 (#698)

* test: 질문이 삭제된 경우 조회되지 않음을 나타내는 테스트 추가

* refactor: 답변이 삭제된 경우 null이 반환되도록 수정

* fix: 답변이 null인 경우에 대한 처리 추가 (#700)

* feat: #573 탈퇴 시 사용자 닉네임 랜덤 값으로 수정 (#606)

* feat: 탈퇴 시 닉네임을 랜덤 UUID로 변경하는 로직 추가

* feat: 탈퇴 시 프로필 이미지 삭제 기능 추가

* refactor: 가입 시 이미지를 기본 이미지가 아닌 null로 전달

* feat: 프로필 이미지 아이디가 null이라면 기본 이미지 url을 반환 기능 추가

* refactor: import 와일드카드 제거

* feat: 이미지가 null인 경우 기본 이미지를 반환하는 기능 추가

* test: 픽스처 네이밍을 명확하게 수정

* fix: 충돌 문제 해결

* fix: #701 답변 삭제 시 다시 답변을 달지 못하는 문제 해결 (#704)

* feat: 답변에 작성자 필드 추가

* feat: 필드 추가에 대한 flyway 스크립트 추가

* feat: 답변 삭제 시 질문과의 연관관계 끊기 기능 추가

* refactor: 문자열 상수 처리

* test: import 와일드카드 제거

* fix: 문제가 발생할 flyway 스크립트 수정

* fix: flyway 스크립트 문제 해결 (#706)

* feat: #705 경매 관련 탈퇴 로직 추가 (#710)

* refactor: 경매 상세 조회 시 탈퇴한 사용자라면 알 수 없음으로 출력되도록 수정

* refactor: ToString과 EqualsAndHashCode 설정 수정

* feat: 사용자가 등록한 경매, 마지막인 경매 중 현재 진행 중인 경매가 있는지 확인하는 기능 레파지토리에 추가

* feat: 사용자가 등록한 경매, 마지막인 경매 중 현재 진행 중인 경매가 있는지 확인하는 기능 서비스에 추가

* refactor: jpql에서 querydsl로 변경

* test: 컨트롤러 테스트 추가

* test: import 와일드카드 제거

* refactor: querydsl을 jpa 레파지토리로 이동

---------

Co-authored-by: apptie <[email protected]>
Co-authored-by: 권예진 <[email protected]>
Co-authored-by: 최승원 Merry <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend 백엔드와 관련된 이슈나 PR에 사용 refactor 기존 기능에 변경이 없는 구현 변경 시
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

4 participants