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

탈퇴 기능 추가 #378

Merged
merged 25 commits into from
Sep 15, 2023
Merged

탈퇴 기능 추가 #378

merged 25 commits into from
Sep 15, 2023

Conversation

JJ503
Copy link
Member

@JJ503 JJ503 commented Sep 14, 2023

📄 작업 내용 요약

탈퇴 기능 추가

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

진짜 주의해야 할 내용

  • 엔초가 어딘가에서 flyway 추가했다고 했는데, 버전 부분에서 주의해야 합니다.
  • @kwonyj1022 는 flyway를 적용한 pr과 버전 번호 알려주시면 감사하겠습니다.

카카오 연결 끊기 디스커션

  • 사실 별거 아닌데 그냥 방법 적어놨습니다..ㅎㅎ

재가입 정책을 위한 탈퇴 방식 고민

  • 현재 땅땅땅의 재가입 정책

    • 재가입 시 이전에 가입했던 계정과 다른 계정으로 볼 것
    • 이를 위해 user 테이블에서 탈퇴된 계정과 재가입한 계정을 구분하는 방법이 필요함
  • 방법 1

    • oauthid에서 unique 설정을 제거해서 다시 가입이 가능하도록 함
    • 회원가입 시 user 테이블에 oauthid가 동일하고 is_deleted가 false인 행이 있는지 확인
  • 방법 2

    • 탈퇴 시 해당 계정에서 파생된 데이터(경매글, 입찰, 채팅방, 메시지 등)의 userId를 null로 변경함

⇒ 방법 1로 결정!

  • 왜?
    • 데이터를 null로 두는 것은 위험함

flyway 롤백 sql

ALTER TABLE users
MODIFY COLUMN uq_oauth_id varchar(50) UNIQUE;

📎 Issue 번호

@JJ503 JJ503 added backend 백엔드와 관련된 이슈나 PR에 사용 feature 기능 추가 시 labels Sep 14, 2023
@JJ503 JJ503 added this to the 5차 데모데이 milestone Sep 14, 2023
@JJ503 JJ503 self-assigned this Sep 14, 2023
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.

제이미 수고하셨어요!
근데 탈퇴 요청받는 컨트롤러가 없는 것 같아서.. request changes 했습니다..

Comment on lines -30 to -52
@DeleteMapping("/withdrawal")
public ResponseEntity<Void> delete(@AuthenticateUser final AuthenticationUserInfo userInfo) {
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.

뭐야... 왜 자꾸 컨트롤러 안 만드는 거야...

Comment on lines 61 to 69
// TODO: 2023/09/15 [고민] getName() 메서드를 통해 가져오게 된다면 헷갈릴까요?
// TODO: 2023/09/15 [고민] 출력을 위한 로직이 여기 있다면 어색할까요? 사실 귀찮아서 여기 두긴 했습니다.
public String getName() {
if (isDeleted()) {
return UNKOWN_NAME;
}

return name;
}
Copy link
Collaborator

Choose a reason for hiding this comment

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

저는 사실 User 클래스에 unknownUser를 반환하는 static 메서드가 있고, 레포지토리에서 findById()시 deleted가 true면 unknownUser를 반환하는 형태를 생각하긴 했는데, 이렇게 해도 괜찮을 것 같아요. 어차피 dto에 넣을 때 getName() 하니까 로직상 문제는 없을 것 같고.. 출력을 위한 로직이 있는게 어색하다면 아예 delete할 때 유저 이름을 바꾸는 것은 별로일까요?

Copy link
Collaborator

Choose a reason for hiding this comment

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

엔초가 말씀하신 부분도 결국 비즈니스 로직에 출력 관련 로직이 포함된다고 생각합니다. 알 수 없음이 다른 값으로 바뀌는 경우 비즈니스 로직을 수정해야 하기 때문입니다. 따라서 기존 코드의 통일성일 지켜 DTO에서 해당 로직을 수행하는 것이 자연스럽다고 생각합니다.

@@ -209,6 +209,7 @@ void setUp(@Autowired RestDocumentationContextProvider provider) {
);
}

// TODO: 2023/09/13 [고민] 회원과 사용자라는 용어를 통일할까요?
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
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.

안녕하세요 제이미
반갑습니다
TODO의 내용에 제 의견을 적었는데 그렇습니다
뭔가뭔가 아쉬운 부분이 있어서 RC를 드리도록 하겠습니다

Comment on lines 63 to 65
do {
name = RandomNameGenerator.generate();
} while (isAlreadyExist(name));
Copy link
Collaborator

Choose a reason for hiding this comment

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

do-while문은 가독성에 좋지 않다고 생각합니다
그리고 calculateRandomNumber()라는 메서드 네이밍에 비해 반환하는건 name이라 좀 애매한 것 같습니다
name도 값을 초기화하지 않는건 위험하다고 생각합니다

하지만 이건 다른 분들의 의견도 궁금하네요

Copy link
Collaborator

Choose a reason for hiding this comment

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

대충 전 이렇게 할 것 같기는 합니다

String name = RandomNameGenerator.generate();

while (isAlreadyExist(name)) {
    name = RandomNameGenerator.generate();
}

return name;

final OAuth2UserInformationProvider provider = providerComposite.findProvider(oauth2Type);
final UserInformationDto userInformationDto = provider.findUserInformation(oauth2AccessToken);
final User user = userRepository.findByOauthIdAndDeletedIsFalse(userInformationDto.findUserId())
.orElseThrow(() -> new InaccessibleWithdrawalException("탈퇴에 대한 권한 없습니다."));
Copy link
Collaborator

Choose a reason for hiding this comment

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

Inaccessible보다 Invalid라는 네이밍이 많아서 변경을 부탁드리고 싶습니다
예외 메세지도 탈퇴에 대한 권한이 없습니다. 정도로..?

Copy link
Member Author

Choose a reason for hiding this comment

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

저 몰래 Invalid로 바꾸시면 안 됩니다... 속상

Copy link
Collaborator

Choose a reason for hiding this comment

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

일단 저는 아닙니다


provider.unlinkUserBy(oauth2AccessToken, user.getOauthId());

// TODO: 2023/09/15 [고민] 일단 해당 메서드로 모두 몰기로 해서 blackList로 만드는 것도 여기서 호출하도록 수정했습니다. 그런데 잘 모르곘네요...
Copy link
Collaborator

Choose a reason for hiding this comment

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

탈퇴 과정중에 필요하기는 하니까...뭐...음...그렇습니다
일단 괜찮을거같아요

// TODO: 2023/09/15 [고민] 일단 해당 메서드로 모두 몰기로 해서 blackList로 만드는 것도 여기서 호출하도록 수정했습니다. 그런데 잘 모르곘네요...
blackListTokenService.registerBlackListToken(oauth2AccessToken, refreshToken);

user.withdrawal();
Copy link
Collaborator

Choose a reason for hiding this comment

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

근데 순서를 탈퇴 -> 탈퇴로 인한 사용자 레코드 DB 변경
DB 변경에 성공하면 토큰 비활성화 -> 블랙리스트 토큰쪽 DB에 저장
사용자 레코드 DB 변경 + 블랙리스트 토큰 DB 추가가 되면 unlink를 해야 할 것 같습니다

Copy link
Collaborator

Choose a reason for hiding this comment

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

지금 상황은 카카오 연결 끊기는 성공했지만(외부 서비스라 왠만하면 성공할 것 같습니다)
토큰을 블랙리스트에 등록하거나 사용자 탈퇴 처리를 하는 과정 중 문제가 생겨 롤백을 하게 될지라도
카카오는 이미 연결을 끊어버렸기 때문에 소셜 로그인 자체가 불능이 될 것 같습니다

@@ -65,4 +67,17 @@ public ResponseEntity<Void> logout(
return ResponseEntity.noContent()
.build();
}

// TODO: 2023/09/15 [고민] oauth2Type은 클라이언트를 통해서만 가져올 수 있나요?
Copy link
Collaborator

Choose a reason for hiding this comment

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

이건 다형성 적용된 부분이라고 봐주시면 될 것 같습니다
지금은 카카오만 지원하지만 네이버나 뭐 그런걸 지원할수도 있고
이건 클라이언트 측에서 뭘 선택하는지 전달해줄 수 있기 때문입니다

Comment on lines 61 to 62
// TODO: 2023/09/15 [고민] getName() 메서드를 통해 가져오게 된다면 헷갈릴까요?
// TODO: 2023/09/15 [고민] 출력을 위한 로직이 여기 있다면 어색할까요? 사실 귀찮아서 여기 두긴 했습니다.
Copy link
Collaborator

Choose a reason for hiding this comment

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

getName() 메서드를 통해 가져오게 된다면 헷갈릴까요?
-> name을 가져오는 것이라면 getter는 괜찮을 것 같습니다

출력을 위한 로직이 여기 있다면 어색할까요? 사실 귀찮아서 여기 두긴 했습니다.
-> 저는 도메인에 출력 관련 로직이 있으면 안된다고 생각합니다
응답을 위한 반환 로직이라면 컨트롤러나 DTO에 있어야 할 것 같다고 생각합니다

@kwonyj1022
Copy link
Collaborator

제이미 깜빡하고 말씀 못 드렸네요. 회원 탈퇴 시에 device token 지워주는 기능도 추가해 주시면 감사하겠습니다!!

@JJ503
Copy link
Member Author

JJ503 commented Sep 15, 2023

API 명세 확인 부탁드립니다.

회원 탈퇴

DELETE /oauth2/withdrawal/{oauth2Type}

요청

Header
Authorization: Bearer {accessToken}

{
  refreshToken: "Bearer {refreshToken}"(String)
}

응답

204 No Content

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.

고생하셨습니다 제이밍
TODO 관련 의견 하나와 컨벤션 관련 수정 요청 합니다!
TODO 관련 의견은 지토가 rc 남겨주셨고,
컨벤션은 간단한 부분이라 approve 합니다. 바빠도 꼭 반영해주세요!!

}

public static String generate() {
StringBuilder name = new StringBuilder();
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
Collaborator

Choose a reason for hiding this comment

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

해당 클래스에 전체적으로 final이 누락되었습니다

Comment on lines 61 to 69
// TODO: 2023/09/15 [고민] getName() 메서드를 통해 가져오게 된다면 헷갈릴까요?
// TODO: 2023/09/15 [고민] 출력을 위한 로직이 여기 있다면 어색할까요? 사실 귀찮아서 여기 두긴 했습니다.
public String getName() {
if (isDeleted()) {
return UNKOWN_NAME;
}

return name;
}
Copy link
Collaborator

Choose a reason for hiding this comment

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

엔초가 말씀하신 부분도 결국 비즈니스 로직에 출력 관련 로직이 포함된다고 생각합니다. 알 수 없음이 다른 값으로 바뀌는 경우 비즈니스 로직을 수정해야 하기 때문입니다. 따라서 기존 코드의 통일성일 지켜 DTO에서 해당 로직을 수행하는 것이 자연스럽다고 생각합니다.

# Conflicts:
#	backend/ddang/src/docs/asciidoc/docs.adoc
#	backend/ddang/src/main/java/com/ddang/ddang/auction/presentation/dto/response/ReadAuctionDetailResponse.java
#	backend/ddang/src/main/java/com/ddang/ddang/authentication/application/AuthenticationService.java
#	backend/ddang/src/main/java/com/ddang/ddang/bid/application/dto/ReadBidDto.java
#	backend/ddang/src/main/java/com/ddang/ddang/bid/presentation/dto/response/ReadBidResponse.java
#	backend/ddang/src/main/java/com/ddang/ddang/chat/application/dto/ReadAuctionInChatRoomDto.java
#	backend/ddang/src/main/java/com/ddang/ddang/chat/application/dto/ReadUserInChatRoomDto.java
#	backend/ddang/src/main/java/com/ddang/ddang/chat/presentation/dto/response/ReadChatPartnerResponse.java
#	backend/ddang/src/main/java/com/ddang/ddang/report/application/dto/ReadReporterDto.java
#	backend/ddang/src/main/java/com/ddang/ddang/report/application/dto/ReadUserInReportDto.java
#	backend/ddang/src/main/java/com/ddang/ddang/user/application/UserService.java
#	backend/ddang/src/main/java/com/ddang/ddang/user/application/dto/ReadUserDto.java
#	backend/ddang/src/main/java/com/ddang/ddang/user/presentation/UserController.java
#	backend/ddang/src/main/java/com/ddang/ddang/user/presentation/dto/ReadUserResponse.java
#	backend/ddang/src/main/resources/application-local.yml
#	backend/ddang/src/main/resources/static/docs/docs.html
#	backend/ddang/src/test/java/com/ddang/ddang/authentication/application/AuthenticationServiceTest.java
#	backend/ddang/src/test/java/com/ddang/ddang/authentication/presentation/AuthenticationControllerTest.java
#	backend/ddang/src/test/java/com/ddang/ddang/bid/presentation/BidControllerTest.java
#	backend/ddang/src/test/java/com/ddang/ddang/chat/presentation/ChatRoomControllerTest.java
#	backend/ddang/src/test/java/com/ddang/ddang/report/presentation/ReportControllerTest.java
#	backend/ddang/src/test/java/com/ddang/ddang/user/application/UserServiceTest.java
#	backend/ddang/src/test/java/com/ddang/ddang/user/presentation/UserControllerTest.java
#	backend/ddang/src/test/resources/application.yml

import com.ddang.ddang.image.domain.ProfileImage;

public class ImageIdProcessor {
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
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를 하도록 하도록 하겠습니다
고생하셨습니다

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.

제이미 고생하셨습니다!!

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.

제이미 수고하셨습니다!! 22

@JJ503 JJ503 merged commit daa20c9 into develop-be Sep 15, 2023
@JJ503 JJ503 deleted the feature/364 branch September 15, 2023 10:38
swonny pushed a commit that referenced this pull request Oct 6, 2023
* feat: 카카오 연결 끊기 기능 추가

* feat: 탈퇴 기능 서비스 추가

* feat: oauth id에 대한 unique 속성 제거

* refactor: 회원과 사용자라는 용어 통일

* feat: 이름이 이미 존재하는지에 대한 확인 쿼리 메서드 추가

* feat: 랜덤 이름을 생성하는 util 클래스 추가

* feat: 재가입 시 이름에 대한 중복 문제 해결을 위한 로직 추가

* feat: 탈퇴한 회원의 이름을 가져오는 경우에 대한 로직 추가

* feat: 탈퇴 컨트롤러 기능 추가

* feat: 예외처리 추가

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

* refactor: flyway 버전 수정

* refactor: 탈퇴한 사용자 이름 변경 로직 위치 수정

* docs: 문서 최신화

* refactor: 예외 메시지 클래스명 수정

* refactor: do-while문을 while문으로 수정

* refactor: 탈퇴 시 로직 순서 변경

* style: 해결된 todo 제거

* ci: flyway 버전 수정

* ci: 충돌 문제 해결

* refactor: 이미지가 null인 경우에 대한 예외처리 추가

* refactor: util 클래스에 final 추가

* fix: 경매 이미지 url 경로 누락 문제 해결
swonny added a commit that referenced this pull request Oct 6, 2023
swonny added a commit that referenced this pull request Oct 6, 2023
* Revert "feat: #546 비즈니스 로직 호출 메트릭 추가 (#549)"

This reverts commit 2d0c4bc.

* Revert "refactor: #554 응답의 소수 데이터를 Float 타입으로 변경 (#559)"

This reverts commit ba1dd28.

* Revert "fix: #552 로그 설정 변경 (#556)"

This reverts commit 3e9e68a.

* Revert "fix: #552 로그 설정 변경 (#555)"

This reverts commit 4e23427.

* Revert "fix: #552 logback-spring.xml 설정 변경 (#553)"

This reverts commit f2cd679.

* Revert "feat: #294 유저 상호 평가 api 추가 (#515)"

This reverts commit e364f42.

* Revert "fix: #550 입찰 관련 알림 수신자 변경 (#551)"

This reverts commit f8e34a9.

* Revert "refactor: #503 메시지 전송, 상위 입찰 생성과 알림 전송 이벤트 분리 (#525)"

This reverts commit 41d9755.

* Revert "feat: #537 채팅 가능 기간 관련 정책 제거 및 탈퇴한 사용자와 채팅이 불가능하도록 기능 추가 (#538)"

This reverts commit 6159d0b.

* Revert "feat: #534 카테고리와 직거래 지역 조회 api 호출시 메모리 캐시 적용 (#544)"

This reverts commit 240fe17.

* Revert "refactor: #530 warn, error 레벨 로그 포맷 변경 (#532)"

This reverts commit b5610b8.

* Revert "refactor: #539 경매 서비스 테스트에서 불필요한 레거시 테스트 제거 (#540)"

This reverts commit b69b433.

* Revert "refactor: #498 메시지 서비스 테스트 관련 리팩토링 (#502)"

This reverts commit c0708cb.

* Revert "fix: #519 쪽지 알림 시 쪽지 발신자의 프로필 사진이 전송되도록 수정 (#520)"

This reverts commit c5a024b.

* Revert "feature: #505 요청과 응답의 내용을 출력하는 로그 추가 (#513)"

This reverts commit 0e14778.

* Revert "test: #494 경매 관련 테스트 코드 리펙토링 (#504)"

This reverts commit e65000a.

* Revert "refactor: #483 메시지 레포지토리 관련 테스트 코드 리팩토링 (#495)"

This reverts commit c7cf824.

* Revert "refactor: #478 지역 관련 테스트 코드 리팩토링 (#484)"

This reverts commit 6edf4b7.

* Revert "fix: #510 ci: 슬랙 메세지 알림에서 링크가 비활성화되던 오류 수정 (#511)"

This reverts commit 112c413.

* Revert "ci: #506 슬랙 알림이 PR 첫 요청시에만 발생하도록 변경 (#507)"

This reverts commit 2468b8e.

* Revert "refactor: #487 이미지 관련 테스트 코드 리팩토링 (#501)"

This reverts commit 944402f.

* Revert "refactor: #488 입찰 관련 테스트 코드 리팩토링 (#496)"

This reverts commit 93cbfbc.

* Revert "refactor: #489 신고 관련 테스트 코드 리팩토링 (#493)"

This reverts commit e239313.

* Revert "refactor: #490 사용자 관련 테스트 코드 리팩토링 (#499)"

This reverts commit 58985e8.

* Revert "refactor: #479 채팅방 관련 테스트 코드 리팩토링 (#485)"

This reverts commit 4ff76bb.

* Revert "refactor: #480 디바이스 토큰 관련 테스트 코드 리팩토링 (#491)"

This reverts commit d64c257.

* Revert "refactor: #481 알림 관련 테스트 코드 리팩토링 (#497)"

This reverts commit b0c5c82.

* Revert "refactor: #431 쪽지 전송과 알림 전송 트랜잭션 분리 (#445)"

This reverts commit d7beac2.

* Revert "refactor: #482 쪽지 컨트롤러 관련 테스트 코드 리팩토링 (#486)"

This reverts commit 45537b9.

* Revert "test: #473 인증 & 인가 관련 테스트 코드 리펙토링 (#476)"

This reverts commit 5e14721.

* Revert "feat: #468 요청을 처리하는 모든 과정을 추적하는 로그 기능 추가 (#475)"

This reverts commit cce14b3.

* Revert "test: #471 카테고리 관련 테스트 코드 리펙토링 (#472)"

This reverts commit 30db9fc.

* Revert "refactor: #469 이미지 url 관련 네이밍 수정 (#470)"

This reverts commit e54fcab.

* Revert "!hotfix: 채팅방에 메시지가 없을 때 목록 조회 시 예외 발생하지 않도록 수정 (#467)"

This reverts commit 367662d.

* Revert "fix: 예외 처리 방식 및 메시지 수정 (#465)"

This reverts commit 2e2fed2.

* Revert "!hotfix: 알림 타입과 관련된 key 값 api 명세에 맞게 변경 (#464)"

This reverts commit 5c3f625.

* Revert "refactor: #459 Token 발급 시 반환하는 형태 통일 (#460)"

This reverts commit b7f6f12.

* Revert "fix: #457 절전모드에서도 알림을 받을 수 있도록 수정 (#458)"

This reverts commit 739deee.

* Revert "refactor: #452 입찰 알림 메시지 수정 (#453)"

This reverts commit d1f4fee.

* Revert "refactor: #139 경매 엔티티에 경매 상태를 계산하는 기능 추가 (#454)"

This reverts commit 2ae05b8.

* Revert "test: #239 컨트롤러 슬라이스 테스트 설정 공통화 (#441)"

This reverts commit 5f83382.

* Revert "refactor: #442 경매 등록 로직 변경 (#443)"

This reverts commit 5583510.

* Revert "!hotfix: 디바이스 토큰 cascade 설정 삭제 (#447)"

This reverts commit 41855a7.

* Revert "fix: flyway 문제 발생 해결 (#440)"

This reverts commit 7e39108.

* Revert "feat: #413 상위 입찰자 발생 시 기존 마지막 입찰자에게 알림을 전송하는 기능 추가 (#438)"

This reverts commit 367a847.

* Revert "fix: 쪽지 신고 fk 수정 (#434)"

This reverts commit 0caf041.

* Revert "refactor: #427 report 정렬 추가 및 탈퇴 시 디바이스 토큰 제거 (#429)"

This reverts commit 844d7e3.

* Revert "프로필 이미지가 null일 경우 알림 전송에 실패하는 오류 해결 (#412)"

This reverts commit 892e8c1.

* Revert "채팅방 목록 조회 시 경매 이미지 개수만큼 데이터가 중복되는 현상 해결 및 쿼리 최적화 (#411)"

This reverts commit 7189c23.

* Revert "fix: 카카오 요청 관련 문제 해결 (#419)"

This reverts commit f34cee8.

* Revert "fix: #417 탈퇴 시 권한이 없다고 뜨는 문제 해결 (#418)"

This reverts commit 3ec08ab.

* Revert "feat: #400 사용자 정보 수정 시 이름만 수정한다면 이미지는 null 전달되는 요청 처리 (#401)"

This reverts commit a95d3ee.

* Revert "refactor: 탈퇴 시 요청 메서드 변경 (#409)"

This reverts commit 93e3137.

* Revert "refactor: #398 마감 임박순 정렬 쿼리 및 내가 등록한 경매 목록 조회 쿼리 변경 (#399)"

This reverts commit b893c47.

* Revert "refactor: #386 프로덕션 환경의 FCM 설정과 로컬 환경의 FCM 분리 (#393)"

This reverts commit 4a7420b.

* Revert "!hotfix: 채팅방 목록 조회 시 groupBy 문제 해결 (#388)"

This reverts commit b439c21.

* Revert "refactor: #386 프로덕션 환경의 FCM 설정과 테스트 환경의 FCM 분리 (#387)"

This reverts commit b1fa679.

* Revert "!hotfix: 경매 이미지 url 처리에 방법 변경 (#385)"

This reverts commit 8346286.

* Revert "!hotfix: 알림 전송 실패 시 로그 추가 및 이미지 null 처리 문제 해결 (#384)"

This reverts commit 7db9867.

* Revert "feat: #364 탈퇴 기능 추가 (#378)"

This reverts commit add6f8b.

* Revert "!hotfix: V11 flyway script 수정 (#383)"

This reverts commit 25dbb27.

* Revert "feat: #353 사용자 정보 수정 기능 추가 (#361)"

This reverts commit 9ba12dd.

* Revert "!hotfix: fcm private key를 읽을 수 없는 문제 해결 (#381)"

This reverts commit 8d7b0b3.

* Revert "!hotfix: flyway script 이름 변경 (#379)"

This reverts commit f7639f1.

* Revert "feat: #354 새로운 메시지 생성 시 알림 기능 추가 (#367)"

This reverts commit 690414f.

* Revert "feat: #366 사용자 관련 경매 목록 조회 기능 추가 (#368)"

This reverts commit a75c426.

* Revert "feat: #341 채팅방 관련 코드 리팩토링 (#347)"

This reverts commit c46cf3d.

* Revert "!hotfix: #369 jenkinsfile 스크립트 버전 삭제 (#370)"

This reverts commit dff1f63.

* Revert "fix: #352 경매 목록 조회 시 정렬 기능 버그 수정 (#359)"

This reverts commit c0e0ee9.

* Revert "feat: #349 경매 목록 검색 시 제목 기반의 검색 기능 추가 (#350)"

This reverts commit cff0bcd.

* Revert "feat: #340 경매 목록 조회 시 정렬 기능 추가 (#343)"

This reverts commit 945294e.

* Revert "refactor: #321 채팅 메시지 조회 리팩토링 (#322)"

This reverts commit 7af0145.

* Revert "fix: #336 경매 목록 조회 쿼리 변경 (#338)"

This reverts commit 2ed80d2.

* Revert "feat: #323 경매 목록 조회 시 인가 기능 추가 (#324)"

This reverts commit 6196339.
swonny pushed a commit that referenced this pull request Oct 6, 2023
* feat: 카카오 연결 끊기 기능 추가

* feat: 탈퇴 기능 서비스 추가

* feat: oauth id에 대한 unique 속성 제거

* refactor: 회원과 사용자라는 용어 통일

* feat: 이름이 이미 존재하는지에 대한 확인 쿼리 메서드 추가

* feat: 랜덤 이름을 생성하는 util 클래스 추가

* feat: 재가입 시 이름에 대한 중복 문제 해결을 위한 로직 추가

* feat: 탈퇴한 회원의 이름을 가져오는 경우에 대한 로직 추가

* feat: 탈퇴 컨트롤러 기능 추가

* feat: 예외처리 추가

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

* refactor: flyway 버전 수정

* refactor: 탈퇴한 사용자 이름 변경 로직 위치 수정

* docs: 문서 최신화

* refactor: 예외 메시지 클래스명 수정

* refactor: do-while문을 while문으로 수정

* refactor: 탈퇴 시 로직 순서 변경

* style: 해결된 todo 제거

* ci: flyway 버전 수정

* ci: 충돌 문제 해결

* refactor: 이미지가 null인 경우에 대한 예외처리 추가

* refactor: util 클래스에 final 추가

* fix: 경매 이미지 url 경로 누락 문제 해결
swonny added a commit that referenced this pull request Oct 6, 2023
* feat: 안드로이드 프로젝트 생성

* chore: gradle 설정

* feat: 권한 설정

* feat: 기본 리소스 설정

* feat: 데이터 모듈 분리

* feat: 패키지 구조 설계

* feat: 공통 feature 관련 코드 작성

* rename: 패키지 이동

* feat: 유틸 코드 작성

* feat: 바인딩 어댑터 코드 작성

* feat: Bottom Navigation 레이아웃 작성

* feat: 프래그먼트 이동 로직 추가

* feat: #17 경매 상품 등록 페이지 그리고 MVVM 구조 설계 (#33)

* Feat: MVVM 구조 생성

* Feat: 레이아웃 작성

* refactor: 중복 함수 호출 삭제

* refactor: 런처 액티비티 수정

* refactor: 들여쓰기 추가

* refactor: string name 수정

* feat: #20 경매 상품 등록 페이지 날짜, 시간 Picker 추가 (#38)

* feat: 클릭 시 날짜, 시간 선택창 띄우기 구현

* feat: 함수 분리 및 정리, 뷰가 선택한 시간을 반영하도록 수정

* refactor: 함수명 수정

* 경매 상품 상세 페이지 UI 추가 (#39)

* feat: 상단 앱 바 UI 추가

* feat: 경매 입찰 버튼 UI 추가

* feat: 상품 이미지 뷰페이저 추가

* feat: 상품 정보 UI 추가

* feat: 판매자 정보 UI 추가

* refactor: 등록된 상품의 임시 이미지 url 데이터의 위치를 뷰모델로 수정

* refactor: 함수 분리

* rename: Event를 AuctionDetailEvent로 이름 변경

* refactor: root element를 shape로 수정

* refactor: 상세 화면에서만 사용하는 색상을 colors.xml에서 제거

* refactor: 스트링 리소스 정리

* feat: #22 경매 상품 목록 레이아웃 작성 (#54)

* feat: 경매 상품 목록 페이지 레이아웃 작성

* feat: 경매 상품 목록 필터 아이템 레이아웃 작성

* rename: 파일명 및 속성명 변경

* feat: 경매 상품 목록 경매 아이템 레이아웃 작성

* refactor: selector 에서 true 조건 먼저 확인하도록 수정 및 디폴트 조건 제거

* refactor: 조건문 코드 한 줄로 수정

* refactor: 상태값을 string resource로 분리

* refactor: 불필요한 로그 삭제

* feat: #18 경매 상품 등록 페이지 이미지 URL 업로드와 서버 전송 준비, Picker 스타일 변경 (#55)

* design: 이미지 업로드 url 입력으로 변경

* feat: 뒤로가기 작성

* feat: 서버 통신에 쓰일 클래스 생성

* feat: 제출 기능 틀 설계

* style: 시간 선택창 디자인

* refactor: 양방향 데이터 바인딩 추가

* style: 가이드라인 추가

* feat: 인텐트 넘기는 함수 추가

* rename: 함수명 변경

* rename: 클래스 이름 변경

* feat: #59 경매 상품 선택 시 경매 상세를 보여주는 기능 구현 (#62)

* refactor: 프로퍼티명 변경

* feat: 경매 상품 선택 시 경매 상세를 보여주는 기능 구현

* feat: #63 경매 상품 목록에서 경매 등록 페이지로 이동하는 기능 구현 (#66)

* feat: 경매 상품 목록에서 경매 등록 페이지로 이동하는 기능 구현

* feat: 디폴트 필터 선택 적용

* rename: 패키지 이동

* chore: gradle 변경

* feat: retrofit service 및 DTO 작성

* feat: repository 작성

* feat: 경매 상품 목록 조회 api 연동

* test: #83 경매 상품 목록 조회 테스트 추가 (#85)

* feat: #50 경매 상세 페이지 UI 모델 작성 및 데이터바인딩 연결 (#84)

* feat: 경매 상세 조회 Dto 추가

* feat: 경매 상세 조회 Ui 모델 추가

* feat: 직거래 가능 지역 리사이클러뷰 어댑터 추가

* feat: 뷰모델과 xml 데이터 바인딩 로직 작성

* remove: Dto클래스 파일 삭제

* feat: #82 경매 상품 등록 서버 연동 (#86)

* feat: 서버 연동

* feat: 서버 연동

* refactor: 토스트를 스낵바로 수정

* refactor: Submit 이벤트 삭제 및 처리

* test: #91 Repository 테스트 작성 - 경매 상품 등록, 상세 정보 (#93)

* test: 경매 등록 테스트 코드 작성

* test: 경매 상품 상세 정보 테스트 코드 작성

* refactor: 상수 수정

* test: #92 경매 상품 목록 페이지 ViewModel 테스트 추가 (#95)

* feat: #87 경매 상세 페이지 서버 연동 작업 추가 (#96)

* feat: Dto와 UiModel 매핑 로직 작성

* feat: 뷰모델에 레포지토리 추가

* feat: 경매 상세 페이지 서버 연동 로직 추가

* feat: #117 경매 데이터 캐싱 전략 적용 (#123)

* refactor: 레포지토리에 싱글톤 패턴 적용

* feat: 경매 데이터 캐싱 전략 적용

* refactor: 홈 뷰모델 테스트 수정

* feat: #124 CallAdapter 적용 (#125)

* feat: CallAdapter 구현

* feat: CallAdapter 적용

* feat: #101 경매 상품 등록 페이지 DatePicker month -1 버그 (#133)

* fix: 날짜 월이 안맞는 버그 수정

* refactor: 로그 삭제

* refactor: 주석 오타 수정

* feat: #126 경매 목록 무한 스크롤 구현 (#127)

* feat: #128 경매 등록 사진 업로드 레이아웃 작성 및 사진 삭제 기능 구현 (#138)

* feat: 경매 등록 이미지 레이아웃 작성

* feat: 경매 등록 이미지 삭제 기능 구현

* test: #99 경매 상세 ViewModel 테스트 코드 작성 (#129)

* feat: #131 경매 입찰 요청 팝업창 UI 추가 (#141)

* feat: 스트링 리소스 추가

* feat: 입찰하기 버튼 클릭시 경매 입찰 팝업창을 띄우는 기능 추가

* feat: 경매 입찰 팝업창 UI 추가

* refactor: 경매 입찰 팝업창 가로 너비 동적 계산 로직 제거

* refactor: binding 객체 접근 제어자 수정

* rename: string 리소스 where절 수정

* feat: #142 경매 등록 시 갤러리에서 사진 선택하는 기능 구현 (#148)

* feat: #136 카테고리 선택 Activity UI, 구조 작성 (#153)

* feat: 레이아웃, 구조 틀 작성

* design: 배경색 흰색 추가

* feat: 카테고리 모델 추가

* feat: MVVM 구조 작성

* feat: ListAdapter, DiffUtil 적용하여 상태에 따른 Item 디자인 변경 구현

* feat: ListAdapter, DiffUtil 적용하여 상태에 따른 Item 디자인 변경 구현

* refactor: 카테고리 DiffUtil 분리

* feat: 서브 카테고리 UI 작성

* feat: mock 레포지토리 구현

* refactor: 카테고리 모델 구조 변경

* feat: mock 레포지토리 연결 및 메인-서브 카테고리 연결

* refactor: 로그 삭제

* refactor: strings 아이템들 순서 변경

* refactor: 뷰 홀더 바인딩 숨김

* refactor: 오버라이딩 안해도 되는 함수 삭제

* refactor: 함수 분리

* refactor: 서브 카테고리 variable로 변경

* refactor: selector item 순서 변경

* refactor: xmlns 속성 위치 변경

* refactor: event로 리스트 넘겨주도록 수정

* refactor: selector 이름 변경

* refactor: 메인 카테고리 LiveData로 변경

* feat: #143 입찰 가격 입력 뷰 수정 및 비지니스 로직 뷰모델로 분리 (#154)

* feat: 가격 입력 뷰 작성

* feat: 뷰모델로 비지니스 로직 분리

* refactor: 경매 입찰 다이얼로그 함수 분리

* refactor: 스트링 리소스 네임스페이스 수정

* feat: #159 이미지 Uri를 MultipartBody로 변환 (#162)

* feat: 이미지 Uri를 MultipartBody로 변환

* feat: 이미지 uri에서 절대 경로를 가져오는 로직 구현

* feat: #175 경매 등록 시 갤러리에 있는 이미지를 서버로 전송하는 기능 구현 (#182)

* feat: 경매 등록 시 이미지 파일을 서버로 전송하는 기능 구현

* feat: 마지막 경매 아이템까지 로드한 경우 더 이상 로드하지 않는 코드 추가

* feat: #161 지역 선택 페이지 UI 추가, 구조 설계 (#179)

* feat: 액티비티 추가

* feat: 페이지 레이아웃 작성

* feat: Mock Repository 작성

* feat: 첫번째 지역 리사이클러뷰 어댑터 생성

* feat: 뷰홀더 어댑터 액티비티 뷰모델 연결

* feat: 첫 지역 리사이클러뷰 구현

* feat: 두번째 지역 리사이클러뷰 구현

* feat: 세번째 지역 리사이클러뷰 구현

* feat: Chips 추가 구현

* refactor: Chips 부분 리팩터링

* refactor: 확장함수 선언

* refactor: 쓸데없는 괄호 삭제

* design: divider view 수정

* feat: 인텐트에 담아 종료하는 함수 틀 작성

* refactor: 변수명 변경

* refactor: ChipGroup을 RecyclerView로 리팩터링

* design: Decoration 추가

* feat: BindingAdapter를 활용한 onCloseClick 적용

* refactor: 필요없는 import 삭제

* refactor: 불필요한 함수 실행 삭제

* fix: 첫번째 지역 클릭 시 세번째 지역이 초기화되지 않는 버그 수정

* feat: #193 이미지를 압축하여 캐시에 저장하는 기능 구현 (#195)

* chore: 파이어베이스 analytics 추가

* design: 아이콘 변경

* feat: #180 카테고리 선택 페이지 서버 연동 (#188)

* feat: 레포지토리와 데이터소스 생성

* feat: 메인 카테고리 연결

* design: 텍스트 정렬 변경

* feat: 서브 카테고리 연결

* feat: 선택 완료 이벤트 연결

* refactor: 코드 리팩터링

* refactor: 필요없는 코드 삭제

* refactor: 함수 내부 리팩터링

* refactor: typealias 적용

* feat: #181 지역 선택 페이지 서버 연동 (#194)

* feat: Remote DataSource, Repository 구현

* feat: 변경된 Repository와 연결

* refactor: 캐싱 적용

* refactor: 함수 내부 리팩터링

* refactor: 함수 분리

* refactor: typealias 적용

* feat: #196 경매 입찰 기능 서버 연동 (#200)

* feat: 경매 입찰 서버 연동

* feat: 경매 입찰 응답 예외 클래스 설계 및 처리 로직 추가

* feat: 상세 경매 조회시 캐시 데이터 업데이트 하는 기능 추가

* refactor: 경매 입찰 최소 금액 계산 로직 AuctionDetailViewModel로 이동

* refactor: Toaster 추가 및 적용

* refactor: SubmitBidFailureResponse find 메소드 로직 수정

* refactor: AuctionResponse에서 AuctionPreviewResponse로 변환하는 메소드 추가

* rename: 입찰 성공 이벤트 클래스명 동사가 앞에 오도록 수정

* feat: Analytics Screen View 로그 이벤트 추가

* feat: #201 등록 페이지와 카테고리, 지역 선택 페이지 연결 (#203)

* feat: 카테고리 페이지 연결

* feat: 카테고리 페이지 연결

* feat: 지역 페이지 연결

* refactor: 코드 리팩터링

* design: 가격 0 디폴트값 수정

* refactor: 로그 삭제

* refactor: 함수 순서 변경

* refactor: 함수 순서 변경

* refactor: xml 닫는 태그 수정

* refactor: #205 경매 입찰 응답 메시지 수정 (#206)

* chore: 파이어베이스 crashlytics 추가

* !hotfix: 버그 리포팅을 위한 이슈 템플릿 추가

* !hotfix: 버그 리포팅용 이슈 템플릿의 설명을 조금 더 명확하게 변경

* !hotfix: 개발 도중 버그가 발생했을 때의 이슈 템플릿의 설명을 명확하게 변경

* feat: #227 카카오 소셜로그인 기능 구현 (#229)

* feat: kakao sdk 추가

* feat: 로그인 페이지 레이아웃 작성

* feat: 카카오 소셜로그인 코드 작성

* feat: #230 카카오 소셜로그인 서버 연동 (#241)

* feat: 카카오 소셜로그인 Service api, data model 추가

* feat: AuthRepository, AuthDataSource 생성 및 뷰와 연결

* feat: 보안 SharedPreference에 서버로부터 전달받은 토큰 저장 및 가져오기

* feat: #232 경매 상세 화면에서 쪽지방 생성 버튼 기능 추가 (#240)

* feat: AuctionDetailResponse에 chat 속성 추가

* feat: AuctionDetailBottomButtonStatus 추가

* feat: 하단 버튼에 뷰모델 핸들링 함수 연결

* feat: 쪽지 기능 관련 Dto 추가

* feat: 쪽지 기능 서비스 메소드 추가

* feat: ChatRemoteDataSource 추가

* feat: ChatRepository 및 구현체 추가

* refactor: 채팅방ID 얻어오는 api 수정

* refactor: AuctionDetailBottomButtonStatus enum 클래스로 수정

* rename: exitEvent에서 setExitEvent로 수정

* refactor: 경매 상세 하단 버튼 텍스트를 가져오는 formatter 함수 추가

* feat: #246 자동 로그인 기능 구현 (#248)

* feat: 스플래시 페이지 레이아웃 작성

* feat: 토큰 유효성 검사 기능 구현

* feat: 스플래시 액티비티에서 다음 액티비티로 이동하는 기능 구현

* feat: 로그인 액티비티에서 다음 액티비티로 넘어가는 기능 구현

* feat: 기본 스플래시 화면 투명하게 조정

* feat: 토큰 리프레시하는 api 추가

* feat: 헤더에 토큰 추가 및 토큰 갱신 인터셉터 구현

* feat: #250 쪽지 목록 페이지 기능 구현 (#254)

* feat: 쪽지 프래그먼트 UI 작성

* feat: 쪽지 목록 아이템 UI 작성

* feat: 쪽지 목록 아이템 뷰홀더 작성

* feat: 쪽지 목록 리사이클러뷰 어댑터 작성

* feat: 쪽지 목록 페이지 서버 연동

* feat: 탭 이동으로 보여질 때 목록 다시 불러오도록 수정

* refactor: if문 중괄호 제거

* refactor: 클릭 리스너 이름 변경 및 id만 전달받도록 수정

* refactor: Iso8601 포맷을 LocalDateTime으로 변환하는데 사용하던 DateTimeFormatter 제거

* feat: #253 마이페이지 추가 (#261)

* fix: 헤더로 보내는 토큰에 prefix 추가

* feat: 마이페이지 레이아웃 작성

* feat: 유저 정보 불러오는 api 연동

* feat: 로그아웃 api 연동

* refactor: 로그아웃 시 로그인 페이지로 이동하는 intent에 flag 추가하는 방식으로 수정

* refactor: string 리소스 name 수정

* feat: #242 신고 페이지 UI/구조 작성, 삭제 버튼 UI추가 (#267)

* feat: 신고 페이지 UI 작성

* refactor: BindingActivity 사용하는 것으로 수정

* feat: ViewModel 코드 작성

* feat: 경매 상세 페이지 신고버튼 영역 잡아두기

* refactor: 함수명 변경

* refactor: 충돌 해결

* feat: #263 경매 목록 새로고침 기능 추가 (#264)

* feat: #266 삭제된 경매 상세 조회 시 데이터를 삭제하고 경매 목록으로 돌아오는 기능 추가 (#268)

* feat: 삭제된 경매 상세 조회 시 데이터를 삭제하고 경매 목록으로 돌아오는 기능 추가

* refactor: 로컬에서 경매 데이터를 삭제하는 기능을 Repository 내부적으로 처리하도록 수정

* feat: #274 신고 기능 서버 연동 및 액티비티 연결 (#275)

* feat: 아이콘 추가

* feat: 레포지토리에 신고 API 추가

* feat: ViewModel 코드 작성

* feat: onClick 함수 연결

* feat: 경매 상세 페이지와 신고 페이지 연결

* feat: 액티비티 코드 작성

* feat: 통신에 필요한 기본 정보 세팅과 신고 접수, 예외 처리들 작성

* refactor: 빈 스트링 검사

* feat: 신고 접수 후 종료

* refactor: 값 중복 확인 삭제

* refactor: 코드 길이 줄이기

* fix: 잘못된 Service 코드 수정

* refactor: 상수 밖으로 빼기

* refactor: 예외 처리

---------

Co-authored-by: Mendel <[email protected]>

* feat: #257 쪽지방 페이지 기능 구현 (#270)

* feat: 쪽지방 페이지 UI 상단바 작성

* feat: 쪽지방 페이지 UI 하단 메시지 입력 부분 작성

* feat: 쪽지방 페이지 액티비티 추가

* feat: 쪽지방 페이지로 이동하는 로직을 다른 화면에 추가

* feat: 뷰모델 클릭 리스너 함수들을 데이터바인딩으로 연결

* feat: 메시지 UI 모델 추가

* feat: 메시지 로딩 함수 구현

* feat: 채팅 메시지 뷰타입 레이아웃 작성

* feat: 메시지 어댑터 작성

* feat: 쪽지방 생성 알림 어댑터 작성

* feat: 바인딩 어댑터 setTextOrEmpty 유틸 함수 추가

* feat: 메시지 전송 기능 추가

* refactor: 신고하기 아이콘 변경

* feat: 채팅 입력시 액티비티 따라 올라가는 기능 추가

* refactor: 빈 스트링 전송되지 않도록 수정

* refactor: MessageAdapter DiffUtil 수정

* refactor: 중복 리턴 수정

* refactor: loadMessageRoom으로 함수명 수정

* feat: #278 자동로그인 기능 서버 연동 (#279)

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

* feat: 자동로그인 기능 서버 연동

* fix: 앱에서 나갔다가 돌아왔을 때 경매 목록 캐시가 남아있는 문제 해결

* feat: #285 개인정보처리방침 추가 (#288)

* feat: 개인정보처리방침 버튼 레이아웃 추가

* feat: 개인정보처리방침 노션 링크 웹페이지로 이동하는 기능 추가

* feat: #286 신고하기 및 쪽지방 정보 Dto 서버랑 안맞는 버그 수정 (#289)

* fix: 신고하기 레트로핏 메소드에 바디 어노테이션 추가

* fix: 쪽지방 정보 dto 추가

* refactor: 쪽지방에서 경매id로 신고하기 기능 추가

* refactor: 개인정보처리방침 url 코드에서 숨김

* feat: #297 경매 상세 페이지 경매 삭제 기능 추가 (#300)

* feat: 삭제 버튼과 뷰모델 연결

* feat: 나의 경매인지 확인하는 변수 추가

* feat: 나의 경매 여부에 따른 visibility 조정

* feat: 경매 삭제 레포지토리 함수 작성

* feat: 뷰모델과 레포지토리 함수 연결

* refactor: 함수명 변경

* refactor: 삭제 확인 다이얼로그에 negative String Id 추가

* refactor: 글자가 길어졌을 때 아이콘과 겹치지 않도록 수정

* refactor: 글자가 길어졌을 때 아이콘과 겹치지 않도록 수정

* refactor: 글자가 길어졌을 때 아이콘과 겹치지 않도록 수정

* refactor: 로딩 실패 예외처리

* refactor: remove에서 delete로 네이밍 변경

* refactor: remove에서 delete로 네이밍 변경

* refactor: remove에서 delete로 네이밍 변경

* feat: #304 마지막 메시지 위치로 리사이클러뷰 위치 이동되는 기능 및 메시지 입력 소프트 키보드 올라올 때 툴바 보이도록 수정 (#306)

* refactor: 소프트 키보드 올라올 때, 리사이클러뷰 스크롤 상태 유지된 상태로 액티비티 조정되도록 수정

* refactor: 메시지 목록 업데이트 될 때, 스크롤 상태 마지막 위치로 이동하는 콜백 추가

* refactor: 툴바 적용

* deploy: 시맨틱 버저닝 적용

* refactor: 사용하지 않는 기능 버튼 숨김 처리

* deploy: 시맨틱 버저닝 적용

* deploy: 난독화 적용

* feat: #309 서버로부터 가져온 프로필 정보 화면에 띄워주는 기능 추가 (#312)

* refactor: #325 입찰 예외처리 리팩토링 (#326)

* refactor: 판매자 입찰 불가 에러 처리 추가

* refactor: 첫 입찰자의 시작금액을 시작금액이상으로 가능하게 수정

* refactor: 내 경매면 경매 하단 버튼 상세 문구 수정

* fix: #327 토큰 자동 갱신 시 응답 안 닫고 다음 요청을 보내던 버그 수정 (#328)

* fix: 입찰 금액 입력 최댓값 수정

* fix: 경매 등록 여러번 되는 문제 방지

* feat: 경매 등록 실패 시 스낵바 메시지 노출

* feat: 경매 입찰 시 일정 단위를 벗어날 경우 서버에서 받는 메시지를 출력하는 기능 추가

* design: 마감기한 텍스트 뷰 위치를 시작 가격 옆으로 조정

* design: 프로필 이미지 뷰에 디폴트 이미지 적용

* fix: 경매 상세 페이지가 한 번에 여러개 생성되지 않도록 수정

* design: 경매 상세 화면 판매자 프로필 외곽을 둥글게 수정

* feat: 활성화된 쪽지방이 없으면 쪽지방 프래그먼트에 보여줄 문구 추가

* fix: 경매 상세와 쪽지방이 무한히 중첩되는 버그 수정

* refactor: 버전 수정

* feat: #323 경매 목록 조회 시 인가 기능 추가 (#324)

* feat: 경매 상세 조회 api 인가 기능 추가

* test: 경매 목록 조회 api 인가 테스트 추가

* docs: 경매 목록 조회 문서 최신화

* style: final 키워드 추가

* fix: #336 경매 목록 조회 쿼리 변경 (#338)

* fix: 경매 목록 조회 쿼리 변경

* refactor: 애플리케이션에서 페이징 처리를 진행하던 경매 목록 조회 쿼리 수정

* style: 개행 수정

* refactor: #321 채팅 메시지 조회 리팩토링 (#322)

* !hotfix: 버그 리포팅을 위한 이슈 템플릿 추가

* !hotfix: 버그 리포팅용 이슈 템플릿의 설명을 조금 더 명확하게 변경

* !hotfix: 개발 도중 버그가 발생했을 때의 이슈 템플릿의 설명을 명확하게 변경

* refactor: 메시지 조회 시 연관 엔티티 fetch join하도록 변경

* style: 120자 넘어가는 줄 개행

* refactor: 메시지 조회 dto 필드 변경

* refactor: 불필요한 fetch join 제거

* refactor: 불필요한 user 조회 로직 제거

* refactor: 불필요한 fetch join 제거 및 조회한 chatRoom DTO로 전달

* refactor: 조회한 채팅방 엔티티를 DTO변환에 사용하도록 변경

---------

Co-authored-by: 지토 <[email protected]>

* feat: #340 경매 목록 조회 시 정렬 기능 추가 (#343)

* feat: api에서 전달된 정렬 조건을 필드 명으로 변경하는 기능 추가

* feat: Controller에서 기본 정렬 방향이 DESC인 Pageable을 설정하는 ArgumentResolver 추가

* refactor: 경매 목록 조회 시 int가 아닌 Pageable을 전달받도록 변경

* rename: api에서 전달된 정렬 조건을 필드 명으로 변경하는 기능 네이밍 변경

* rename: api에서 전달된 정렬 조건을 필드 명으로 변경하는 기능 네이밍 변경

* feature: 정렬 조건을 Querydsl 표현식으로 변환하는 기능 추가

* feat: 경매 목록 조회 시 정렬 관련 쿼리가 실행되는 기능 추가

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

* fix: 누락된 정렬 조건 추가

* test: 메서드 변경으로 인해 실패하는 테스트 케이스 수정

* refactor: Converter 과정 중 일부 로직 메서드 분리

* rename: 기본 정렬 조건을 내림차순으로 설정하는 ArgumentResolver 네이밍 변경

* style: return 개행 추가

* style: final 키워드 추가

* style: 불필요한 import 코드 제거

* fix: ArgumentResolver에서 관리하던 기본 값을 enum으로 분리

* refactor: QuerydslSliceHelper 메서드 네이밍 변경

* refactor: enum Converter 네이밍 수정

* refactor: enum Converter 공통되는 문자열 상수 분리

* refactor: 정렬 시 항상 auction의 id를 내림차순으로 정렬하도록 조건 추가

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

* feat: #349 경매 목록 검색 시 제목 기반의 검색 기능 추가 (#350)

* feat: 경매 목록 검색 DTO 추가

* feat: 경매 목록 조회 시 제목 검색 기능 추가

* rename: 경매 목록 조회 시 검색 DTO SearchCondition 네이밍 변경

* feat: ReadAuctionSearchCondition ArgumentResolver 관련 기능 추가

* test: 경매 목록 조회 시 제목 검색에 대한 더미 데이터와 테스트 케이스 추가

* test: 경매 목록 조회 시 제목 검색에 대한 더미 데이터와 테스트 케이스 추가

* fix: #352 경매 목록 조회 시 정렬 기능 버그 수정 (#359)

* feat: ArgumentResolver Pageable 관련 설정 추가

* fix: no-offset 기반에서 offset 기반의 쿼리로 변경

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

* fix: 메서드 파라미터에서 lastAuctionId 제거

* refactor: 경매 목록 조회 메서드 네이밍 변경

* fix: 마감 임박순 정렬 내림차순에서 오름차순으로 변경

* test: 경매 목록 조회 테스트 시 더미 데이터 및 테스트 케이스 추가

* test: 잘못된 테스트 케이스 수정

* refactor: 경매 목록 요청 시 정렬 쿼리 파라미터 이름 변경

* !hotfix: #369 jenkinsfile 스크립트 버전 삭제 (#370)

* fix: jenkinsfile 스크립트 버전 삭제

* hotfix: jenkins 스크립트 DEV 변수명 변경

* hotfix: jenkins 스크립트 환경변수 변경

* ci: sonarqube 관련 설정 삭제 및 슬랙 알림 이름 변경

* feat: #341 채팅방 관련 코드 리팩토링 (#347)

* refactor: 코드 개행, 네이밍 수정 및 로직 개선

* refactor: AuctionService 내의 ChatRoomService 의존성 분리

* perf: 레포지토리에서 단일 채팅방 조회 시의 쿼리 최적화

* refactor: 채팅방을 마지막 메시지가 최근인 순으로 정렬하는 기능에 대해 서비스에서 정렬하지 않고 레포지토리에서 정렬해서 조회하도록 변경

* perf: 레포지토리에서 마지막 메시지가 최근인 순으로 정렬하여 조회할 때 채팅방과 메시지를 함께 하나의 dto로 받아오도록 성능 개선

* test: 채팅방 목록 조회 테스트 데이터 추가

* refactor: 채팅방 목록 조회 시 반환하는 dto에 `@QueryProjection` 사용하도록 변경

* rename: 레포지토리에서 채팅방 목록 조회시 반환하는 dto 이름 변경

* perf: db에서 정렬하지 않고 레포지토리에서 정렬하도록 변경

* refactor: dto를 반환하는 레포지토리 엔티티를 반환하는 레포지토리 분리

* refactor: 불필요한 orderBy 제거 및 사용하지 않는 메서드 제거

* style: 개행 수정

* style: 개행 수정 및 불필요한 import 제거

* refactor: 리뷰 피드백 적용

- 예외 네이밍 변경
- 개행 수정
- 쿼리 간소화

* refactor: 통일성을 위해 Querydsl 키워드 명시하도록 변경

* feat: #366 사용자 관련 경매 목록 조회 기능 추가 (#368)

* feat: 회원이 등록한 경매 목록을 조회하는 쿼리 추가

* feat: 회원이 등록한 경매 목록을 조회하는 기능 추가

* feat: 회원이 등록한 경매 목록을 조회하는 api 추가

* feat: 회원이 참여한 경매 목록을 조회하는 쿼리 추가

* test: 테스트 클래스 네이밍 변경

* feat: 회원이 참여한 경매 목록을 조회하는 기능 추가

* feat: 회원이 참여한 경매 목록을 조회하는 api 추가

* docs: 문서 최신화

* style: 불필요한 개행 제거

* style: 메서드 순서 변경

* refactor: 사용자가 호출하는 경매 목록 조회 Controller 분리

* docs: 문서 최신화

* feat: #354 새로운 메시지 생성 시 알림 기능 추가 (#367)

* chore: FCM 사용을 위한 설정 추가

Co-authored-by: swonny <[email protected]>

* feat: 사용자 디바이스 토큰 엔티티 및 레포지토리 추가

Co-authored-by: swonny <[email protected]>

* feat: 알림 전송 서비스 구현

Co-authored-by: swonny <[email protected]>

* feat: 로그인 시 알림을 위한 디바이스 토큰 저장 기능 추가

Co-authored-by: swonny <[email protected]>

* feat: 알림 데이터에 알림 타입 추가

Co-authored-by: swonny <[email protected]>

* feat: 메시지 전송 시 알림 전송 기능 추가

Co-authored-by: swonny <[email protected]>

* refactor: 알림 속성 패키지 이동

Co-authored-by: swonny <[email protected]>

* refactor: 디바이스 토큰 패키지 분리

Co-authored-by: swonny <[email protected]>

* feat: 디바이스 토큰 갱신을 위한 서비스 및 api 추가

Co-authored-by: swonny <[email protected]>

* refactor: 로그인 시 디바이스 토큰 저장할 때 서비스를 호출하도록 변경

Co-authored-by: swonny <[email protected]>

* docs: 디바이스 토큰 관련 api 문서화

Co-authored-by: swonny <[email protected]>

* feat: 알림 전송 실패 예외 핸들링 추가

Co-authored-by: swonny <[email protected]>

* style: 개행 수정 및 불필요한 주석 제거

Co-authored-by: swonny <[email protected]>

* fix: 사용자 기기 토큰을 토큰 아이디로 찾아서 생기는 버그 수정

Co-authored-by: swonny <[email protected]>

* feat: FCM 빈 등록을 설정 파일에서 제어할 수 있도록 기능 추가

Co-authored-by: swonny <wonny [email protected]>

* refactor: mock 객체의 equals() and hashCode() 재정의를 롬복 사용하도록 수정

* refactor: 토큰 갱신 api의 request method를 put -> patch로 변경

* feat: 엔티티의 기기 토큰 필드가 null이 될 수 없도록 변경 및 기기 토큰이 비어있을 경우 저장하지 않는 기능 추가

* refactor: 토큰 갱신 서비스 메서드 이름 수정 및 세부 로직 수정

* rename: 디바이스 토큰 갱신 시 application 레이어에서 사용하는 dto 이름 변경

* test: 필요없는 테스트 삭제 및 실패하는 테스트 수정

* docs: 문서 최신화

* ci: 충돌 해결

* style: 개행 수정 및 체이닝 정렬

* fix: 기기 토큰 엔티티의 toString 대상에서 lazy 로딩인 엔티티 제외

* style: enum 나열 방식 수정

* feat: 기기 토큰 엔티티에 외래키 이름 설정 추가

* feat: 기기 토큰 테이블 관련 flyway 스크립트 추가

* refactor: 알림을 위한 빈 등록 실패 시 예외를 발생시키도록 변경

* refactor: 알림 전송 실패 시 예외를 던지지 않고 실패 메시지를 반환하도록 변경

* refactor: 기기 토큰 관련 api url 변경

Co-authored-by: swonny <[email protected]>

---------

Co-authored-by: kwonyj1022 <[email protected]>
Co-authored-by: swonny <wonny [email protected]>

* !hotfix: flyway script 이름 변경 (#379)

Co-authored-by: swonny <[email protected]>

* !hotfix: fcm private key를 읽을 수 없는 문제 해결 (#381)

* feat: #353 사용자 정보 수정 기능 추가 (#361)

* feat: 이미지 url을 만드는 util 클래스 추가

* feat: User의 이미지를 엔티티 객체로 수정

* feat: 사용자 정보 수정 기능 추가

* feat: 이미지 조회 서비스 추가

* refactor: 메시지의 이미지 url과 관련해 util을 사용하도록 수정

* refactor: 이미지를 반환하도록 수정

* feat: 사용자 프로필 이미지 조회 컨트롤러 추가

* refactor: 업데이트 메서드에 Transactional 설정

* test: userService 예외 테스트 추가

* feat: 누락된 dto 파일 추가

* refactor: 메서드명이 명확하도록 수정

* refactor: Embedded를 통한 중복 필드 제거

* rename: 이미지 url 생성 util 클래스 패키지 위치 및 네이밍 변경

* refactor: 메서드명을 명확하도록 수정

* refactor: 개행 수정

* refactor: 변수명을 컨벤션에 맞도록 수정

* refactor: 변수명 수정 및 중복 제거

* feat: 사용자 수정 컨트롤러 기능 추가

* refactor: 메서드 로직을 명확하게 분리

* ci: 충돌 문제 해결

* ci: flyway profileImage 연관관계 수정

* docs: 문서 최신화

* style: 해결된 todo 제거

* ci: flyway 문법 수정

* refactor: User profileImage의 fk 설정

---------

Co-authored-by: apptie <[email protected]>

* !hotfix: V11 flyway script 수정 (#383)

* feat: #364 탈퇴 기능 추가 (#378)

* feat: 카카오 연결 끊기 기능 추가

* feat: 탈퇴 기능 서비스 추가

* feat: oauth id에 대한 unique 속성 제거

* refactor: 회원과 사용자라는 용어 통일

* feat: 이름이 이미 존재하는지에 대한 확인 쿼리 메서드 추가

* feat: 랜덤 이름을 생성하는 util 클래스 추가

* feat: 재가입 시 이름에 대한 중복 문제 해결을 위한 로직 추가

* feat: 탈퇴한 회원의 이름을 가져오는 경우에 대한 로직 추가

* feat: 탈퇴 컨트롤러 기능 추가

* feat: 예외처리 추가

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

* refactor: flyway 버전 수정

* refactor: 탈퇴한 사용자 이름 변경 로직 위치 수정

* docs: 문서 최신화

* refactor: 예외 메시지 클래스명 수정

* refactor: do-while문을 while문으로 수정

* refactor: 탈퇴 시 로직 순서 변경

* style: 해결된 todo 제거

* ci: flyway 버전 수정

* ci: 충돌 문제 해결

* refactor: 이미지가 null인 경우에 대한 예외처리 추가

* refactor: util 클래스에 final 추가

* fix: 경매 이미지 url 경로 누락 문제 해결

* !hotfix: 알림 전송 실패 시 로그 추가 및 이미지 null 처리 문제 해결 (#384)

* feat: 알림 전송 실패 시 로그 추가

* fix: 이미지 null 처리 문제 해결

* !hotfix: 경매 이미지 url 처리에 방법 변경 (#385)

* fix: 경매 이미지 url 처리에 방법 변경

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

* refactor: #386 프로덕션 환경의 FCM 설정과 테스트 환경의 FCM 분리 (#387)

* refactor: 프로덕션 영역의 FcmConfiguration profile 적용 및 코드 리펙토링

* test: 테스트 영역의 FcmConfiguration 추가

* !hotfix: 채팅방 목록 조회 시 groupBy 문제 해결 (#388)

* refactor: #386 프로덕션 환경의 FCM 설정과 로컬 환경의 FCM 분리 (#393)

* refactor: production 환경에서의 FCM Configuration 클래스 네이밍 변경 및 profile 설정 추가

* refactor: local 환경에서의 FCM Configuration 클래스 추가

* refactor: #398 마감 임박순 정렬 쿼리 및 내가 등록한 경매 목록 조회 쿼리 변경 (#399)

* feat: 마감 임박순 정렬 시 이미 마감된 경매는 후순위로 정렬하는 기능 추가

* chore: 더 이상 사용하지 않는 유틸리티 클래스 삭제

* refactor: 메서드 이름 변경

* fix: 내가 등록한 경매 목록 조회 시 삭제된 경매는 보이지 않도록 쿼리 변경

* refactor: 탈퇴 시 요청 메서드 변경 (#409)

* refactor: 요청 메서드 타입 변경

* test: 테스트 실패 해결

* feat: #400 사용자 정보 수정 시 이름만 수정한다면 이미지는 null 전달되는 요청 처리 (#401)

* refactor: 사용자 정보 수정 시 이미지만 수정될 수 있도록 수정

* feat: MultipartFile의 null 처리 추가

* refactor: 수정되지 못한 클래스 명 수정

* test: 잘못된 검증 로직 수정

* refactor: 필드명 수정

* fix: #417 탈퇴 시 권한이 없다고 뜨는 문제 해결 (#418)

* refactor: 입찰 조회 시 정렬을 명시적으로 작성

* refactor: 탈퇴 시 accessToken decode를 통해 회원을 조회 해 오도록 변경

* fix: 카카오 요청 관련 문제 해결 (#419)

* 채팅방 목록 조회 시 경매 이미지 개수만큼 데이터가 중복되는 현상 해결 및 쿼리 최적화 (#411)

* fix: 이미지 개수만큼 채팅방이 중복 조회 되는 문제 해결

* rename: dto 이름 변경

* refactor: 채팅방 아이디로 채팅방 조회할 때 쿼리 개선

* style: 나중에 하기로 한 것 todo 추가

* 프로필 이미지가 null일 경우 알림 전송에 실패하는 오류 해결 (#412)

* feat: 로그인 시 프로필 이미지를 null이 아닌 기본이미지로 세팅하는 기능 추가

* feat: 사용자 엔티티의 프로필 이미지에 널 불가 제약조건 추가

* feat: 알림 dto에 `@NonNull` 제약 조건 추가

* refactor: 알림 전송 성공 및 예외 발생 시 로그 추가

* refactor: 기본 프로필 이미지 조회 시 이름으로 조회하도록 변경

* feat: 로그인 시 기본이미지를 찾을 수 없으면 예외가 발생하는 기능 추가

* refactor: 프로필 이미지 경로 생성을 유틸 클래스에서 하도록 변경

* refactor: 기본 프로필 이미지 이름을 엔티티에서 관리하도록 변경

* fix: flyway 스크립트 수정

* refactor: 알림 dto에서 사용하는 `@NonNull`을 롬복의 어노테이션을 사용하도록 변경

* refactor: #427 report 정렬 추가 및 탈퇴 시 디바이스 토큰 제거 (#429)

* refactor: 신고 조회 쿼리에 order by 추가

* refactor: 탈퇴 시 디바이스 토큰을 DB에서 제거

* refactor: Transactional 누락 추가

* refactor: 사용자 디바이스 토큰 제거 메서드 수정

* fix: 쪽지 신고 fk 수정 (#434)

* feat: #413 상위 입찰자 발생 시 기존 마지막 입찰자에게 알림을 전송하는 기능 추가 (#438)

* feat: 상위 입찰 발생 시 기존 마지막 입찰자에게 알림 전송하는 기능 추가

* feat: 레포지토리에서 경매 조회 시 마지막 입찰과 경매 대표이미지를 함께 조회하는 기능 추가

* refactor: 경매 이미지 경로 계산 부분 유틸로 분리

* test: 이미지 url 처리 관련 테스트 추가

* rename: 잘못된 변수명 수정 및 return문 개행 추가

* style: todo 추가

* fix: flyway 문제 발생 해결 (#440)

* fix: flyway 14버전 스크립트 수정

* fix: flyway 14버전을 문제 해결까지 포함하는 스크립트로 수정

* !hotfix: 디바이스 토큰 cascade 설정 삭제 (#447)

* fix: 디바이스 토큰 cascade 설정 삭제

* refactor: 디바이스 토큰 영속 시 문자열 널 검증 추가

* refactor: #442 경매 등록 로직 변경 (#443)

* refactor: Query 문자열 표현 방식 변경

* feat: 모든 thirdRegion을 id로 조회하는 기능 추가

* refactor: 경매 등록 시 세 번째 지역 조회에서 N+1 문제가 발생하던 문제 해결

* test: #239 컨트롤러 슬라이스 테스트 설정 공통화 (#441)

* test: 컨트롤러 슬라이스 테스트 설정 추상화

* test: 컨트롤러 슬라이스 테스트의 공통 설정을 별도의 추상화된 클래스에서 확장하도록 변경

* refactor: #139 경매 엔티티에 경매 상태를 계산하는 기능 추가 (#454)

* feat: 경매 상태를 나타내는 enum 추가

* feat: Auction 도메인 엔티티에서 경매 상태를 반환하는 기능 추가

* refactor: 문자열로 경매 상태를 표현하던 방식을 enum으로 변경

* refactor: 문자열로 경매 상태를 표현하던 방식을 enum으로 변경

* refactor: #452 입찰 알림 메시지 수정 (#453)

* fix: #457 절전모드에서도 알림을 받을 수 있도록 수정 (#458)

* refactor: #459 Token 발급 시 반환하는 형태 통일 (#460)

* !hotfix: 알림 타입과 관련된 key 값 api 명세에 맞게 변경 (#464)

* fix: 예외 처리 방식 및 메시지 수정 (#465)

* !hotfix: 채팅방에 메시지가 없을 때 목록 조회 시 예외 발생하지 않도록 수정 (#467)

* refactor: #469 이미지 url 관련 네이밍 수정 (#470)

* refactor: 반환되는 이미지 타입을 jpeg로 변경

* refactor: baseUrl에 대한 네이밍을 보다 명확하게 수정

* refactor: ImageUrlCalculator를 사용하도록 수정

* refactor: 메서드 네이밍을 보다 명확하게 수정

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

* refactor: 중복된 메서드 통합하기

* test: 테스트 추가

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

* style: todo 제거

* refactor: 필요없는 로직 제거

* refactor: 메서드명을 명확하게 수정

* refactor: 메서드 분리가 필요 없는 경우에 대해 통합하도록 수정

* refactor: concat 대신 +를 사용하도록 수정

* docs: 추후 리팩토링이 필요한 내용에 대한 todo 작성

* test: 필요 없어진 테스트 제거

* style: 정렬 수정

* refactor: 메서드 파라미터 명을 명확하게 수정

* refactor: 메서드 파라미터 타입을 명확하게 수정

* refactor: 타입 재수정 및 todo 추가

* test: #471 카테고리 관련 테스트 코드 리펙토링 (#472)

* test: CategoryServiceTest Fixture 추가 및 테스트 케이스 리펙토링

* test: CategoryTest 개행 변경

* test: CategoryRepositoryTest Fixture 추가 및 테스트 케이스 리펙토링

* test: Fixture가 아닌 필드의 접근제어자를 private으로 설정

* test: 테스트 네이밍 변경

* test: 순서를 검증할 수 있도록 테스트 케이스 변경

* test: 테스트 어노테이션을 Fixture가 아닌 테스트 클래스에 위치하도록 변경

* test: Fixture에 아스키 코드 관련 경고 억제 어노테이션 추가

* test: Category 도메인 테스트 검증 방식 변경

* test: category 도메인 테스트에서 id를 주입하지 않고 name으로 검증하도록 변경

* test: 서브 카테고리에 대한 Fixture 이름 통일

* test: 서브 카테고리에 대한 Fixture 이름 통일

* test: 순서까지 검증할 수 있도록 테스트 검증 방식 변경

* feat: #468 요청을 처리하는 모든 과정을 추적하는 로그 기능 추가 (#475)

* feat: 요청 시 MDC 관련 로직을 처리하는 필터 추가

* feat: 요청 추적 시 Depth를 관리하는 기능 추가

* feat: 요청 추적 시 메서드 실행 시점의 상태를 관리하는 기능 추가

* feat: 요청을 추적하며 로그를 출력하는 기능 추가

* feat: 요청을 추적하며 로그를 출력하는 AOP 추가

* chore: logback 관련 의존성 추가

* fix: 토큰 복호화 시 예외 핸들링 케이스 추가

* rename: SlackAppender 패키지 위치 변경

* feat: MdcFilter가 test 환경에서는 빈으로 등록되지 않도록 어노테이션 추가

* chore: 로그 관련 설정 추가

* chore: 닫는 태그 위치 변경

* refactor: 필요 없는 어노테이션 제거

* refactor: 요청 처리 과정의 depth 표현을 조금 더 명확하게 변경

* style: 메서드 순서 변경

* refactor: 로그 MDC key 네이밍 변경

* refactor: 현재 요청 처리 과정의 depth 표현을 조금 더 명확하게 변경

* refactor: logback 설정 변경

* fix: Jacoco 관련 설정 문법 오류 수정

* chore: 로그 설정에서 LevelFilter를 ThresholdFilter로 통일

* style: 개행, 메서드 순서, final 키워드 추가

* chore: 로그 설정에서 LevelFilter를 ThresholdFilter로 통일

* test: #473 인증 & 인가 관련 테스트 코드 리펙토링 (#476)

* test: JwtDecoderTest Fixture 추가 및 테스트 케이스 리펙토링

* test: JwtEncoderTest Fixture 추가 및 테스트 케이스 리펙토링

* test: 사용하지 않는 필드 제거와 final 제거

* test: KakaoOauth2TypeTest Fixture 추가 및 테스트 케이스 리펙토링

* test: KakaoUserInformationProviderTest Fixture 추가 및 테스트 케이스 리펙토링

* test: JpaBlackListTokenRepositoryTest Fixture 추가 및 테스트 케이스 리펙토링

* test: AuthenticationServiceFixture Fixture 추가 및 테스트 케이스 리펙토링

* test: AuthenticationUserServiceTest Fixture 추가 및 테스트 케이스 리펙토링

* test: Fixture가 가지고 있던 테스트 관련 어노테이션을 기존 테스트 클래스로 변경

* test: BlackListTokenServiceTest Fixture 추가 및 테스트 케이스 리펙토링

* refactor: 로그인 메서드 네이밍 변경

* test: AuthenticationControllerTest Fixture 추가 및 테스트 케이스 리펙토링

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

* test: AuthenticationServiceTest Fixture 및 테스트 케이스 수정

* test: AuthenticationControllerTest Fixture 및 테스트 케이스 수정

* test: KakaoUserInformationProviderTest Fixture 및 테스트 케이스 수정

* test: JpaBlackListTokenRepositoryFixture Fixture 내용 변경

* test: AuthenticationServiceTest 관련 사용하지 않는 Fixture 삭제 및 필드 변경

* test: KakaoUserInformationProviderTest 관련 테스트 대상을 Fixture에서 테스트 클래스로 변경

* refactor: #482 쪽지 컨트롤러 관련 테스트 코드 리팩토링 (#486)

* refactor: 문서화 메서드 분리

* refactor: 컨벤션에 맞춰 예외 필드 삭제

* refactor: fixture 생성

* refactor: 잘못된 변수 변경

* style: 불필요한 개행 삭제

* style: 네이밍 및 final 사용 통일

* refactor: 컨벤션에 맞춰 메시지 존재 여부로 판단하도록 수정

* test: 존재하지 않는 경매와 유효하지 않은 경매 아이디 테스트 케이스 분리

* refactor: 잘못된 변수명 수정

* style: final 사용 통일

* refactor: mock 객체 테스트 클래스로 이동

* refactor: 채팅방 아이디 픽스처로 통일

* style: 컨벤션에 맞춰 final 제거

* refactor: #431 쪽지 전송과 알림 전송 트랜잭션 분리 (#445)

* refactor: 알림 전송 시 예외 발생 시에도 에러 로그만 남기도록 변경

* refactor: 알림 실패 로직 변경에 따른 메시지 전송 로직 변경

* fix: 누락된 클래스 추가

* refactor: exception 여러개로 받도록 수정

* refactor: catch문에 포함되는 exception 추가

* refactor: 알림 성공 시 문자열이 아닌 알림 상태를 반환하도록 변경

* refactor: 정팩메 컨벤션에 맞춰 네이밍 변경

* refactor: todo에 고민 작성

* fix: 브랜치 최신화 이후 이미지 절대 주소 세팅 방식 변경

* refactor: 알림 전송 실패 시 로그 찍도록 수정

* refactor: 트랜잭션 동기화 적용 및 모킹 레포지토리 삭제

* refactor: 정팩메 컨벤션에 맞춰 네이밍 변경

* style: 변수명 변경 요청을 위한 todo 작성

* refactor: 입찰 서비스를 위한 알림 메시지 정팩메 생성

* test: 테스트 코드 추가

* refactor: #481 알림 관련 테스트 코드 리팩토링 (#497)

* refactor: mock이 포함된 필드명 변경

* refactor: 알림 서비스 테스트 픽스처 분리

* refactor: #480 디바이스 토큰 관련 테스트 코드 리팩토링 (#491)

* test: DeviceTokenTest Fixture 추가 및 테스트 케이스 리팩토링

* test: JpaDeviceTokenRepositoryTest Fixture 추가 및 테스트 케이스 리팩토링

* test: DeviceTokenServiceTest Fixture 추가 및 테스트 케이스 리팩토링

* test: DeviceTokenControllerTest Fixture 추가 및 테스트 케이스 리팩토링

* test: 모든 픽스처 객체를 `@BeforeEach`로 세팅하도록 변경

* test: 테스트 픽스처 추가, 네이밍 변경, 코드 스타일 개선

* style: 불필요한 공백 제거

* rename: 테스트하려는 결과의 변수명을 actual로 통일

* refactor: #479 채팅방 관련 테스트 코드 리팩토링 (#485)

* test: ChatRoomTest Fixture 추가 및 테스트 케이스 리팩토링

* test: JpaChatRoomRepositoryTest Fixture 추가 및 테스트 케이스 리팩토링

* test: QuerydslChatRoomRepositoryImplTest Fixture 추가 및 테스트 케이스 리팩토링

* test: QuerydslChatRoomAndImageRepositoryImplTest Fixture 추가 및 테스트 케이스 리팩토링

* test: QuerydslChatRoomAndMessageAndImageRepositoryImplTest Fixture 추가 및 테스트 케이스 리팩토링

* test: ChatRoomServiceTest Fixture 추가 및 테스트 케이스 리팩토링

* test: 모든 픽스처 객체를 `@BeforeEach`로 세팅하도록 변경

* test: 테스트 픽스처 추가 및 코드 리팩토링

* test: 서비스의 반환 값도 픽스처를 사용해서 비교하도록 수정

* stule: 개행 수정 및 사용하지 않는 필드 제거

* test: 픽스처 클래스 필드 중 사용하지 않는 필드 정리

* refactor: #490 사용자 관련 테스트 코드 리팩토링 (#499)

* test: JpaUserRepositoryTest 픽스처 추가 및 리팩토링

* test: ReadUserDto 테스트 제거

DB 제약 조건 변경으로 해당 로직이 불필요해짐에 따라 테스트도 불필요해짐

* test: UserServiceTest 픽스처 추가 및 리팩토링

* test: UserControllerTest 픽스처 추가 및 리팩토링

* test: UserAuctionControllerTest 픽스처 추가 및 리팩토링

* test: 반환값을 통해 비교하도록 수정

* test: import 와일드카드 제거

* test: fixture 필드 접근 제어자 추가

* refactor: #489 신고 관련 테스트 코드 리팩토링 (#493)

* test: JpaAuctionReportRepositoryTest 픽스처 추가 및 리팩토링

* test: JpaChatRoomReportRepositoryTest 픽스처 추가 및 리팩토링

* test: 세팅 메서드 명 수정

* test: AuctionReportServiceTest 픽스처 추가 및 리팩토링

* test: ChatRoomReportServiceTest 픽스처 추가 및 리팩토링

* test: ReportControllerTest 픽스처 추가 및 리팩토링

* test: mock이라는 불필요한 변수명 제거

* test: given절의 dto를 픽스처 이동

* test: 클레임 픽스처로 변환

* test: 배열 크기에 대한 검증 추가

* test: import 와일드카드 수정

* test: 통일성을 위해 final 제거

* test: 컨벤션에 따른 접근 제어자 제거

* test: 특정 값들을 픽스처로 설정

* test: 필요 없는 mock given 절 제거

* test: 컨벤션에 따른 필드명 수정

* test: 반환값을 통해 비교하도록 수정

* test: import의 와일드카드 제거

* refactor: #488 입찰 관련 테스트 코드 리팩토링 (#496)

* test: BidTest 픽스처 추가 및 리팩토링

* test: JpaBidRepositoryTest 픽스처 추가 및 리팩토링

* test: BidServiceTest 픽스처 추가 및 리팩토링

* test: BidControllerTest 픽스처 추가 및 리팩토링

* test: 반환값을 통해 비교하도록 수정

* test: 픽스처 값이 이해에 명확하도록 수정

* test: 테스트에 굳이 필요하지 않은 객체 제거

* test: 테스트에 필요하지 않는 로직 제거

* test: 테스트 픽스처를 명확하게 수정

* test: import 와일드카드 제거

* refactor: #487 이미지 관련 테스트 코드 리팩토링 (#501)

* test: AuctionProfileImageTest 픽스처 추가 및 리팩토링

* test: LocalStoreProfileImageProcessorTest 픽스처 추가 및 리팩토링

* test: JpaAuctionImageRepositoryTest 픽스처 추가 및 리팩토링

* test: JpaProfileImageRepositoryTest 픽스처 추가 및 리팩토링

* test: ImageIdProcessorTest 픽스처 추가 및 리팩토링

* test: ProfileImageServiceTest 픽스처 추가 및 리팩토링

* test: ImageUrlCalculatorTest 픽스처 추가 및 리팩토링

* test: ProfileImageControllerTest 픽스처 추가 및 리팩토링

* test: 반환값을 통해 비교하도록 수정

* test: 변수명 오탈자 수정

* test: import 와일드카드 제거

* test: 클래스 네이밍 수정

* test: 픽스처 필드 접근 제어자 수정

* ci: #506 슬랙 알림이 PR 첫 요청시에만 발생하도록 변경 (#507)

* ci: 슬랙 알림이 PR 첫 요청시에만 발생하도록 변경

* ci: jacoco 실행 시 모든 로그를 출력하는 기능 제거

* ci: github action가 동작은 하되 슬랙 알림은 첫 PR 요청, 실패, 중단 시에만 보내도록 변경

* ci: PR 검증 성공 시 슬랙 알림 if문 변경

* ci: PR 검증 성공 시 슬랙 알림 if문 변경

* ci: PR 검증 성공 시 슬랙 알림 if문 변경

* ci: PR 검증 성공 시 슬랙 알림 if문 변경

* ci: PR 검증 성공 시 슬랙 알림 if문 변경

* ci: PR 검증 성공 시 슬랙 알림 if문 변경

* ci: PR 검증 성공 시 슬랙 알림 if문 변경

* ci: PR 검증 성공 시 슬랙 알림 if문 변경

* ci: PR 검증 성공 시 슬랙 알림 if문 변경

* ci: PR 검증 성공 시 슬랙 알림 if문 변경

* fix: #510 ci: 슬랙 메세지 알림에서 링크가 비활성화되던 오류 수정 (#511)

* refactor: #478 지역 관련 테스트 코드 리팩토링 (#484)

* test: RegionTest 리팩토링

* test: AuctionRegionTest 리팩토링

* test: RestTemplateInitRegionProcessorTest Fixture 추가 및 테스트 케이스 리팩토링

* test: JpaRegionRepositoryTest Fixture 추가 및 테스트 케이스 리팩토링

* test: RegionServiceTest Fixture 추가 및 테스트 케이스 리팩토링

* rename: 잘못된 메서드 이름 변경

* test: RegionControllerTest Fixture 추가 및 테스트 케이스 리팩토링

* test: 컨트롤러에서 사용하는 픽스처 객체의 아이디가 중복되지 않도록 변경

* test: 원하는 테스트 결과인지 아이디를 통해 비교하도록 변경

* style: 개행 수정

* test: 모든 픽스처 객체를 `@BeforeEach`로 세팅하도록 변경

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

* test: 테스트 픽스처 추가, 네이밍 변경, 코드 스타일 개선

* test: 픽스처 네이밍 변경 및 접근 제어자 변경

* refactor: #483 메시지 레포지토리 관련 테스트 코드 리팩토링 (#495)

* refactor: 조회하는 사용자 아이디를 의미하는 변수명 명확하게 수정

* refactor: 메시지 레포지토리 테스트 픽스처 생성

* refactor: 인터페이스 테스트에서 구현체 테스트로 변경

* refactor: 변수 초기화와 레포지토리 저장 순서 변경

* refactor: 리스트 순서 관련 테스트 추가

* refactor: 메시지 조회하는 유저 아이디 변수명 변경

* refactor: 메시지 레포지토리 저장 테스트 대상 수정

* refactor: 의미가 모호한 변수 픽스처로 분리

* refactor: 픽스처 네이밍 한글로 변경

* style: 어노테이션 위치 변경

* refactor: 메시지를 변수로 추출

* refactor: 레포지토리 픽스처 접근제어자 변경

* refactor: 컨벤션에 맞춰 레포지토리 저장 메서드 id만 비교하도록 수정

* test: #494 경매 관련 테스트 코드 리펙토링 (#504)

* test: AuctionTest Fixture 생성 및 테스트 케이스 리펙토링

* test: BidUnitTest Fixture 생성 및 테스트 케이스 리펙토링

* test: PriceTest Fixture 생성 및 테스트 케이스 리펙토링

* test: SortParameterTest Fixture 생성 및 테스트 케이스 리펙토링

* test: AuctionServiceTest Fixture 생성 및 테스트 케이스 리펙토링

* test: AuctionControllerTest Fixture 생성 및 테스트 케이스 리펙토링

* test: QuerydslAuctionAndImageRepositoryImplTest Fixture 생성 및 테스트 케이스 리펙토링

* test: QuerydslAuctionRepository Fixture 생성 및 테스트 케이스 리펙토링

* test: JpaAuctionRepositoryTest Fixture 테스트 케이스 리펙토링

* test: JpaAuctionRepositoryTest Fixture 추가 및 테스트 케이스 리펙토링

* test: 사용하지 않는 Fixture 삭제

* test: Fixture 및 테스트 케이스 리펙토링

* test: 의미 없는 mocking 삭제

* test: 클래스 확장 시 개행 제거

* test: Fixture를 사용하지 않은 부분을 사용하도록 수정

* test: 도메인 엔티티 테스트 환경에서 JPA 제거

* test: AuctionServiceFixture 변경 및 AuctionServiceTest 테스트 케이스 수정

* test: AuctionControllerFixture 변경 및 AuctionControllerTest 테스트 케이스 수정

* refactor: TODO 삭제

* test: AuctionControllerTest Fixture 추가 및 검증 케이스 추가

* test: auction persistence 영역 테스트 어노테이션 변경 및 메서드, Fixture 네이밍을 명확하게 변경

* feature: #505 요청과 응답의 내용을 출력하는 로그 추가 (#513)

* refactor: 요청의 모든 처리 과정에 대한 로그를 출력하는 AOP 이름 변경

* refactor: 로그 출력 형식 변경

* refactor: 요청을 추적할 때 RestController는 제외하도록 적용 범위 변경

* feat: 요청과 응답의 정보를 출력하는 로그 기능 추가

* feat: 요청과 응답의 정보를 출력하는 로그 AOP 추가

* chore: logback 설정 변경

* ci: 계정 아이디 대소문자 통일

* fix: #519 쪽지 알림 시 쪽지 발신자의 프로필 사진이 전송되도록 수정 (#520)

* refactor: #498 메시지 서비스 테스트 관련 리팩토링 (#502)

* refactor: 메시지 조회자 변수명 변경

* refactor: 메시지 서비스 테스트 픽스처 분리

* refactor: 불필요한 프린트문 삭제

* refactor: 요청 dto 변수명 수정

* refactor: fixture에서 모킹하던 서비스 test클래스로 이동

* refactor: #539 경매 서비스 테스트에서 불필요한 레거시 테스트 제거 (#540)

* refactor: #530 warn, error 레벨 로그 포맷 변경 (#532)

* refactor: warn, error 시 포맷 변경

* refactor: logback 설정 변경 및 profile별 xml 파일 분리

* feat: #534 카테고리와 직거래 지역 조회 api 호출시 메모리 캐시 적용 (#544)

* feat: 메모리 캐시 설정 추가

* feat: 카테고리 조회 api에 매모리 캐시 적용

* feat: 직거래 지역 조회 api에 매모리 캐시 적용

* feat: #537 채팅 가능 기간 관련 정책 제거 및 탈퇴한 사용자와 채팅이 불가능하도록 기능 추가 (#538)

* feat: 채팅 가능 기간 관련 정책 제거 및 탈퇴한 사용자와 채팅이 불가능하도록 기능 추가

* style: 세미콜론 2개인 부분 1개로 변경

* test: 발신자가 탈퇴한 사용자인 경우 예외 발생에 대한 컨트롤러 테스트 추가

* refactor: #503 메시지 전송, 상위 입찰 생성과 알림 전송 이벤트 분리 (#525)

* feat: 알림 전송 이벤트용 dto 생성

* feat: 알림 전송 서비스에 이벤트 리스너 등록

* feat: 메시지 서비스, 알림 전송 이벤트 분리

* feat: 입찰 서비스, 알림 전송 이벤트 분리

* test: 알림 전송 이벤트 리스너 테스트 추가

* refactor: 알림 서비스와 알림 이벤트 리스너 분리

* test: 메시지 알림 이벤트 리스너 테스트 추가

* refactor: 리다이렉트와 이미지 주소 변환 로직 이벤트 리스너로 이동

* feat: 이벤트 발행 시 전달할 이벤트 dto 생성

* feat: 입찰 이벤트 생성

* test: dto 내부의 주소 변환 로직 이동으로 인해 깨지는 테스트 수정

* test: 이벤트 리스너에 입찰 테스트 추가되어 주석 삭제

* test: 픽스처 네이밍 변경

* refactor: 이벤트 퍼블리셔 네이밍 변경

* test: 알림 실패 시에도 메시지 커밋되는지 확인하는 테스트 추가

* refactor: 이벤트 전송을 위한 메서드 분리

* refactor: 길어지는 메서드 체이닝 변수로 추출

* fix: 머지 시 누락된 테스트 코드 변경

* refactor: 불필요한 필드 제거

* refactor: EventListener 트랜잭션 이벤트 리스너로 변경

* refactor: 트랜잭션 분리 제거, 예외를 처리하지 않고 던지도록 변경

* refactor: 알림 서비스에서 발생하는 예외 이벤트 리스너에서 처리하도록 수정

* test: 이벤트 리스너 알림 전송 실패 케이스 테스트 추가

* test: 이벤트 발행 테스트를 알림 서비스가 아닌 이벤트 리스너로 테스트하도록 변경

* test: 채팅방 로직 변경에 따라 추가가 필요했던 테스트 todo 삭제

* refactor: 관심사 분리를 위해 dto 네이밍 변경

* test: 이벤트 메서드 실행 시 알림 메서드 실행되는지 여부 확인하는 테스트 추가

* test: 결과에 해당하는 코드 then절로 이동

* fix: #550 입찰 관련 알림 수신자 변경 (#551)

* fix: 마지막 입찰자 업데이트하기 전에 이전의 마지막 입찰자를 가지고 오도록 수정

* rename: 메서드가 하는 일을 명확하게 나타낼 수 있도록 메서드명 변경

* feat: #294 유저 상호 평가 api 추가 (#515)

* feat: 사용자 평가 엔티티 추가

* feat: 사용자 평가 레포지토리 추가

* feat: 사용자 신뢰도 계산 기능 추가

* feat: 사용자 신뢰도 제출 및 조회 서비스 추가

* feat: 사용자 신뢰도 제출 및 조회 컨트롤러 추가

* refactor: 개행 및 메서드 분리를 통해 가독성 개선

* feat: 사용자 평가 관련 flyway 스크립트 추가

* docs: 유저 상호 평가 api 문서화 추가

* feat: 평가 등록 시 자격이 있는지 검증 로직 추가

* rename: request dto와 response dto 패키지 이동

* rename: 지정한 유저가 받은 모든 평가 목록을 가져오는 controller 메서드 이름 변경

* feat: 지정한 작성자가 지정한 경매에 제출한 평가를 조회하는 레포지토리 추가

* feat: 지정한 작성자가 지정한 경매에 제출한 평가를 조회하는 서비스 추가

* feat: 지정한 작성자가 지정한 경매에 제출한 평가를 조회하는 컨트롤러 추가

* docs: 사용자가 경매 거래 상대에게 작성한 평가 조회 부분 문서화

* test: 픽스처 객체 생성을 `@beforeEach`에서 하도록 변경

* test: 테스트에 Non-ASCII 경고 억제 어노테이션 추가

* refactor: null 데이터를 가진 dto를 매번 생성하지 않고 static 하게 갖고 있도록 변경

* refactor: 빌더를 사용한 생성자의 접근지정자를 private으로 변경

* style: 개행 수정

* feat: db에 평가 점수 필드에 null 불가 조건 추가

* test: 서비스 테스트에 픽스처 추가

* refactor: 사용하지 않는 `@EntityGraph` 제거

* feat: 지정한 평가 아이디로 평가를 조회할 수 있는 api 추가

* docs: 지정한 평가 아이디로 평가를 조회할 수 있는 api 문서화 추가

* feat: 평가 점수를 나타내는 VO 추가

* test: 픽스처 누락된 부분 추가

* feat: 사용자가 경매 거래에 작성한 평가 조회 uri 변경

* docs: 사용자가 경매 거래에 작성한 평가 조회 uri 변경에 따른 문서화 수정

* feat: 사용자 엔티티에 신뢰도 값객체 적용

* fix: 사용자 엔티티에 신뢰도 값객체 적용으로 인한 컴파일 에러 해결

* refactor: 사용자 엔티티 생성자 필드의 `@NotNull`을 `@NonNull`로 변경

* test: 실패하는 테스트 해결

* refactor: 초기 상태의 신뢰도를 나타내는 상수를 활용하도록 생성자 로직 수정

* style: 불필요한 개행 제거

* ci: 충돌 해결

* ci: 충돌 해결

* fix: #552 logback-spring.xml 설정 변경 (#553)

* fix: #552 로그 설정 변경 (#555)

* fix: logback-spring.xml 설정 변경

* fix: logback-spring.xml 포맷 변경

* fix: #552 로그 설정 변경 (#556)

* fix: logback-spring.xml 설정 변경

* fix: logback-spring.xml 포맷 변경

* fix: logback-spring.xml 포맷 변경

* fix: logback-spring.xml 포맷 변경

* refactor: #554 응답의 소수 데이터를 Float 타입으로 변경 (#559)

* refactor: 응답의 소수 데이터를 Float 타입으로 변경

* style: 개행 수정

* feat: #546 비즈니스 로직 호출 메트릭 추가 (#549)

* feat: 비즈니스 로직 호출 Counter 메트릭 AOP 추가

* refactor: 패키지 위치 및 클래스 네이밍 변경

* fix: Counter 메트릭에서 주요 비즈니스 로직이 아닌 api는 제외하도록 변경

* revert: 운영 서버 최신화 revert (#569)

* Revert "feat: #546 비즈니스 로직 호출 메트릭 추가 (#549)"

This reverts commit 2d0c4bcffd292796ba11d9970e4964c2fefddbe3.

* Revert "refactor: #554 응답의 소수 데이터를 Float 타입으로 변경 (#559)"

This reverts commit ba1dd28fe785717fa53bd8133626555975ff7322.

* Revert "fix: #552 로그 설정 변경 (#556)"

This reverts commit 3e9e68abd5296b553037d489e2f02ecadb7ed3f7.

* Revert "fix: #552 로그 설정 변경 (#555)"

This reverts commit 4e234270c651166f57321b771336f9271f3c98f0.

* Revert "fix: #552 logback-spring.xml 설정 변경 (#553)"

This reverts commit f2cd679e625a8dd8cb5935fd5b6ebcbd54fabe4f.

* Revert "feat: #294 유저 상호 평가 api 추가 (#515)"

This reverts commit e364f4239c3537f1266877806a280de9986d9d89.

* Revert "fix: #550 입찰 관련 알림 수신자 변경 (#551)"

This reverts commit f8e34a9fcd3d6eb04045ce40bafbcbf81db27eda.

* Revert "refactor: #503 메시지 전송, 상위 입찰 생성과 알림 전송 이벤트 분리 (#525)"

This reverts commit 41d9755cfc766755a1cd3d48fa1ba2cbf09c16fe.

* Revert "feat: #537 채팅 가능 기간 관련 정책 제거 및 탈퇴한 사용자와 채팅이 불가능하도록 기능 추가 (#538)"

This reverts commit 6159d0b7af8dee9c680d3b14faa07ec8a976220e.

* Revert "feat: #534 카테고리와 직거래 지역 조회 api 호출시 메모리 캐시 적용 (#544)"

This reverts commit 240fe170ced9b384a2a1adfa173560b5c628bc9f.

* Revert "refactor: #530 warn, error 레벨 로그 포맷 변경 (#532)"

This reverts commit b5610b8bebf0753441cb9829b591a072947e061b.

* Revert "refactor: #539 경매 서비스 테스트에서 불필요한 레거시 테스트 제거 (#540)"

This reverts commit b69b433903ab71e31f1234efdc4c1722f0ca0117.

* Revert "refactor: #498 메시지 서비스 테스트 관련 리팩토링 (#502)"

This reverts commit c0708cb15f5abd4db8d4df64d6dda63c4bf1315b.

* Revert "fix: #519 쪽지 알림 시 쪽지 발신자의 프로필 사진이 전송되도록 수정 (#520)"

This reverts commit c5a024b9c159f33ad1cd1fc04d0d517d759359b0.

* Revert "feature: #505 요청과 응답의 내용을 출력하는 로그 추가 (#513)"

This reverts commit 0e14778b107da93a6b2aa30b19c6b9189c664c9d.

* Revert "test: #494 경매 관련 테스트 코드 리펙토링 (#504)"

This reverts commit e65000ab139fc7afb550b3c630b1a7b34a0b3c48.

* Revert "refactor: #483 메시지 레포지토리 관련 테스트 코드 리팩토링 (#495)"

This reverts commit c7cf8242025ba5156161afb8e609c43f4dcaf1a3.

* Revert "refactor: #478 지역 관련 테스트 코드 리팩토링 (#484)"

This reverts commit 6edf4b7fe8f6ddcccc65b4772424eec42efe8488.

* Revert "fix: #510 ci: 슬랙 메세지 알림에서 링크가 비활성화되던 오류 수정 (#511)"

This reverts commit 112c413ac6570114153e863380159bfc4ddf971e.

* Revert "ci: #506 슬랙 알림이 PR 첫 요청시에만 발생하도록 변경 (#507)"

This reverts commit 2468b8e95d4746f39787ee635ef26a49235443c0.

* Revert "refactor: #487 이미지 관련 테스트 코드 리팩토링 (#501)"

This reverts commit 944402f91580d841f3d270337aa6bae430a93441.

* Revert "refactor: #488 입찰 관련 테스트 코드 리팩토링 (#496)"

This reverts commit 93cbfbc0b87cf942126f72c747942dd23c8f2810.

* Revert "refactor: #489 신고 관련 테스트 코드 리팩토링 (#493)"

This reverts commit e2393135544385e150b4e74ea9bba18b5ed27581.

* Revert "refactor: #490 사용자 관련 테스트 코드 리팩토링 (#499)"

This reverts commit 58985e81e6c2a0d108e3f76cf4410b2e0c211d99.

* Revert "refactor: #479 채팅방 관련 테스트 코드 리팩토링 (#485)"

This reverts commit 4ff76bbfbda085e2c9ab2e70ccdb19d839733ec7.

* Revert "refactor: #480 디바이스 토큰 관련 테스트 코드 리팩토링 (#491)"

This reverts commit d64c2577d1bad30ab92f0450a5acec1fa8cccba2.

* Revert "refactor: #481 알림 관련 테스트 코드 리팩토링 (#497)"

This reverts commit b0c5c8298ecc14d616f1e40e23c1004a448177a8.

* Revert "refactor: #431 쪽지 전송과 알림 전송 트랜잭션 분리 (#445)"

This reverts commit d7beac2cc33813485a4debe793d00c2a3a3fefa4.

* Revert "refactor: #482 쪽지 컨트롤러 관련 테스트 코드 리팩토링 (#486)"

This reverts commit 45537b94b7ca9de9c4b70f6cc58a89b4c0f10d96.

* Revert "test: #473 인증 & 인가 관련 테스트 코드 리펙토링 (#476)"

This reverts commit 5e14721e451e2324a4720a85f507e0679e6c8e59.

* Revert "feat: #468 요청을 처리하는 모든 과정을 추적하는 로그 기능 추가 (#475)"

This reverts commit cce14b3c39126ff82c8b27d5f1aca902cba44beb.

* Revert "test: #471 카테고리 관련 테스트 코드 리펙토링 (#472)"

This reverts commit 30db9fcae4071e8f6eca8566b8552b6cb7b6300a.

* Revert "refactor: #469 이미지 url 관련 네이밍 수정 (#470)"

This reverts commit e54fcabcc240fe34f1d44d6206aa46d0c4797f48.

* Revert "!hotfix: 채팅방에 메시지가 없을 때 목록 조회 시 예외 발생하지 않도록 수정 (#467)"

This reverts commit 367662d0a1d10871916127e94fa58ebbb3272cd6.

* Revert "fix: 예외 처리 방식 및 메시지 수정 (#465)"

This reverts commit 2e2fed2c3987f935f342436a70f6937dd8abd1fd.

* Revert "!hotfix: 알림 타입과 관련된 key 값 api 명세에 맞게 변경 (#464)"

This reverts commit 5c3f625bbeb5eedc1b061107cb8630a6e35b3f66.

* Revert "refactor: #459 Token 발급 시 반환하는 형태 통일 (#460)"

This reverts commit b7f6f12c35e6d806a6c00126144390eadfec525b.

* Revert "fix: #457 절전모드에서도 알림을 받을 수 있도록 수정 (#458)"

This reverts commit 739deeed85d807a5791f2fd1309aca9a73a72e10.

* Revert "refactor: #452 입찰 알림 메시지 수정 (#453)"

This reverts commit d1f4fee06e570e68cb072ed2e9126c3c02643003.

* Revert "refactor: #139 경매 엔티티에 경매 상태를 계산하는 기능 추가 (#454)"

This reverts commit 2ae05b89db7dcd28529a6d115586bcbc54632e9f.

* Revert "test: #239 컨트롤러 슬라이스 테스트 설정 공통화 (#441)"

This reverts commit 5f833825b527742310a61053c7ea847379b547e5.

* Revert "refactor: #442 경매 등록 로직 변경 (#443)"

This reverts commit 5583510237c2b7a361f3b5c716aeb3de801b28cf.

* Revert "!hotfix: 디바이스 토큰 cascade 설정 삭제 (#447)"

This reverts commit 41855a7bad195d0dea1fd8b96ef1ec3d6740c2f2.

* Revert "fix: flyway 문제 발생 해결 (#440)"

This reverts commit 7e391087ef6ac6e9e6767f326c060302f094a37f.

* Revert "feat: #413 상위 입찰자 발생 시 기존 마지막 입찰자에게 알림을 전송하는 기능 추가 (#438)"

This reverts commit 367a84774554bd5be4b176a483ffb42425f5ede6.

* Revert "fix: 쪽지 신고 fk 수정 (#434)"

This reverts commit 0caf0413b638090f39ed1eb9f9cb9495047622a5.

* Revert "refactor: #427 report 정렬 추가 및 탈퇴 시 디바이스 토큰 제거 (#429)"

This reverts commit 844d7e3dbfe04fad82d429826dfaf28bcf0aaeaf.

* Revert "프로필 이미지가 null일 경우 알림 전송에 실패하는 오류 해결 (#412)"

This reverts commit 892e8c1a46b047310e6213db5e7d418f0be3e103.

* Revert "채팅방 목록 조회 시 경매 이미지 개수만큼 데이터가 중복되는 현상 해결 및 쿼리 최적화 (#411)"

This reverts commit 7189c23e78f25dfccc402d31ef320793b0bd6bee.

* Revert "fix: 카카오 요청 관련 문제 해결 (#419)"

This reverts commit f34cee81df106f3e7589ef5c0f2ab0cb84c7c4c8.

* Revert "fix: #417 탈퇴 시 권한이 없다고 뜨는 문제 해결 (#418)"

This reverts commit 3ec08ab6709bece4482116da2d3e867e82b72f61.

* Revert "feat: #400 사용자 정보 수정 시 이름만 수정한다면 이미지는 null 전달되는 요청 처리 (#401)"

This reverts commit a95d3ee7ee931ce311b1040087e0d093b5268108.

* Revert "refactor: 탈퇴 시 요청 메서드 변경 (#409)"

This reverts commit 93e31374b2c6751639b4872e781e728d4a776993.

* Revert "refactor: #398 마감 임박순 정렬 쿼리 및 내가 등록한 경매 목록 조회 쿼리 변경 (#399)"

This reverts commit b893c47725ca7f7fe93cdb906f648d07e466951c.

* Revert "refactor: #386 프로덕션 환경의 FCM 설정과 로컬 환경의 FCM 분리 (#393)"

This reverts commit 4a7420bc42057f495a9af63a298c749f712ce7eb.

* Revert "!hotfix: 채팅방 목록 조회 시 groupBy 문제 해결 (#388)"

This reverts commit b439c2146172bbd28a5cd10592bbe885c90d0bec.

* Revert "refactor: #386 프로덕션 환경의 FCM 설정과 테스트 환경의 FCM 분리 (#387)"

This reverts commit b1fa679c39847b66571ffa33a0f87a528e606f51.

* Revert "!hotfix: 경매 이미지 url 처리에 방법 변경 (#385)"

This reverts commit 8346286979a6f929ee341768da6a0291030541d7.

* Revert "!hotfix: 알림 전송 실패 시 로그 추가 및 이미지 null 처리 문제 해결 (#384)"

This reverts commit 7db98676d95fac0ad60f919f55e9547deff5ec81.

* Revert "feat: #364 탈퇴 기능 추가 (#378)"

This reverts commit add6f8be6df6ec195aa3b70526bcb047a7821ff3.

* Revert "!hotfix: V11 flyway script 수정 (#383)"

This reverts commit 25dbb27ccd119692d5c4d4421965ba71d1e03ad4.

* Revert "feat: #353 사용자 정보 수정 기능 추가 (#361)"

This reverts commit 9ba12ddf5f67cba1fb73813c439dfead1c68ee7e.

* Revert "!hotfix: fcm private key를 읽을 수 없는 문제 해결 (#381)"

This reverts commit 8d7b0b3fe578a9ebd6f486e15d030e050ce49c10.

* Revert "!hotfix: flyway script 이름 변경 (#379)"

This reverts commit f7639f15a345a662e0b1d00c1907b10c8487f787.

* Revert "feat: #354 새로운 메시지 생성 시 알림 기능 추가 (#367)"

This reverts commit 690414f3b6b971f97baf22a52135d05e44030a78.

* Revert "feat: #366 사용자 관련 경매 목록 조회 기능 추가 (#368)"

This reverts commit a75c4261ec8a0d63b4de9bbf0c5ecc7aa1546691.

* Revert "feat: #341 채팅방 관련 코드 리팩토링 (#347)"

This reverts commit c46cf3d26371001b4cfb07eea0dd78e0e1f02a7b.

* Revert "!hotfix: #369 jenkinsfile 스크립트 버전 삭제 (#370)"

This reverts commit dff1f632716f83d40c76295851ef0423ededf75e.

* Revert "fix: #352 경매 목록 조회 시 정렬 기능 버그 수정 (#359)"

This reverts commit c0e0ee9afae6773a2c98c146f4dbdb9ef29ba0ee.

* Revert "feat: #349 경매 목록 검색 시 제목 기반의 검색 기능 추가 (#350)"

This reverts commit cff0bcdb925873dea96fc5b97e4f7cedd7e90ec9.

* Revert "feat: #340 경매 목록 조회 시 정렬 기능 추가 (#343)"

This reverts commit 945294eefee8de1cc596465d51406fb98efb7cfe.

* Revert "refactor: #321 채팅 메시지 조회 리팩토링 (#322)"

This reverts commit 7af01458cf42da8663903f82fb32fe4db7e573c1.

* Revert "fix: #336 경매 목록 조회 쿼리 변경 (#338)"

This reverts commit 2ed80d2359010c23640e90be87d1c4d2fced704f.

* Revert "feat: #323 경매 목록 조회 시 인가 기능 추가 (#324)"

This reverts commit 61963395e64fafa3ce58bd1c3fd4c45c5a24bc37.

* feat: #323 경매 목록 조회 시 인가 기능 추가 (#324)

* feat: 경매 상세 조회 api 인가 기능 추가

* test: 경매 목록 조회 api 인가 테스트 추가

* docs: 경매 목록 조회 문서 최신화

* style: final 키워드 추가

* fix: #336 경매 목록 조회 쿼리 변경 (#338)

* fix: 경매 목록 조회 쿼리 변경

* refactor: 애플리케이션에서 페이징 처리를 진행하던 경매 목록 조회 쿼리 수정

* style: 개행 수정

* refactor: #321 채팅 메시지 조회 리팩토링 (#322)

* !hotfix: 버그 리포팅을 위한 이슈 템플릿 추가

* !hotfix: 버그 리포팅용 이슈 템플릿의 설명을 조금 더 명확하게 변경

* !hotfix: 개발 도중 버그가 발생했을 때의 이슈 템플릿의 설명을 명확하게 변경

* refactor: 메시지 조회 시 연관 엔티티 fetch join하도록 변경

* style: 120자 넘어가는 줄 개행

* refactor: 메시지 조회 dto 필드 변경

* refactor: 불필요한 fetch join 제거

* refactor: 불필요한 user 조회 로직 제거

* refactor: 불필요한 fetch join 제거 및 조회한 chatRoom DTO로 전달

* refactor: 조회한 채팅방 엔티티를 DTO변환에 사용하도록 변경

---------

Co-authored-by: 지토 <[email protected]>

* feat: #340 경매 목록 조회 시 정렬 기능 추가 (#343)

* feat: api에서 전달된 정렬 조건을 필드 명으로 변경하는 기능 추가

* feat: Controller에서 기본 정렬 방향이 DESC인 Pageable을 설정하는 ArgumentResolver 추가

* refactor: 경매 목록 조회 시 int가 아닌 Pageable을 전달받도록 변경

* rename: api에서 전달된 정렬 조건을 필드 명으로 변경하는 기능 네이밍 변경

* rename: api에서 전달된 정렬 조건을 필드 명으로 변경하는 기능 네이밍 변경

* feature: 정렬 조건을 Querydsl 표현식으로 변환하는 기능 추가

* feat: 경매 목록 조회 시 정렬 관련 쿼리가 실행되는 기능 추가

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

* fix: 누락된 정렬 조건 추가

* test: 메서드 변경으로 인해 실패하는 테스트 케이스 수정

* refactor: Converter 과정 중 일부 로직 메서드 분리

* rename: 기본 정렬 조건을 내림차순으로 설정하는 ArgumentResolver 네이밍 변경

* style: return 개행 추가

* style: final 키워드 추가

* style: 불필요한 import 코드 제거

* fix: ArgumentResolver에서 관리하던 기본 값을 enum으로 분리

* refactor: QuerydslSliceHelper 메서드 네이밍 변경

* refactor: enum Converter 네이밍 수정

* refactor: enum Converter 공통되는 문자열 상수 분리

* refactor: 정렬 시 항상 auction의 id를 내림차순으로 정렬하도록 조건 추가

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

* feat: #349 경매 목록 검색 시 제목 기반의 검색 기능 추가 (#350)

* feat: 경매 목록 검색 DTO 추가

* feat: 경매 목록 조회 시 제목 검색 기능 추가

* rename: 경매 목록 조회 시 검색 DTO SearchCondition 네이밍 변경

* feat: ReadAuctionSearchCondition ArgumentResolver 관련 기능 추가

* test: 경매 목록 조회 시 제목 검색에 대한 더미 데이터와 테스트 케이스 추가

* test: 경매 목록 조회 시 제목 검색에 대한 더미 데이터와 테스트 케이스 추가

* fix: #352 경매 목록 조회 시 정렬 기능 버그 수정 (#359)

* feat: ArgumentResolver Pageable 관련 설정 추가

* fix: no-offset 기반에서 offset 기반의 쿼리로 변경

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

* fix: 메서드 파라미터에서 lastAuctionId 제거

* refactor: 경매 목록 조회 메서드 네이밍 변경

* fix: 마감 임박순 정렬 내림차순에서 오름차순으로 변경

* test: 경매 목록 조회 테스트 시 더미 데이터 및 테스트 케이스 추가

* test: 잘못된 테스트 케이스 수정

* refactor: 경매 목록 요청 시 정렬 쿼리 파라미터 이름 변경

* !hotfix: #369 jenkinsfile 스크립트 버전 삭제 (#370)

* fix: jenkinsfile 스크립트 버전 삭제

* hotfix: jenkins 스크립트 DEV 변수명 변경

* hotfix: jenkins 스크립트 환경변수 변경

* ci: sonarqube 관련 설정 삭제 및 슬랙 알림 이름 변경

* feat: #341 채팅방 관련 코드 리팩토링 (#347)

* refactor: 코드 개행, 네이밍 수정 및 로직 개선

* refactor: AuctionService 내의 ChatRoomService 의존성 분리

* perf: 레포지토리에서 단일 채팅방 조회 시의 쿼리 최적화

* refactor: 채팅방을 마지막 메시지가 최근인 순으로 정렬하는 기능에 대해 서비스에서 정렬하지 않고 레포지토리에서 정렬해서 조회하도록 변경

* perf: 레포지토리에서 마지막 메시지가 최근인 순으로 정렬하여 조회할 때 채팅방과 메시지를 함께 하나의 dto로 받아오도록 성능 개선

* test: 채팅방 목록 조회 테스트 데이터 추가

* refactor: 채팅방 목록 조회 시 반환하는 dto에 `@QueryProjection` 사용하도록 변경

* rename: 레포지토리에서 채팅방 목록 조회시 반환하는 dto 이름 변경

* perf: db에서 정렬하지 않고 레포지토리에서 정렬하도록 변경

* refactor: dto를 반환하는 레포지토리 엔티티를 반환하는 레포지토리 분리

* refactor: 불필요한 orderBy 제거 및 사용하지 않는 메서드 제거

* style: 개행 수정

* style: 개행 수정 및 불필요한 import 제거

* refactor: 리뷰 피드백 적용

- 예외 네이밍 변경
- 개행 수정
- 쿼리 간소화

* refactor: 통일성을 위해 Querydsl 키워드 명시하도록 변경

* feat: #366 사용자 관련 경매 목록 조회 기능 추가 (#368)

* feat: 회원이 등록한 경매 목록을 조회하는 쿼리 추가

* feat: 회원이 등록한 경매 목록을 조회하는 기능 추가

* feat: 회원이 등록한 경매 목록을 조회하는 api 추가

* feat: 회원이 참여한 경매 목록을 조회하는 쿼리 추가

* test: 테스트 클래스 네이밍 변경

* feat: 회원이 참여한 경매 목록을 조회하는 기능 추가

* feat: 회원이 참여한 경매 목록을 조회하는 api 추가

* docs: 문서 최신화

* style: 불필요한 개행 제거

* style: 메서드 순서 변경

* refactor: 사용자가 호출하는 경매 목록 조회 Controller 분리

* docs: 문서 최신화

* feat: #354 새로운 메시지 생성 시 알림 기능 추가 (#367)

* chore: FCM 사용을 위한 설정 추가

Co-authored-by: swonny <[email protected]>

* feat: 사용자 디바이스 토큰 엔티티 및 레포지토리 추가

Co-authored-by: swonny <[email protected]>

* feat: 알림 전송 서비스 구현

Co-authored-by: swonny <[email protected]>

* feat: 로그인 시 알림을 위한 디바이스 토큰 저장 기능 추가

Co-authored-by: swonny <[email protected]>

* feat: 알림 데이터에 알림 타입 추가

Co-authored-by: swonny <[email protected]>

* feat: 메시지 전송 시 알림 전송 기능 추가

Co-authored-by: swonny <[email protected]>

* refactor: 알림 속성 패키지 이동

Co-authored-by: swonny <[email protected]>

* refactor: 디바이스 토큰 패키지 분리

Co-authored-by: swonny <[email protected]>

* feat: 디바이스 토큰 갱신을 위한 서비스 및 api 추가

Co-authored-by: swonny <[email protected]>

* refactor: 로그인 시 디바이스 토큰 저장할 때 서비스를 호출하도록 변경

Co-authored-by: swonny <[email protected]>

* docs: 디바이스 토큰 관련 api 문서화

Co-authored-by: swonny <[email protected]>

* feat: 알림 전송 실패 예외 핸들링 추가

Co-authored-by: swonny <[email protected]>

* style: 개행 수정 및 불필요한 주석 제거

Co-authored-by: swonny <[email protected]>

* fix: 사용자 기기 토큰을 토큰 아이디로 찾아서 생기는 버그 수정

Co-authored-by: swonny <[email protected]>

* feat: FCM 빈 등록을 설정 파일에서 제어할 수 있도록 기능 추가

Co-authored-by: swonny <wonny [email protected]>

* refactor: mock 객체의 equals() and hashCode() 재정의를 롬복 사용하도록 수정

* refactor: 토큰 갱신 api의 request method를 put -> patch로 변경

* feat: 엔티티의 기기 토큰 필드가 null이 될 수 없도록 변경 및 기기 토큰이 비어있을 경우 저장하지 않는 기능 추가

* refactor: 토큰 갱신 서비스 메서드 이름 수정 및 세부 로직 수정

* rename: 디바이스 토큰 갱신 시 application 레이어에서 사용하는 dto 이름 변경

* test: 필요없는 테스트 삭제 및 실패하는 테스트 수정

* docs: 문서 최신화

* ci: 충돌 해결

* style: 개행 수정 및 체이닝 정렬

* fix: 기기 토큰 엔티티의 toString 대상에서 lazy 로딩인 엔티티 제외

* style: enum 나열 방식 수정

* feat: 기기 토큰 엔티티에 외래키 이름 설정 추가

* feat: 기기 토큰 테이블 관련 flyway 스크립트 추가

* refactor: 알림을 위한 빈 등록 실패 시 예외를 발생시키도록 변경

* refactor: 알림 전송 실패 시 예외를 던지지 않고 실패 메시지를 반환하도록 변경

* refactor: 기기 토큰 관련 api url 변경

Co-authored-by: swonny <[email protected]>

---------

Co-authored-by: kwonyj1022 <[email protected]>
Co-authored-by: swonny <wonny [email protected]>

* !hotfix: flyway script 이름 변경 (#379)

Co-authored-by: swonny <[email protected]>

* !hotfix: fcm private key를 읽을 수 없는 문제 해결 (#381)

* feat: #353 사용자 정보 수정 기능 추가 (#361)

* feat: 이미지 url을 만드는 util 클래스 추가

* feat: User의 이미지를 엔티티 객체로 수정

* feat: 사용자 정보 수정 기능 추가

* feat: 이미지 조회 서비스 추가

* refactor: 메시지의 이미지 url과 관련해 util을 사용하도록 수정

* refactor: 이미지를 반환하도록 수정

* feat: 사용자 프로필 이미지 조회 컨트롤러 추가

* refactor: 업데이트 메서드에 Transactional 설정

* test: userService 예외 테스트 추가

* feat: 누락된 dto 파일 추가

* refactor: 메서드명이 명확하도록 수정

* refactor: Embedded를 통한 중복 필드 제거

* rename: 이미지 url 생성 util 클래스 패키지 위치 및 네이밍 변경

* refactor: 메서드명을 명확하도록 수정

* refactor: 개행 수정

* refactor: 변수명을 컨벤션에 맞도록 수정

* refactor: 변수명 수정 및 중복 제거

* feat: 사용자 수정 컨트롤러 기능 추가

* refactor: 메서드 로직을 명확하게 분리

* ci: 충돌 문제 해결

* ci: flyway profileImage 연관관계 수정

* docs: 문서 최신화

* style: 해결된 todo 제거

* ci: flyway 문법 수정

* refactor: User profileImage의 fk 설정

---------

Co-authored-by: apptie <[email protected]>

* !hotfix: V11 flyway script 수정 (#383)

* feat: #364 탈퇴 기능 추가 (#378)

* feat: 카카오 연결 끊기 기능 추가

* feat: 탈퇴 기능 서비스 추가

* feat: oauth id에 대한 unique 속성 제거

* refactor: 회원과 사용자라는 용어 통일

* feat: 이름이 이미 존재하는지에 대한 확인 쿼리 메서드 추가

* feat: 랜덤 이름을 생성하는 util 클래스 추가

* feat: 재가입 시 이름에 대한 중복 문제 해결을 위한 로직 추가

* feat: 탈퇴한 회원의 이름을 가져오는 경우에 대한 로직 추가

* feat: 탈퇴 컨트롤러 기능 추가

* feat: 예외처리 추가

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

* refactor: flyway 버전 수정

* refactor: 탈퇴한 사용자 이름 변경 로직 위치 수정

* docs: 문서 최신화

* refactor: 예외 메시지 클래스명 수정

* refactor: do-while문을 while문으로 수정

* refactor: 탈퇴 시 로직 순서 변경

* style: 해결된 todo 제거

* ci: flyway 버전 수정

* ci: 충돌 문제 해결

* refactor: 이미지가 null인 경우에 대한 예외처리 추가

* refactor: util 클래스에 final 추가

* fix: 경매 이미지 url 경로 누락 문제 해결

* !hotfix: 알림 전송 실패 시 로그 추가 및 이미지 null 처리 문제 해결 (#384)

* feat: 알림 전송 실패 시 로그 추가

* fix: 이미지 null 처리 문제 해결

* !hotfix: 경매 이미지 url 처리에 방법 변경 (#385)

* fix: 경매 이미지 url 처리에 방법 변경

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

* refactor: #386 프로덕션 환경의 FCM 설정과 테스트 환경의 FCM 분리 (#387)

* refactor: 프로덕션 영역의 FcmConfiguration profile 적용 및 코드 리펙토링

* test: 테스트 영역의 FcmConfiguration 추가

* !hotfix: 채팅방 목록 조회 시 groupBy 문제 해결 (#388)

* refactor: #386 프로덕션 환경의 FCM 설정과 로컬 환경의 FCM 분리 (#393)

* refactor: production 환경에서의 FCM Configuration 클래스 네이밍 변경 및 profile 설정 추가

* refactor: local 환경에서의 FCM Configuration 클래스 추가

* refactor: #398 마감 임박순 정렬 쿼리 및 내가 등록한 경매 목록 조회 쿼리 변경 (#399)

* feat: 마감 임박순 정렬 시 이미 마감된 경매는 후순위로 정렬하는 기능 추가

* chore: 더 이상 사용하지 않는 유틸리티 클래스 삭제

* refactor: 메서드 이름 변경

* fix: 내가 등록한 경매 목록 조회 시 삭제된 경매는 보이지 않도록 쿼리 변경

* refactor: 탈퇴 시 요청 메서드 변경 (#409)

* refactor: 요청 메서드 타입 변경

* test: 테스트 실패 해결

* feat: #400 사용자 정보 수정 시 이름만 수정한다면 이미지는 null 전달되는 요청 처리 (#401)

* refactor: 사용자 정보 수정 시 이미지만 수정될 수 있도록 수정

* feat: MultipartFile의 null 처리 추가

* refactor: 수정되지 못한 클래스 명 수정

* test: 잘못된 검증 로직 수정

* refactor: 필드명 수정

* fix: #417 탈퇴 시 권한이 없다고 뜨는 문제 해결 (#418)

* refactor: 입찰 조회 시 정렬을 명시적으로 작성

* refactor: 탈퇴 시 accessToken decode를 통해 회원을 조회 해 오도록 변경

* fix: 카카오 요청 관련 문제 해결 (#419)

* 채팅방 목록 조회 시 경매 이미지 개수만큼 데이터가 중복되는 현상 해결 및 쿼리 최적화 (#411)

* fix: 이미지 개수만큼 채팅방이 중복 조회 되는 문제 해결

* rename: dto 이름 변경

* refactor: 채팅방 아이디로 채팅방 조회할 때 쿼리 개선

* style: 나중에 하기로 한 것 todo 추가

* 프로필 이미지가 null일 경우 알림 전송에 실패하는 오류 해결 (#412)

* feat: 로그인 시 프로필 이미지를 null이 아닌 기본이미지로 세팅하는 기능 추가

* feat: 사용자 엔티티의 프로필 이미지에 널 불가 제약조건 추가

* feat: 알림 dto에 `@NonNull` 제약 조건 추가

* refactor: 알림 전송 성공 및 예외 발생 시 로그 추가

* refactor: 기본 프로필 이미지 조회 시 이름으로 조회하도록 변경

* feat: 로그인 시 기본이미지를 찾을 수 없으면 예외가 발생하는 기능 추가

* refactor: 프로필 이미지 경로 생성을 유틸 클래스에서 하도록 변경

* refactor: 기본 프로필 이미지 이름을 엔티티에서 관리하도록 변경

* fix: flyway 스크립트 수정

* refactor: 알림 dto에서 사용하는 `@NonNull`을 롬복의 어노테이션을 사용하도록 변경

* refactor: #427 report 정렬 추가 및 탈퇴 시 디바이스 토큰 제거 (#429)

* refactor: 신고 조회 쿼리에 order by 추가

* refactor: 탈퇴 시 디바이스 토큰을 DB에서 제거

* refactor: Transactional 누락 추가

* refactor: 사용자 디바이스 토큰 제거 메서드 수정

* fix: 쪽지 신고 fk 수정 (#434)

* feat: #413 상위 입찰자 발생 시 기존 마지막 입찰자에게 알림을 전송하는 기능 추가 (#438)

* feat: 상위 입찰 발생 시 기존 마지막 입찰자에게 알림 전송하는 기능 추가

* feat: 레포지토리에서 경매 조회 시 마지막 입찰과 경매 대표이미지를 함께 조회하는 기능 추가

* refactor: 경매 이미지 경로 계산 부분 유틸로 분리

* test: 이미지 url 처리 관련 테스트 추가

* rename: 잘못된 변수명 수정 및 return문 개행 추가

* style: todo 추가

* fix: flyway 문제 발생 해결 (#440)

* fix: flyway 14버전 스크립트 수정

* fix: flyway 14버전을 문제 해결까지 포함하는 스크립트로 수정

* !hotfix: 디바이스 토큰 cascade 설정 삭제 (#447)

* fix: 디바이스 토큰 cascade 설정 삭제

* refactor: 디바이스 토큰 영속 시 문자열 널 검증 추가

* refactor: #442 경매 등록 로직 변경 (#443)

* refactor: Query 문자열 표현 방식 변경

* feat: 모든 thirdRegion을 id로 조회하는 기능 추가

* refactor: 경매 등록 시 세 번째 지역 조회에서 N+1 문제가 발생하던 문제 해결

* test: #239 컨트롤러 슬라이스 테스트 설정 공통화 (#441)

* test: 컨트롤러 슬라이스 테스트 설정 추상화

* test: 컨트롤러 슬라이스 테스트의 공통 설정을 별도의 추상화된 클래스에서 확장하도록 변경

* refactor: #139 경매 엔티티에 경매 상태를 계산하는 기능 추가 (#454)

* feat: 경매 상태를 나타내는 enum 추가

* feat: Auction 도메인 엔티티에서 경매 상태를 반환하는 기능 추가

* refactor: 문자열로 경매 상태를 표현하던 방식을 enum으로 변경

* refactor: 문자열로 경매 상태를 표현하던 방식을 enum으로 변경

* refactor: #452 입찰 알림 메시지 수정 (#453)

* fix: #457 절전모드에서도 알림을 받을 수 있도록 수정 (#458)

* refactor: #459 Token 발급 시 반환하는 형태 통일 (#460)

* !hotfix: 알림 타입과 관련된 key 값 api 명세에 맞게 변경 (#464)

* fix: 예외 처리 방식 및 메시지 수정 (#465)

* !hotfix: 채팅방에 메시지가 없을 때 목록 조회 시 예외 발생하지 않도록 수정 (#467)

* refactor: #469 이미지 url 관련 네이밍 수정 (#470)

* refactor: 반환되는 이미지 타입을 jpeg로 변경

* refactor: baseUrl에 대한 네이밍을 보다 명확하게 수정

* refactor: ImageUrlCalculator를 사용하도록 수정

* refactor: 메서드 네이밍을 보다 명확하게 수정

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

* refactor: 중복된 메서드 통합하기

* test: 테스트 추가

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

* style: todo 제거

* refactor: 필요없는 로직 제거

* refactor: 메서드명을 명확하게 수정

* refactor: 메서드 분리가 필요 없는 경우에 대해 통합하도록 수정

* refactor: concat 대신 +를 사용하도록 수정

* docs: 추후 리팩토링이 필요한 내용에 대한 todo 작성

* test: 필요 없어진 테스트 제거

* style: 정렬 수정

* refactor: 메서드 파라미터 명을 명확하게 수정

* refactor: 메서드 파라미터 타입을 명확하게 수정

* refactor: 타입 재수정 및 todo 추가

* test: #471 카테고리 관련 테스트 코드 리펙토링 (#472)

* test: CategoryServiceTest Fixture 추가 및 테스트 케이스 리펙토링

* test: CategoryTest 개행 변경

* test: CategoryRepositoryTest Fixture 추가 및 테스트 케이스 리펙토링

* test: Fixture가 아닌 필드의 접근제어자를 private으로 설정

* test: 테스트 네이밍 변경

* test: 순서를 검증할 수 있도록 테스트 케이스 변경

* test: 테스트 어노테이션을 Fixture가 아닌 테스트 클래스에 위치하도록 변경

* test: Fixture에 아스키 코드 관련 경고 억제 어노테이션 추가

* test: Category 도메인 테스트 검증 방식 변경

* test: category 도메인 테스트에서 id를 주입하지 않고 name으로 검증하도록 변경

* test: 서브 카테고리에 대한 Fixture 이름 통일

* test: 서브 카테고리에 대한 Fixture 이름 통일

* test: 순서까지 검증할 수 있도록 테스트 검증 방식 변경

* feat: #468 요청을 처리하는 모든 과정을 추적하는 로그 기능 추가 (#475)

* feat: 요청 시 MDC 관련 로직을 처리하는 필터 추가

* feat: 요청 추적 시 Depth를 관리하는 기능 추가

* feat: 요청 추적 시 메서드 실행 시점의 상태를 관리하는 기능 추가

* feat: 요청을 추적하며 로그를 출력하는 기능 추가

* feat: 요청을 추적하며 로그를 출력하는 AOP 추가

* chore: logback 관련 의존성 추가

* fix: 토큰 복호화 시 예외 핸들링 케이스 추가

* rename: SlackAppender 패키지 위치 변경

* feat: MdcFilter가 test 환경에서는 빈으로 등록되지 않도록 어노테이션 추가

* chore: 로그 관련 설정 추가

* chore: 닫는 태그 위치 변경

* refactor: 필요 없는 어노테이션 제거

* refactor: 요청 처리 과정의 depth 표현을 조금 더 명확하게 변경

* style: 메서드 순서 변경

* refactor: 로그 MDC key 네이밍 변경

* refactor: 현재 요청 처리 과정의 depth 표현을 조금 더 명확하게 변경

* refactor: logback 설정 변경

* fix: Jacoco 관련 설정 문법 오류 수정

* chore: 로그 설정에서 LevelFilter를 ThresholdFilter로 통일

* style: 개행, 메서드 순서, final 키워드 추가

* chore: 로그 설정에서 LevelFilter를 ThresholdFilter로 통일

* test: #473 인증 & 인가 관련 테스트 코드 리펙토링 (#476)

* test: JwtDecoderTest Fixture 추가 및 테스트 케이스 리펙토링

* test: JwtEncoderTest Fixture 추가 및 테스트 케이스 리펙토링

* test: 사용하지 않는 필드 제거와 final 제거

* test: KakaoOauth2TypeTest Fixture 추가 및 테스트 케이스 리펙토링

* test: KakaoUserInformationProviderTest Fixture 추가 및 테스트 케이스 리펙토링

* test: JpaBlackListTokenRepositoryTest Fixture 추가 및 테스트 케이스 리펙토링

* test: AuthenticationServiceFixture Fixture 추가 및 테스트 케이스 리펙토링

* test: AuthenticationUserServiceTest Fixture 추가 및 테스트 케이스 리펙토링

* test: Fixture가 가지고 있던 테스트 관련 어노테이션을 기존 테스트 클래스로 변경

* test: BlackListTokenServiceTest Fixture 추가 및 테스트 케이스 리펙토링

* refactor: 로그인 메서드 네이밍 변경

* test: AuthenticationControllerTest Fixture 추가 및 테스트 케이스 리펙토링

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

* test: AuthenticationServiceTest Fixture 및 테스트 케이스 수정

* test: AuthenticationControllerTest Fixture 및 테스트 케이스 수정

* test: KakaoUserInformationProviderTest Fixture 및 테스트 케이스 수정

* test: JpaBlackListTokenRepositoryFixture Fixture 내용 변경

* test: AuthenticationServiceTest 관련 사용하지 않는 Fixture 삭제 및 필드 변경

* test: KakaoUserInformationProviderTest 관련 테스트 대상을 Fixture에서 테스트 클래스로 변경

* refactor: #482 쪽지 컨트롤러 관련 테스트 코드 리팩토링 (#486)

* refactor: 문서화 메서드 분리

* refactor: 컨벤션에 맞춰 예외 필드 삭제

* refactor: fixture 생성

* refactor: 잘못된 변수 변경

* style: 불필요한 개행 삭제

* style: 네이밍 및 final 사용 통일

* refactor: 컨벤션에 맞춰 메시지 존재 여부로 판단하도록 수정

* test: 존재하지 않는 경매와 유효하지 않은 경매 아이디 테스트 케이스 분리

* refactor: 잘못된 변수명 수정

* style: final 사용 통일

* refactor: mock 객체 테스트 클래스로 이동

* refactor: 채팅방 아이디 픽스처로 통일

* style: 컨벤션에 맞춰 final 제거

* refactor: #431 쪽지 전송과 알림 전송 트랜잭션 분리 (#445)

* refactor: 알림 전송 시 예외 발생 시에도 에러 로그만 남기도록 변경

* refactor: 알림 실패 로직 변경에 따른 메시지 전송 로직 변경

* fix: 누락된 클래스 추가

* refactor: exception 여러개로 받도록 수정

* refactor: catch문에 포함되는 exception 추가

* refactor: 알림 성공 시 문자열이 아닌 알림 상태를 반환하도록 변경

* refactor: 정팩메 컨벤션에 맞춰 네이밍 변경

* refactor: todo에 고민 작성

* fix: 브랜치 최신화 이후 이미지 절대 주소 세팅 방식 변경

* refactor: 알림 전송 실패 시 로그 찍도록 수정

* refactor: 트랜잭션 동기화 적용 및 모킹 레포지토리 삭제

* refactor: 정팩메 컨벤션에 맞춰 네이밍 변경

* style: 변수명 변경 요청을 위한 todo 작성

* refactor: 입찰 서비스를 위한 알림 메시지 정팩메 생성

* test: 테스트 코드 추가

* refactor: #481 알림 관련 테스트 코드 리팩토링 (#497)

* refactor: mock이 포함된 필드명 변경

* refactor: 알림 서비스 테스트 픽스처 분리

* refactor: #480 디바이스 토큰 관련 테스트 코드 리팩토링 (#491)

* test: DeviceTokenTest Fixture 추가 및 테스트 케이스 리팩토링

* test: JpaDeviceTokenRepositoryTest Fixture 추가 및 테스트 케이스 리팩토링

* test: DeviceTokenServiceTest Fixture 추가 및 테스트 케이스 리팩토링

* test: DeviceTokenControllerTest Fixture 추가 및 테스트 케이스 리팩토링

* test: 모든 픽스처 객체를 `@BeforeEach`로 세팅하도록 변경

* test: 테스트 픽스처 추가, 네이밍 변경, 코드 스타일 개선

* style: 불필요한 공백 제거

* rename: 테스트하려는 결과의 변수명을 actual로 통일

* refactor: #479 채팅방 관련 테스트 코드 리팩토링 (#485)

* test: ChatRoomTest Fixture 추가 및 테스트 케이스 리팩토링

* test: JpaChatRoomRepositoryTest Fixture 추가 및 테스트 케이스 리팩토링

* test: QuerydslChatRoomRepositoryImplTest Fixture 추가 및 테스트 케이스 리팩토링

* test: QuerydslChatRoomAndImageRepositoryImplTest Fixture 추가 및 테스트 케이스 리팩토링

* test: QuerydslChatRoomAndMessageAndImageRepositoryImplTest Fixture 추가 및 테스트 케이스 리팩토링

* test: ChatRoomServiceTest Fixture 추가 및 테스트 케이스 리팩토링

* test: 모든 픽스처 객체를 `@BeforeEach`로 세팅하도록 변경

* test: 테스트 픽스처 추가 및 코드 리팩토링

* test: 서비스의 반환 값도 픽스처를 사용해서 비교하도록 수정

* stule: 개행 수정 및 사용하지 않는 필드 제거

* test: 픽스처 클래스 필드 중 사용하지 않는 필드 정리

* refactor: #490 사용자 관련 테스트 코드 리팩토링 (#499)

* test: JpaUserRepositoryTest 픽스처 추가 및 리팩토링

* test: ReadUserDto 테스트 제거

DB 제약 조건 변경으로 해당 로직이 불필요해짐에 따라 테스트도 불필요해짐

* test: UserServiceTest 픽스처 추가 및 리팩토링

* test: UserControllerTest 픽스처 추가 및 리팩토링

* test: UserAuctionControllerTest 픽스처 추가 및 리팩토링

* test: 반환값을 통해 비교하도록 수정

* test: import 와일드카드 제거

* test: fixture 필드 접근 제어자 추가

* refactor: #489 신고 관련 테스트 코드 리팩토링 (#493)

* test: JpaAuctionReportRepositoryTest 픽스처 추가 및 리팩토링

* test: JpaChatRoomReportRepositoryTest 픽스처 추가 및 리팩토링

* test: 세팅 메서드 명 수정

* test: AuctionReportServiceTest 픽스처 추가 및 리팩토링

* test: ChatRoomReportServiceTest 픽스처 추가 및 리팩토링

* test: ReportControllerTest 픽스처 추가 및 리팩토링

* test: mock이라는 불필요한 변수명 제거

* test: given절의 dto를 픽스처 이동

* test: 클레임 픽스처로 변환

* test: 배열 크기에 대한 검증 추가

* test: import 와일드카드 수정

* test: 통일성을 위해 final 제거

* test: 컨벤션에 따른 접근 제어자 제거

* test: 특정 값들을 픽스처로 설정

* test: 필요 없는 mock given 절 제거

* test: 컨벤션에 따른 필드명 수정

* test: 반환값을 통해 비교하도록 수정

* test: import의 와일드카드 제거

* refactor: #488 입찰 관련 테스트 코드 리팩토링 (#496)

* test: BidTest 픽스처 추가 및 리팩토링

* test: JpaBidRepositoryTest 픽스처 추가 및 리팩토링

* test: BidServiceTest 픽스처 추가 및 리팩토링

* test: BidControllerTest 픽스처 추가 및 리팩토링

* test: 반환값을 통해 비교하도록 수정

* test: 픽스처 값이 이해에 명확하도록 수정

* test: 테스트에 굳이 필요하지 않은 객체 제거

* test: 테스트에 필요하지 않는 로직 제거

* test: 테스트 픽스처를 명확하게 수정

* test: import 와일드카…
apptie pushed a commit that referenced this pull request Oct 7, 2023
* feat: 카카오 연결 끊기 기능 추가

* feat: 탈퇴 기능 서비스 추가

* feat: oauth id에 대한 unique 속성 제거

* refactor: 회원과 사용자라는 용어 통일

* feat: 이름이 이미 존재하는지에 대한 확인 쿼리 메서드 추가

* feat: 랜덤 이름을 생성하는 util 클래스 추가

* feat: 재가입 시 이름에 대한 중복 문제 해결을 위한 로직 추가

* feat: 탈퇴한 회원의 이름을 가져오는 경우에 대한 로직 추가

* feat: 탈퇴 컨트롤러 기능 추가

* feat: 예외처리 추가

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

* refactor: flyway 버전 수정

* refactor: 탈퇴한 사용자 이름 변경 로직 위치 수정

* docs: 문서 최신화

* refactor: 예외 메시지 클래스명 수정

* refactor: do-while문을 while문으로 수정

* refactor: 탈퇴 시 로직 순서 변경

* style: 해결된 todo 제거

* ci: flyway 버전 수정

* ci: 충돌 문제 해결

* refactor: 이미지가 null인 경우에 대한 예외처리 추가

* refactor: util 클래스에 final 추가

* fix: 경매 이미지 url 경로 누락 문제 해결
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend 백엔드와 관련된 이슈나 PR에 사용 feature 기능 추가 시
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

4 participants