Skip to content

Conversation

@kanado5385-k
Copy link
Member

No description provided.

@kanado5385-k kanado5385-k merged commit ff8d7b2 into develop Jul 29, 2025
kanado5385-k added a commit that referenced this pull request Jul 29, 2025
* Chore: main <-> develop 브랜치 초기화 및 동기화 (#297)

Co-authored-by: 이영학 <[email protected]>

* [#257] Socket io 1:1 통신 구현 (#299)

* refactor: socket io 대화내용 암복호화 관련 문제 해결

* [#269] 튜닝 리포트 공개 처리용 기능 관련 구조 수정 (#300)

* refactor: 튜닝 리포트 DTO 구조 변경

* Fix: merge conflict 해결 (dto 구조 변경 및 포트 바인딩 충돌 해결) (#301)

* Chore: main <-> develop 브랜치 초기화 및 동기화 (#303)

* Chore: main <-> develop 브랜치 초기화 및 동기화 (#297) (#298)

Co-authored-by: 이영학 <[email protected]>

* Hotfix: SSE 연결 구독중 발생하는 예외처리 수정 (#302)

---------

Co-authored-by: 이영학 <[email protected]>

* refactor: 기존 PROD 환경이 사용 중지되면서 트리거되지 않게 변경&style: Discord 메세지 변경 (#305)

* style: Discord 메세지 변경

* refactor: 기존 PROD 환경이 사용 중지되면서 트리거되지 않게 변경

* style: Discord 메세지 변경

* style: DEV -> STAGE로 변경

* [#306] Feat: V3의 개인정보 등록 API 구현  (#307)

* refactor: User도메인의 RequestDto 패키지로 버전을 구분

* refactor: User도메인의 Controller와 Service 클래스 패키지로 버전을 구분

* feat: V3 개인 정보 등록 API 로직 구현

* feat: V3 개인 정보 등록 API에서 추가된 예외 응답 추가

* refactor: V3 개인 정보 등록 API 로직의 service 클래스 리팩토링

* chore: 초대 코드 환경변수화

* delete: 필요없는 필드 삭제

* feat: JWT 필터에 v3 개인정보 등록 API URL 추가

* test: v3 개인정보 등록 API에 대한 단위 테스트 코드 추가

* test: TestContainersConfig 클래스로 TestContainer 설정 부분을 분리

* refactor: 주석 삭제

* fix: 테스트 코드 제거 (#308)

* [#309] Feat: 시그널 보내기 & 채팅방 관련 데이터 반환시 응답데이터에 관계의 카테고리 필드 추가 (#310)

* refactor: channel 도메인에서 controller, dto, service 클래스에서 버전별로 분리

* feat: 개인 채널보관함 목록 반환 API 에서 응답 데이터 수정, 특정 채널방 반환 API 응답 데이터 수정

* feat: 시그널 보내기 API에서 요청 데이터에 category 추가

* Hotfix: 웹소켓 설정 추가 (#311)

* Hotfix: properties 파일에 웹소켓 설정 추가 (#313)

* chore: 웹소켓 설정 추가

* chore: 웹소켓 설정 추가

* Hotfix: AT 유효 시간을 1본으로 수정 (#314)

* [#312] Feat: 시그널을 받고 싶지 않은 카테고리 수정 API 구현 (#315)

* feat: 카테고리별 시그널 받기 수정 API의 requestDto 구현

* feat: 카테고리별 시그널 받기 수정 API의 requestDto에 category 컬럼 추가

* feat: 카테고리별 시그널 받기 수정 API의 정상 응답 코드 추가

* feat: 카테고리별 시그널 받기 수정 API를 위해 메서드 추가

* feat: 카테고리별 시그널 받기 수정 API 로직 구현

* refactor: controller 메서드에서 @Valid 추가

* refactor: server 클래스에서 누락된 @transactional 설정 추가

* [#316] Feat: 카테고리별 튜닝 추천 API 구현 및 AI 서버 API 연동 (#317)

* feat: AI 서버 API 호출 로직 WebClient 구현

* feat: 카테고리별 튜닝 추천 API의 responseDto 구현

* feat: 카테고리별 튜닝 추천 API를 위한 AI서버 API 연동

* feat: 카테고리별 튜닝 추천 API를 위한 controller 메서드 추가

* feat: 카테고리별 튜닝 추천 API를 위한 service 메서드 추가

* feat: 두 사용자 및 카테고리 별로 채팅방이 존재하는지 반환하는 메서드 추가

* feat: user entity에서 특정 카테고리가 true인지 반환하는 메서드 구현

* feat: 추천 받은 사용자 리스트 중에서 해당 카테고리를 false로 설정한 사용자를 제외 시키는 로직 추가

* feat: 사용자가 특정 카테고리를 false로 설정할 시에 해당 사용자가 포함된 모든 추천 리스트에서 제외 시키는 로직 추가

* feat: 해당 카테고리로 이미 대화중인 상대방이라면 예외 발생 로직 추가

* feat: 시그널 보낼때 해당 카테고리를 false로 설정한 상대방이라면 예외 처리 추가

* fix: 버그 수정

* delete: 테스트용 메서드 삭제

* feat: Todo 주석 추가

* chore: dev AT의 유효기간을 300분으로 설정

* [#257] Socket.io JWT 인증 로직 구현 및 리팩토링 (#321)

* feat: refreshToken 기반 인증 처리 로직 config 추가

* feat: socket 연결/종료, 메세지 수신/읽음 처리 관련 controller 수정

* feat: socket 서버 시작 및 종료 코드 분기 처리

* feat: 대화내용 암복호화 로직 추가 및 responseCode 적용

* feat: socket 관련 util 추가 (Cookie 내 refreshToken 추출)

* feat: socket config 내 허용 URL 리스트 추가

* feat: socket config 내 허용 URL 리스트 추가 -> 오탈자 수정

* Fix: socket.io 메세지 읽음 처리 관련 트랜잭션 설정 변경 (#323)

* refactor: 시그널 보내기 및 메세지 전송 DTO 분리

* chore: localhost 접근 가능 url 추가

* fix: @transactional 전파 차단 설정 수정

* [#322] Feat: 메세지 신고 API 구현 및 AI 서버 API 연동 (#328)

* chore: 매칭 전환 조건을 24시간에서 6시간으로 수정

* feat: 메세지 신고 API의 RequestDto 클래스 추가

* refactor: infra/ai/dto 페키지 세분화

* feat: 메세지 신고 API의 ResponseDto 클래스 추가

* feat: AI 서버 메세지 신고 API 요청 메서드 구현

* feat: 서버 메세지 신고 API 응답 code 추가

* feat: 서버 메세지 신고를 받은 사용자를 위한 알림 entity 구현

* feat: 서버 메세지 신고를 받은 사용자를 위한 경고 알림 생성 로직 추가

* feat: 메세지 신고 ai서버 API 요청시 응답 추가

* feat: 메세지 신고 받은 사용자를 위한 알림 메세지 생성 메서드 추가

* fix: userID 타입 수정

* feat: 메세지 신고 API 를 위한 controller, service 메서드 추가

* feat: 알림창 데이터 반환 API에 새로운 aler(메세지 신고) 타입의 알림 추가

* feat: 메세지 신고를 위해 외부 AI 서버 API 추가

* refactor: AI 서버 IP 별로 세분화

* Feat: 마이페이지 한 줄 소개 수정 기능 구현 (#329)

* Feat: socket.io 메세지 전송 필드 수정 (#330)

* Fix: socket.io 읽음 처리 트랜잭션 오류 처리 및 트랜잭션 로그 설정 (#331)

* Fix: socket.io 서버 종료 코드 및 log 수정 (#332)

* fix: socket.io 읽음 처리 트랜잭션 오류 처리 및 트랜잭션 로그 설정

* fix: socket.io 서버 종료 코드 수정

* fix: socket.io 서버 종료 코드 및 log 수정

* Fix: socket.io 오류 해결 (#333)

* fix: socket.io 읽음 처리 트랜잭션 오류 처리 및 트랜잭션 로그 설정

* fix: socket.io 서버 종료 코드 수정

* fix: socket.io 서버 종료 코드 및 log 수정

* fix: socket.io 서버 시작 코드 try-catch 추가

* Fix: Transactional의 readOnly = true 값 제거 (#334)

* [#327] Feat: Kafka 기본 설정과 기본 로직 구축  (#335)

* chore: kafka 관련 설정 및 응존성 추가

* chore: kafka와 zookeeper를 위한 Docker 설정 추가

* feat: kafka Producer-Consumer 구조 구축

* feat: kafka 헬스체크를 위한 테스트용 API 구현

* feat: kafka 토픽 생성 config 클래스 추가

* feat: kafka 설정 수정

* chore: Conflicts 해결

* fix: 오타 수정

* Fix: socket.io 메세지 읽음 처리 관련 트랜잭션 내 afterCommit 처리, socket 서버 구동 예외 처리 (#337)

* Hotfix: socket.io 로그 확인용 hotfix (#338)

* Feat: socket.io 메세지 내 messageId 추가 (#339)

* Fix: Long 타입 어노테이션 수정 (#340)

* Refactor: socket.io 서버 구동 및 종료 리팩터링 (#342)

* hotfix: 헬스체크 시간 늘리기

* Refactor: socket.io receive_message 내 sendAt 날짜 포맷 변경 (#346)

* feat: 유저 등록 외부 AI 서버 API의 URL를 V3로 변경 (#347)

* #336 Feat: SSE에 Kafka 메세지 브로커 연동 (#348)

* chore: 테스트 커버리지 측정을 위해 jacoco 설정 추가

* feat: Kafka 헬스체크 API에서 모든 인스턴스가 메시지를 수신하도록 고유한 groupId(random.uuid) 적용

* chore: Kafka에서 SSE 토픽을 위한 replicationFactor, numPartitions, 재전송 전략관 같은 설정 추가

* feat: 일반 String 데이터와 SSE event 데이터를 위한 KafkaProducerConfig 클래스 구현

* feat: SSE event 데이터를 위한 KafkaConsumerConfig 클래스 구현

* feat: Kafka를 통해 전송할 데이터들을 담을 Dto record 구현

* feat: SSE 이벤트 전송을 위한 Topic 생성 로직 추가

* feat: SSE 이벤트 전송을 위한 Consumer/Producer 메서드 추가

* feat: 다중 인스턴스 환경에서 각 인스턴스의 SSE 그룹 아이디를 고유한 값으로 설정해주기 위해 변수화

* refactor: 변수명 수정

* feat: Kafka SSE 소비 실패 시 DLQ로 메시지 전송 처리 추가

* feat: Kafka DLQ 처리를 위한 DefaultErrorHandler 및 BackOff 설정 추가

* feat: Kafka DLQ 토픽 생성 설정 추가

* feat: Kafka SSE 전송 실패 예외 정의 클래스 추가

* feat: DLQ 토픽 이름/그룹 이름 추가

* refactor: 데이터 운반을 위한 record 의 이름 수정

* feat: 테스트용 주 비즈니스 로직과 SSE 알림 로직 사이에 Kafka 적용

* feat(kafka): SSE 및 healthcheck 토픽에 TopicBuilder 방식으로 retention 설정 추가

- SSE 알림용 Kafka 토픽(sse-topic)에 retention.ms=3600000 (1시간) 설정
- healthcheck-topic에 retention.ms=600000 (10분) 설정

* feat: API 로직이 있는 주 비즈니스 로직과 SSE 알림을 처리하는 비즈니스 로직 사이에 Kafka 메세지 브로커 추가

* refactor: 메서드 이름 수정

* refactor: Kafka에 맞게 SSE 알림 전송 방식 수정 및 한 SSE 연결의 시간을 30분으로 수정

* feat: sseTopic에 min.insync.replicas=2 설정하여, 장애 상황에서 데이터 유실을 방지

* refactor: 주석 삭제 및 중복 코드 제거

* feat: k8s-cicd

* Fix: socket.io 채팅방 내 대화 상대가 잘못 인식되는 오류 조치 (#351)

* fix: 이미지 태그가 k8s- 를 포함하도록 수정

* hotfix: 다른 workflow 제외

* fix: discord 웹훅 수정

* feat: k8s-cicd, signoz 도커 파일 설정

* #191 Test: alarm 도메인을 위한 단위 테스트 코드 작성 (비즈니스 로직 약간의 리팩토링) (#354)

* chore: kafka 관련 설정을 test.properties에 추가

* refactor: 단 테스트할 수 있게 TransactionSynchronization 코드를 메서드로 분리

* feat: @AllArgsConstructor 추가

* feat: SignalRoom 엔티티 생성하는 fixture 클래스 추가

* feat: alarm 도메인에 대한 단위 테스트 작성

* Feat: 특정 사용자의 개인정보 및 취향반환 v3 API 구현 (#355)

* Hotfix: 기존에 연결되어있던 user이라면 연결을 초기화하지 않고 있던 emitter 반환 (#356)

* Hotfix: socket.io 실시간 채팅 내 SSE 연동 (#358)

* Hotfix: Kafka SSE 전송 실패 시 무한 재시도 루프 방지 (#360)

* feat: 기존에 연결되어있던 user이라면 연결을 초기화하지 않고 있던 emitter 반환

* fix: Kafka SSE 전송 실패 시 무한 재시도 루프 방지

* Hotfix: socket.io 실시간 채팅 내 SSE 연동 -> rollback (#361)

* Hotfix: 튜닝 리포트 리액션 토글 시 발생하던 Deadlock 및 LockTimeout 해결 (#362)

- TuningReportRepository에 PESSIMISTIC_WRITE 락 메서드(findWithLockById) 추가
- TuningReportReactionService에서 해당 메서드 사용하여 교착 상태 방지
- @retryable에 Deadlock 및 Lock 관련 예외(CannotAcquireLockException 등) 추가
- 리액션 수치 업데이트 및 리액션 row 조작 순서를 트랜잭션 내에서 명확히 분리
- 잘못된 Param import (lettuce) 제거 및 Spring Data JPA용으로 정리

* [#359] Feat: FCM WebPush 토큰 발급 및 저장 로직 추가 (#364)

* feat: FCM 초기 실행 로직 구현

* feat: FCM Token 인증 및 요청/응답 필드 구현

* feat: Firebase admin 관련 gradle 추가

* feat: .gitignore 수정 (FCM 관련 certification.json 노출되지 않도록 명시)

* feat: FCM 관련 certification.json 파일 호출할 수 있도록 환경설정 변경

* fix: FCM getToken 과정에서 자료형 관련 오류 처리

* refactor: socket 현재 접속자 관리 코드 분기처리

* fix: socket 서버 재시작 시 포트충돌 관련 오류 처리

* feat: 메세지 수신 시 WebPush 알림 기능 추가 및 코드 리팩토링

* refactor: WebPush 메세지 수신 시 트랜잭션 readOnly=true 처리

* refactor: 볼륨 마운트

* fix: 중복 로직 제거

* fix: 제거한거 롤백

* [#363] Feat: 튜낭 레포트의 Get/Put API 로직을 Redis를 통한 캐시 적용 (#367)

* feat: 모든 반응을 업데이트 시키는 메서드와 특정 반의 수 반환하는 메서드 추가

* feat: 튜닝 레포트 Redis 캐싱 메니저 클래스 구현

* feat: redis에 저장하기 위해 TuningReportListResponse를 record 에서 class로 변경

* feat: Redis에 캐싱된 튜닝레포트를 위한 flushDirtyReports 관리 클래스 추가

* feat: 튜닝 레포트와 튜닝 레포트 반응 관련 비즈니스 로직에서 Redis를 통한 캐시 코드 추가

* feat: 주석 정리 및 log 추가

* refactor: 캐싱 비즈니스 로직과 기존 DB 비즈니스 로직을 두 클래스로 병확하게 분리

* feat: TuningReportListResponse 클래스 내부의 ReportItem, Reactions, MyReactions 클래스에 대해 역직렬화가 확실히 되도록 각 클래스에 @JsonCreator와 @JsonProperty가 지정된 생성자

* refactor: 필요없는 import 삭제

* fix: 반응수 동기화 문제 해결

* fix: 순서 보장될 수 있도록 수정

* fix: flushDirty 로직 수정

* fix: 데이터베이스와 동기화 과정에서 데이터 불일치 수정

* refactor: 하드코딩된 부분을 메서드로 수정

* feat: 동시 수정으로 인해 Race Condition을 방지하기 위해 분산락 적용

* chore: Redis를 통한 분산락을 위한 설정 추가

* feat: 주석 추가 및 정리

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

* feat: 반응을 누르거나 취소할때 pageListKey도 같이 TTL이 갱신될수있도록 추가

* feat: TUNING_REPORT_TTL 을 한 변수로 관리하고 해당 변수를 반환하는 메서드 추가

* feat: 튜닝레포트를 redis에 저장하기 위해 사용되는 키에 기업 이메일 도메인 추가 및 사용자별 도메인을 관리하는 Redis 키 추가

* feat: 튜닝레포트 반환시 사용자와 동일 도메인에 해당되는 레포트 리스트가 반환되도록 로직 추가

* feat: 특정 게시글에 반응 누르기 처리 관정에서 해당 도메인과 해당 사용자와 관련 모든 캐시된 데이터 TTL 갱신 로직을 비동기적으로 추가

* feat: redisTemplate.keys() → SCAN 교체, saveAll(...)을 통한 반응 INSERT batch 처리

* feat: 캐시 → DB 동기화가 30분으로 설정

* feat: 새 튜닝 레포트 발행되면 즉시 flushDirty 후 캐시 무효화 로직 추가

* feat: Cache Stampede 방지하기 위해 각 모메인별로 TTL Jitter 도입

* feat: Cache Stampede 방지를 위한 Mutex Locking 전략을 Redisson 기반으로 적용

* fix: 순환 참조 문제 해결

* refactor: 동시 수정 보장 로직 중복 제거

* chore: 쿼리 측정을 위한 AOP 설정 추가

* feat: 튜닝 레포트 과련 로직에서 AOP 기반 성능 측정 클래스 구현

* Fix: FCM Initializer 시 예외 코드 처리 (#368)

* fix: FCM Initializer 시 예외 코드 처리

* fix: FCM Initializer 시 error 로그 표시

* Hotfix: add Log & Transactional (#370)

* feat: 반응 처리 로직에서 로그 추가

* feat: 반응 처리 로직에서 로그 추가

* feat: @transactional(readOnly = true) 추가

* hotfix: socket.io SSE 관련 오류 hotfix (#371)

* [#363] Feat: 특정 시간대 사용자 몰림을 고려한 캐시 워밍업 스케줄러 추가 (#372)

* feat: 모든 반응을 업데이트 시키는 메서드와 특정 반의 수 반환하는 메서드 추가

* feat: 튜닝 레포트 Redis 캐싱 메니저 클래스 구현

* feat: redis에 저장하기 위해 TuningReportListResponse를 record 에서 class로 변경

* feat: Redis에 캐싱된 튜닝레포트를 위한 flushDirtyReports 관리 클래스 추가

* feat: 튜닝 레포트와 튜닝 레포트 반응 관련 비즈니스 로직에서 Redis를 통한 캐시 코드 추가

* feat: 주석 정리 및 log 추가

* refactor: 캐싱 비즈니스 로직과 기존 DB 비즈니스 로직을 두 클래스로 병확하게 분리

* feat: TuningReportListResponse 클래스 내부의 ReportItem, Reactions, MyReactions 클래스에 대해 역직렬화가 확실히 되도록 각 클래스에 @JsonCreator와 @JsonProperty가 지정된 생성자

* refactor: 필요없는 import 삭제

* fix: 반응수 동기화 문제 해결

* fix: 순서 보장될 수 있도록 수정

* fix: flushDirty 로직 수정

* fix: 데이터베이스와 동기화 과정에서 데이터 불일치 수정

* refactor: 하드코딩된 부분을 메서드로 수정

* feat: 동시 수정으로 인해 Race Condition을 방지하기 위해 분산락 적용

* chore: Redis를 통한 분산락을 위한 설정 추가

* feat: 주석 추가 및 정리

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

* feat: 반응을 누르거나 취소할때 pageListKey도 같이 TTL이 갱신될수있도록 추가

* feat: TUNING_REPORT_TTL 을 한 변수로 관리하고 해당 변수를 반환하는 메서드 추가

* feat: 튜닝레포트를 redis에 저장하기 위해 사용되는 키에 기업 이메일 도메인 추가 및 사용자별 도메인을 관리하는 Redis 키 추가

* feat: 튜닝레포트 반환시 사용자와 동일 도메인에 해당되는 레포트 리스트가 반환되도록 로직 추가

* feat: 특정 게시글에 반응 누르기 처리 관정에서 해당 도메인과 해당 사용자와 관련 모든 캐시된 데이터 TTL 갱신 로직을 비동기적으로 추가

* feat: redisTemplate.keys() → SCAN 교체, saveAll(...)을 통한 반응 INSERT batch 처리

* feat: 캐시 → DB 동기화가 30분으로 설정

* feat: 새 튜닝 레포트 발행되면 즉시 flushDirty 후 캐시 무효화 로직 추가

* feat: Cache Stampede 방지하기 위해 각 모메인별로 TTL Jitter 도입

* feat: Cache Stampede 방지를 위한 Mutex Locking 전략을 Redisson 기반으로 적용

* fix: 순환 참조 문제 해결

* refactor: 동시 수정 보장 로직 중복 제거

* chore: 쿼리 측정을 위한 AOP 설정 추가

* feat: 튜닝 레포트 과련 로직에서 AOP 기반 성능 측정 클래스 구현

* feat: findAllByUserIdAndReportIdIn 메서드에 Transactional 추가

* feat: findAllByUserIdAndReportIdIn 메서드에 Transactional 추가

* feat: 캐시 데이터 워밍업 로직 추가

* chore: prometheus 매트릭 수집을 위한 설정

* fix: 수정된 반응수 저장 로직 수정

* fix: 테스트를 위해 워밍업 로직 일시적으로 수정

* fix: 테스트를 위해 워밍업 로직 일시적으로 수정

* fix: 워밍업 로직을 정상 시각으로 돌려놓고, 불필요한 로그 주석처리

* Hotfix: 불필요한 주석 제거 및 도메인 주고 수정 (#373)

* Refactor: 채널방 목록 내 각 채팅방마다 lastPageNumber 추가 (프론트 페이지네이션 관련 요청) (#375)

* Hotfix: 튜닝 레포트 캐시 워밍업을 배치 로직과 연동 (#376)

* [#377] Test: kafka 로직을 위한 단위/통합 테스트 코드 작성 (#379)

* feat: 단위 테스트 코드를 위해 SseEventDto의 Fixture 클래스 추가

* feat: KafkaConsumer 클래스를 위한 단위 테스트 코드를 작성

* chore: Kafka 통합 테스트를 위한 설정 추가

* feat: Kafka 통합 테스트 작성

* chore: 통합 테스트를 위한 Redis 컨테이너가 비밀번호를 요구하도록 수정

* [#378] Fix: Alarm 도메인의 Get 요청에서 발생했 N+1 문제 해결 (#380)

* chore: 쿼리 trace를 세밀하게 보기 위해 설정 추가

* fix: AlarmMatching와 SignalRoom의 매핑 관계를 LAZY로 수정

* chore: org.hibernate.stat 카테고리에 대한 로그 레벨 설정 추가

* fix: N + 1 때분에 발생했던 추가 쿼리 문제점을 해결

* fix: Transactional read only 때문에 읽음 처리 실패 해결

* fix: 응답 데이터에서 type 필드 중복을 @JsonIgnore로 해결

* fix: namespace 변경으로 인한 파드 추적 실패 오류 수정 (#381)

* Refactor: 채널방 상세페이지 조회 시 pageSize 고정 (#382)

* Hotfix: 알림창에서 바로 채팅방으로 리다이렉트하기 위해 채팅방의 마지막 페이지 번호 같이 반환하도록 수정 (#387)

* hotfix: socket.io sse 관련 오류 재적용 (주석 해제) (#388)

* Refactor: Webpush response 누락 내용 추가 (#389)

* refactor: WebPush Response 누락된 내용 추가

* refactor: WebPush EventType 추가

* Refactor: Webpush response 누락된 내용 추가 (#390)

* refactor: WebPush Response 누락된 내용 추가

* refactor: WebPush EventType 추가

* refactor: WebPush ResponseCode 추가

* fix: Branch 충돌 관련 소스 누락 오류 조치 (#391)

* Fix: WebPush Redis 내 저장된 key 값 관련 소스 누락 조치 (#393)

* fix: FCM Redis Token 관련 key 설정 누락 조치

* fix: FCM Redis Token 관련 key 설정 누락 조치

* fix: Commit 내역 제거

* Hotfix: 매칭 알림 중복 생성 방지 로직 추가 (#392)

* fix: 분산락을 통해 매칭 알림 중복 생성 방지

* fix: 첫 시그널, 매세지 수신 SSE 응답 데이터 lastPageNumber 추가

* Feat: main <-> develop 브랜치 integration (#397)

* Chore: main <-> develop 브랜치 초기화 및 동기화 (#297) (#298)

Co-authored-by: 이영학 <[email protected]>

* Hotfix: socket.io 실행 임시 중단 (#304)

---------

Co-authored-by: 이영학 <[email protected]>
Co-authored-by: Chaewon Lee <[email protected]>

* Feat: resolve main develop conflict (#401)

* Chore: main <-> develop 브랜치 초기화 및 동기화 (#297) (#298)

Co-authored-by: 이영학 <[email protected]>

* Hotfix: 튜닝 리포트 생성 스케줄링 시간 임시 변경 (매일 3분마다) (#326)

* Resolve conflict between main and develop

---------

Co-authored-by: 이영학 <[email protected]>
Co-authored-by: Chaewon Lee <[email protected]>

* Feat: resolve main develop branch conflict (#403)

* Chore: main <-> develop 브랜치 초기화 및 동기화 (#297) (#298)

Co-authored-by: 이영학 <[email protected]>

* Hotfix: SSE 연결 구독중 발생하는 예외처리 수정 (#302)

* Hotfix: socket.io 실행 임시 중단 (#304)

* Hotfix: 매칭 전환 조건을 24시간에서 6시간으로 수정 (#318)

* Hotfix: 튜닝 리포트 생성 스케줄링 시간 임시 변경 (매일 3분마다) (#326)

---------

Co-authored-by: 이영학 <[email protected]>
Co-authored-by: Chaewon Lee <[email protected]>

* main -> develop 브랜치 동기화 (#406)

* Chore: main <-> develop 브랜치 초기화 및 동기화 (#297) (#298)

Co-authored-by: 이영학 <[email protected]>

* Hotfix: SSE 연결 구독중 발생하는 예외처리 수정 (#302)

* Hotfix: socket.io 실행 임시 중단 (#304)

* Hotfix: 매칭 전환 조건을 24시간에서 6시간으로 수정 (#318)

* Hotfix: 튜닝 리포트 생성 스케줄링 시간 임시 변경 (매일 3분마다) (#326)

* v3.0.0 (#404)

* Chore: main <-> develop 브랜치 초기화 및 동기화 (#297)

Co-authored-by: 이영학 <[email protected]>

* [#257] Socket io 1:1 통신 구현 (#299)

* refactor: socket io 대화내용 암복호화 관련 문제 해결

* [#269] 튜닝 리포트 공개 처리용 기능 관련 구조 수정 (#300)

* refactor: 튜닝 리포트 DTO 구조 변경

* Fix: merge conflict 해결 (dto 구조 변경 및 포트 바인딩 충돌 해결) (#301)

* Chore: main <-> develop 브랜치 초기화 및 동기화 (#303)

* Chore: main <-> develop 브랜치 초기화 및 동기화 (#297) (#298)

Co-authored-by: 이영학 <[email protected]>

* Hotfix: SSE 연결 구독중 발생하는 예외처리 수정 (#302)

---------

Co-authored-by: 이영학 <[email protected]>

* refactor: 기존 PROD 환경이 사용 중지되면서 트리거되지 않게 변경&style: Discord 메세지 변경 (#305)

* style: Discord 메세지 변경

* refactor: 기존 PROD 환경이 사용 중지되면서 트리거되지 않게 변경

* style: Discord 메세지 변경

* style: DEV -> STAGE로 변경

* [#306] Feat: V3의 개인정보 등록 API 구현  (#307)

* refactor: User도메인의 RequestDto 패키지로 버전을 구분

* refactor: User도메인의 Controller와 Service 클래스 패키지로 버전을 구분

* feat: V3 개인 정보 등록 API 로직 구현

* feat: V3 개인 정보 등록 API에서 추가된 예외 응답 추가

* refactor: V3 개인 정보 등록 API 로직의 service 클래스 리팩토링

* chore: 초대 코드 환경변수화

* delete: 필요없는 필드 삭제

* feat: JWT 필터에 v3 개인정보 등록 API URL 추가

* test: v3 개인정보 등록 API에 대한 단위 테스트 코드 추가

* test: TestContainersConfig 클래스로 TestContainer 설정 부분을 분리

* refactor: 주석 삭제

* fix: 테스트 코드 제거 (#308)

* [#309] Feat: 시그널 보내기 & 채팅방 관련 데이터 반환시 응답데이터에 관계의 카테고리 필드 추가 (#310)

* refactor: channel 도메인에서 controller, dto, service 클래스에서 버전별로 분리

* feat: 개인 채널보관함 목록 반환 API 에서 응답 데이터 수정, 특정 채널방 반환 API 응답 데이터 수정

* feat: 시그널 보내기 API에서 요청 데이터에 category 추가

* Hotfix: 웹소켓 설정 추가 (#311)

* Hotfix: properties 파일에 웹소켓 설정 추가 (#313)

* chore: 웹소켓 설정 추가

* chore: 웹소켓 설정 추가

* Hotfix: AT 유효 시간을 1본으로 수정 (#314)

* [#312] Feat: 시그널을 받고 싶지 않은 카테고리 수정 API 구현 (#315)

* feat: 카테고리별 시그널 받기 수정 API의 requestDto 구현

* feat: 카테고리별 시그널 받기 수정 API의 requestDto에 category 컬럼 추가

* feat: 카테고리별 시그널 받기 수정 API의 정상 응답 코드 추가

* feat: 카테고리별 시그널 받기 수정 API를 위해 메서드 추가

* feat: 카테고리별 시그널 받기 수정 API 로직 구현

* refactor: controller 메서드에서 @Valid 추가

* refactor: server 클래스에서 누락된 @transactional 설정 추가

* [#316] Feat: 카테고리별 튜닝 추천 API 구현 및 AI 서버 API 연동 (#317)

* feat: AI 서버 API 호출 로직 WebClient 구현

* feat: 카테고리별 튜닝 추천 API의 responseDto 구현

* feat: 카테고리별 튜닝 추천 API를 위한 AI서버 API 연동

* feat: 카테고리별 튜닝 추천 API를 위한 controller 메서드 추가

* feat: 카테고리별 튜닝 추천 API를 위한 service 메서드 추가

* feat: 두 사용자 및 카테고리 별로 채팅방이 존재하는지 반환하는 메서드 추가

* feat: user entity에서 특정 카테고리가 true인지 반환하는 메서드 구현

* feat: 추천 받은 사용자 리스트 중에서 해당 카테고리를 false로 설정한 사용자를 제외 시키는 로직 추가

* feat: 사용자가 특정 카테고리를 false로 설정할 시에 해당 사용자가 포함된 모든 추천 리스트에서 제외 시키는 로직 추가

* feat: 해당 카테고리로 이미 대화중인 상대방이라면 예외 발생 로직 추가

* feat: 시그널 보낼때 해당 카테고리를 false로 설정한 상대방이라면 예외 처리 추가

* fix: 버그 수정

* delete: 테스트용 메서드 삭제

* feat: Todo 주석 추가

* chore: dev AT의 유효기간을 300분으로 설정

* [#257] Socket.io JWT 인증 로직 구현 및 리팩토링 (#321)

* feat: refreshToken 기반 인증 처리 로직 config 추가

* feat: socket 연결/종료, 메세지 수신/읽음 처리 관련 controller 수정

* feat: socket 서버 시작 및 종료 코드 분기 처리

* feat: 대화내용 암복호화 로직 추가 및 responseCode 적용

* feat: socket 관련 util 추가 (Cookie 내 refreshToken 추출)

* feat: socket config 내 허용 URL 리스트 추가

* feat: socket config 내 허용 URL 리스트 추가 -> 오탈자 수정

* Fix: socket.io 메세지 읽음 처리 관련 트랜잭션 설정 변경 (#323)

* refactor: 시그널 보내기 및 메세지 전송 DTO 분리

* chore: localhost 접근 가능 url 추가

* fix: @transactional 전파 차단 설정 수정

* [#322] Feat: 메세지 신고 API 구현 및 AI 서버 API 연동 (#328)

* chore: 매칭 전환 조건을 24시간에서 6시간으로 수정

* feat: 메세지 신고 API의 RequestDto 클래스 추가

* refactor: infra/ai/dto 페키지 세분화

* feat: 메세지 신고 API의 ResponseDto 클래스 추가

* feat: AI 서버 메세지 신고 API 요청 메서드 구현

* feat: 서버 메세지 신고 API 응답 code 추가

* feat: 서버 메세지 신고를 받은 사용자를 위한 알림 entity 구현

* feat: 서버 메세지 신고를 받은 사용자를 위한 경고 알림 생성 로직 추가

* feat: 메세지 신고 ai서버 API 요청시 응답 추가

* feat: 메세지 신고 받은 사용자를 위한 알림 메세지 생성 메서드 추가

* fix: userID 타입 수정

* feat: 메세지 신고 API 를 위한 controller, service 메서드 추가

* feat: 알림창 데이터 반환 API에 새로운 aler(메세지 신고) 타입의 알림 추가

* feat: 메세지 신고를 위해 외부 AI 서버 API 추가

* refactor: AI 서버 IP 별로 세분화

* Feat: 마이페이지 한 줄 소개 수정 기능 구현 (#329)

* Feat: socket.io 메세지 전송 필드 수정 (#330)

* Fix: socket.io 읽음 처리 트랜잭션 오류 처리 및 트랜잭션 로그 설정 (#331)

* Fix: socket.io 서버 종료 코드 및 log 수정 (#332)

* fix: socket.io 읽음 처리 트랜잭션 오류 처리 및 트랜잭션 로그 설정

* fix: socket.io 서버 종료 코드 수정

* fix: socket.io 서버 종료 코드 및 log 수정

* Fix: socket.io 오류 해결 (#333)

* fix: socket.io 읽음 처리 트랜잭션 오류 처리 및 트랜잭션 로그 설정

* fix: socket.io 서버 종료 코드 수정

* fix: socket.io 서버 종료 코드 및 log 수정

* fix: socket.io 서버 시작 코드 try-catch 추가

* Fix: Transactional의 readOnly = true 값 제거 (#334)

* [#327] Feat: Kafka 기본 설정과 기본 로직 구축  (#335)

* chore: kafka 관련 설정 및 응존성 추가

* chore: kafka와 zookeeper를 위한 Docker 설정 추가

* feat: kafka Producer-Consumer 구조 구축

* feat: kafka 헬스체크를 위한 테스트용 API 구현

* feat: kafka 토픽 생성 config 클래스 추가

* feat: kafka 설정 수정

* chore: Conflicts 해결

* fix: 오타 수정

* Fix: socket.io 메세지 읽음 처리 관련 트랜잭션 내 afterCommit 처리, socket 서버 구동 예외 처리 (#337)

* Hotfix: socket.io 로그 확인용 hotfix (#338)

* Feat: socket.io 메세지 내 messageId 추가 (#339)

* Fix: Long 타입 어노테이션 수정 (#340)

* Refactor: socket.io 서버 구동 및 종료 리팩터링 (#342)

* hotfix: 헬스체크 시간 늘리기

* Refactor: socket.io receive_message 내 sendAt 날짜 포맷 변경 (#346)

* feat: 유저 등록 외부 AI 서버 API의 URL를 V3로 변경 (#347)

* #336 Feat: SSE에 Kafka 메세지 브로커 연동 (#348)

* chore: 테스트 커버리지 측정을 위해 jacoco 설정 추가

* feat: Kafka 헬스체크 API에서 모든 인스턴스가 메시지를 수신하도록 고유한 groupId(random.uuid) 적용

* chore: Kafka에서 SSE 토픽을 위한 replicationFactor, numPartitions, 재전송 전략관 같은 설정 추가

* feat: 일반 String 데이터와 SSE event 데이터를 위한 KafkaProducerConfig 클래스 구현

* feat: SSE event 데이터를 위한 KafkaConsumerConfig 클래스 구현

* feat: Kafka를 통해 전송할 데이터들을 담을 Dto record 구현

* feat: SSE 이벤트 전송을 위한 Topic 생성 로직 추가

* feat: SSE 이벤트 전송을 위한 Consumer/Producer 메서드 추가

* feat: 다중 인스턴스 환경에서 각 인스턴스의 SSE 그룹 아이디를 고유한 값으로 설정해주기 위해 변수화

* refactor: 변수명 수정

* feat: Kafka SSE 소비 실패 시 DLQ로 메시지 전송 처리 추가

* feat: Kafka DLQ 처리를 위한 DefaultErrorHandler 및 BackOff 설정 추가

* feat: Kafka DLQ 토픽 생성 설정 추가

* feat: Kafka SSE 전송 실패 예외 정의 클래스 추가

* feat: DLQ 토픽 이름/그룹 이름 추가

* refactor: 데이터 운반을 위한 record 의 이름 수정

* feat: 테스트용 주 비즈니스 로직과 SSE 알림 로직 사이에 Kafka 적용

* feat(kafka): SSE 및 healthcheck 토픽에 TopicBuilder 방식으로 retention 설정 추가

- SSE 알림용 Kafka 토픽(sse-topic)에 retention.ms=3600000 (1시간) 설정
- healthcheck-topic에 retention.ms=600000 (10분) 설정

* feat: API 로직이 있는 주 비즈니스 로직과 SSE 알림을 처리하는 비즈니스 로직 사이에 Kafka 메세지 브로커 추가

* refactor: 메서드 이름 수정

* refactor: Kafka에 맞게 SSE 알림 전송 방식 수정 및 한 SSE 연결의 시간을 30분으로 수정

* feat: sseTopic에 min.insync.replicas=2 설정하여, 장애 상황에서 데이터 유실을 방지

* refactor: 주석 삭제 및 중복 코드 제거

* feat: k8s-cicd

* Fix: socket.io 채팅방 내 대화 상대가 잘못 인식되는 오류 조치 (#351)

* fix: 이미지 태그가 k8s- 를 포함하도록 수정

* hotfix: 다른 workflow 제외

* fix: discord 웹훅 수정

* feat: k8s-cicd, signoz 도커 파일 설정

* #191 Test: alarm 도메인을 위한 단위 테스트 코드 작성 (비즈니스 로직 약간의 리팩토링) (#354)

* chore: kafka 관련 설정을 test.properties에 추가

* refactor: 단 테스트할 수 있게 TransactionSynchronization 코드를 메서드로 분리

* feat: @AllArgsConstructor 추가

* feat: SignalRoom 엔티티 생성하는 fixture 클래스 추가

* feat: alarm 도메인에 대한 단위 테스트 작성

* Feat: 특정 사용자의 개인정보 및 취향반환 v3 API 구현 (#355)

* Hotfix: 기존에 연결되어있던 user이라면 연결을 초기화하지 않고 있던 emitter 반환 (#356)

* Hotfix: socket.io 실시간 채팅 내 SSE 연동 (#358)

* Hotfix: Kafka SSE 전송 실패 시 무한 재시도 루프 방지 (#360)

* feat: 기존에 연결되어있던 user이라면 연결을 초기화하지 않고 있던 emitter 반환

* fix: Kafka SSE 전송 실패 시 무한 재시도 루프 방지

* Hotfix: socket.io 실시간 채팅 내 SSE 연동 -> rollback (#361)

* Hotfix: 튜닝 리포트 리액션 토글 시 발생하던 Deadlock 및 LockTimeout 해결 (#362)

- TuningReportRepository에 PESSIMISTIC_WRITE 락 메서드(findWithLockById) 추가
- TuningReportReactionService에서 해당 메서드 사용하여 교착 상태 방지
- @retryable에 Deadlock 및 Lock 관련 예외(CannotAcquireLockException 등) 추가
- 리액션 수치 업데이트 및 리액션 row 조작 순서를 트랜잭션 내에서 명확히 분리
- 잘못된 Param import (lettuce) 제거 및 Spring Data JPA용으로 정리

* [#359] Feat: FCM WebPush 토큰 발급 및 저장 로직 추가 (#364)

* feat: FCM 초기 실행 로직 구현

* feat: FCM Token 인증 및 요청/응답 필드 구현

* feat: Firebase admin 관련 gradle 추가

* feat: .gitignore 수정 (FCM 관련 certification.json 노출되지 않도록 명시)

* feat: FCM 관련 certification.json 파일 호출할 수 있도록 환경설정 변경

* fix: FCM getToken 과정에서 자료형 관련 오류 처리

* refactor: socket 현재 접속자 관리 코드 분기처리

* fix: socket 서버 재시작 시 포트충돌 관련 오류 처리

* feat: 메세지 수신 시 WebPush 알림 기능 추가 및 코드 리팩토링

* refactor: WebPush 메세지 수신 시 트랜잭션 readOnly=true 처리

* refactor: 볼륨 마운트

* fix: 중복 로직 제거

* fix: 제거한거 롤백

* [#363] Feat: 튜낭 레포트의 Get/Put API 로직을 Redis를 통한 캐시 적용 (#367)

* feat: 모든 반응을 업데이트 시키는 메서드와 특정 반의 수 반환하는 메서드 추가

* feat: 튜닝 레포트 Redis 캐싱 메니저 클래스 구현

* feat: redis에 저장하기 위해 TuningReportListResponse를 record 에서 class로 변경

* feat: Redis에 캐싱된 튜닝레포트를 위한 flushDirtyReports 관리 클래스 추가

* feat: 튜닝 레포트와 튜닝 레포트 반응 관련 비즈니스 로직에서 Redis를 통한 캐시 코드 추가

* feat: 주석 정리 및 log 추가

* refactor: 캐싱 비즈니스 로직과 기존 DB 비즈니스 로직을 두 클래스로 병확하게 분리

* feat: TuningReportListResponse 클래스 내부의 ReportItem, Reactions, MyReactions 클래스에 대해 역직렬화가 확실히 되도록 각 클래스에 @JsonCreator와 @JsonProperty가 지정된 생성자

* refactor: 필요없는 import 삭제

* fix: 반응수 동기화 문제 해결

* fix: 순서 보장될 수 있도록 수정

* fix: flushDirty 로직 수정

* fix: 데이터베이스와 동기화 과정에서 데이터 불일치 수정

* refactor: 하드코딩된 부분을 메서드로 수정

* feat: 동시 수정으로 인해 Race Condition을 방지하기 위해 분산락 적용

* chore: Redis를 통한 분산락을 위한 설정 추가

* feat: 주석 추가 및 정리

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

* feat: 반응을 누르거나 취소할때 pageListKey도 같이 TTL이 갱신될수있도록 추가

* feat: TUNING_REPORT_TTL 을 한 변수로 관리하고 해당 변수를 반환하는 메서드 추가

* feat: 튜닝레포트를 redis에 저장하기 위해 사용되는 키에 기업 이메일 도메인 추가 및 사용자별 도메인을 관리하는 Redis 키 추가

* feat: 튜닝레포트 반환시 사용자와 동일 도메인에 해당되는 레포트 리스트가 반환되도록 로직 추가

* feat: 특정 게시글에 반응 누르기 처리 관정에서 해당 도메인과 해당 사용자와 관련 모든 캐시된 데이터 TTL 갱신 로직을 비동기적으로 추가

* feat: redisTemplate.keys() → SCAN 교체, saveAll(...)을 통한 반응 INSERT batch 처리

* feat: 캐시 → DB 동기화가 30분으로 설정

* feat: 새 튜닝 레포트 발행되면 즉시 flushDirty 후 캐시 무효화 로직 추가

* feat: Cache Stampede 방지하기 위해 각 모메인별로 TTL Jitter 도입

* feat: Cache Stampede 방지를 위한 Mutex Locking 전략을 Redisson 기반으로 적용

* fix: 순환 참조 문제 해결

* refactor: 동시 수정 보장 로직 중복 제거

* chore: 쿼리 측정을 위한 AOP 설정 추가

* feat: 튜닝 레포트 과련 로직에서 AOP 기반 성능 측정 클래스 구현

* Fix: FCM Initializer 시 예외 코드 처리 (#368)

* fix: FCM Initializer 시 예외 코드 처리

* fix: FCM Initializer 시 error 로그 표시

* Hotfix: add Log & Transactional (#370)

* feat: 반응 처리 로직에서 로그 추가

* feat: 반응 처리 로직에서 로그 추가

* feat: @transactional(readOnly = true) 추가

* hotfix: socket.io SSE 관련 오류 hotfix (#371)

* [#363] Feat: 특정 시간대 사용자 몰림을 고려한 캐시 워밍업 스케줄러 추가 (#372)

* feat: 모든 반응을 업데이트 시키는 메서드와 특정 반의 수 반환하는 메서드 추가

* feat: 튜닝 레포트 Redis 캐싱 메니저 클래스 구현

* feat: redis에 저장하기 위해 TuningReportListResponse를 record 에서 class로 변경

* feat: Redis에 캐싱된 튜닝레포트를 위한 flushDirtyReports 관리 클래스 추가

* feat: 튜닝 레포트와 튜닝 레포트 반응 관련 비즈니스 로직에서 Redis를 통한 캐시 코드 추가

* feat: 주석 정리 및 log 추가

* refactor: 캐싱 비즈니스 로직과 기존 DB 비즈니스 로직을 두 클래스로 병확하게 분리

* feat: TuningReportListResponse 클래스 내부의 ReportItem, Reactions, MyReactions 클래스에 대해 역직렬화가 확실히 되도록 각 클래스에 @JsonCreator와 @JsonProperty가 지정된 생성자

* refactor: 필요없는 import 삭제

* fix: 반응수 동기화 문제 해결

* fix: 순서 보장될 수 있도록 수정

* fix: flushDirty 로직 수정

* fix: 데이터베이스와 동기화 과정에서 데이터 불일치 수정

* refactor: 하드코딩된 부분을 메서드로 수정

* feat: 동시 수정으로 인해 Race Condition을 방지하기 위해 분산락 적용

* chore: Redis를 통한 분산락을 위한 설정 추가

* feat: 주석 추가 및 정리

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

* feat: 반응을 누르거나 취소할때 pageListKey도 같이 TTL이 갱신될수있도록 추가

* feat: TUNING_REPORT_TTL 을 한 변수로 관리하고 해당 변수를 반환하는 메서드 추가

* feat: 튜닝레포트를 redis에 저장하기 위해 사용되는 키에 기업 이메일 도메인 추가 및 사용자별 도메인을 관리하는 Redis 키 추가

* feat: 튜닝레포트 반환시 사용자와 동일 도메인에 해당되는 레포트 리스트가 반환되도록 로직 추가

* feat: 특정 게시글에 반응 누르기 처리 관정에서 해당 도메인과 해당 사용자와 관련 모든 캐시된 데이터 TTL 갱신 로직을 비동기적으로 추가

* feat: redisTemplate.keys() → SCAN 교체, saveAll(...)을 통한 반응 INSERT batch 처리

* feat: 캐시 → DB 동기화가 30분으로 설정

* feat: 새 튜닝 레포트 발행되면 즉시 flushDirty 후 캐시 무효화 로직 추가

* feat: Cache Stampede 방지하기 위해 각 모메인별로 TTL Jitter 도입

* feat: Cache Stampede 방지를 위한 Mutex Locking 전략을 Redisson 기반으로 적용

* fix: 순환 참조 문제 해결

* refactor: 동시 수정 보장 로직 중복 제거

* chore: 쿼리 측정을 위한 AOP 설정 추가

* feat: 튜닝 레포트 과련 로직에서 AOP 기반 성능 측정 클래스 구현

* feat: findAllByUserIdAndReportIdIn 메서드에 Transactional 추가

* feat: findAllByUserIdAndReportIdIn 메서드에 Transactional 추가

* feat: 캐시 데이터 워밍업 로직 추가

* chore: prometheus 매트릭 수집을 위한 설정

* fix: 수정된 반응수 저장 로직 수정

* fix: 테스트를 위해 워밍업 로직 일시적으로 수정

* fix: 테스트를 위해 워밍업 로직 일시적으로 수정

* fix: 워밍업 로직을 정상 시각으로 돌려놓고, 불필요한 로그 주석처리

* Hotfix: 불필요한 주석 제거 및 도메인 주고 수정 (#373)

* Refactor: 채널방 목록 내 각 채팅방마다 lastPageNumber 추가 (프론트 페이지네이션 관련 요청) (#375)

* Hotfix: 튜닝 레포트 캐시 워밍업을 배치 로직과 연동 (#376)

* [#377] Test: kafka 로직을 위한 단위/통합 테스트 코드 작성 (#379)

* feat: 단위 테스트 코드를 위해 SseEventDto의 Fixture 클래스 추가

* feat: KafkaConsumer 클래스를 위한 단위 테스트 코드를 작성

* chore: Kafka 통합 테스트를 위한 설정 추가

* feat: Kafka 통합 테스트 작성

* chore: 통합 테스트를 위한 Redis 컨테이너가 비밀번호를 요구하도록 수정

* [#378] Fix: Alarm 도메인의 Get 요청에서 발생했 N+1 문제 해결 (#380)

* chore: 쿼리 trace를 세밀하게 보기 위해 설정 추가

* fix: AlarmMatching와 SignalRoom의 매핑 관계를 LAZY로 수정

* chore: org.hibernate.stat 카테고리에 대한 로그 레벨 설정 추가

* fix: N + 1 때분에 발생했던 추가 쿼리 문제점을 해결

* fix: Transactional read only 때문에 읽음 처리 실패 해결

* fix: 응답 데이터에서 type 필드 중복을 @JsonIgnore로 해결

* fix: namespace 변경으로 인한 파드 추적 실패 오류 수정 (#381)

* Refactor: 채널방 상세페이지 조회 시 pageSize 고정 (#382)

* Hotfix: 알림창에서 바로 채팅방으로 리다이렉트하기 위해 채팅방의 마지막 페이지 번호 같이 반환하도록 수정 (#387)

* hotfix: socket.io sse 관련 오류 재적용 (주석 해제) (#388)

* Refactor: Webpush response 누락 내용 추가 (#389)

* refactor: WebPush Response 누락된 내용 추가

* refactor: WebPush EventType 추가

* Refactor: Webpush response 누락된 내용 추가 (#390)

* refactor: WebPush Response 누락된 내용 추가

* refactor: WebPush EventType 추가

* refactor: WebPush ResponseCode 추가

* fix: Branch 충돌 관련 소스 누락 오류 조치 (#391)

* Fix: WebPush Redis 내 저장된 key 값 관련 소스 누락 조치 (#393)

* fix: FCM Redis Token 관련 key 설정 누락 조치

* fix: FCM Redis Token 관련 key 설정 누락 조치

* fix: Commit 내역 제거

* Hotfix: 매칭 알림 중복 생성 방지 로직 추가 (#392)

* fix: 분산락을 통해 매칭 알림 중복 생성 방지

* fix: 첫 시그널, 매세지 수신 SSE 응답 데이터 lastPageNumber 추가

* Feat: main <-> develop 브랜치 integration (#397)

* Chore: main <-> develop 브랜치 초기화 및 동기화 (#297) (#298)

Co-authored-by: 이영학 <[email protected]>

* Hotfix: socket.io 실행 임시 중단 (#304)

---------

Co-authored-by: 이영학 <[email protected]>
Co-authored-by: Chaewon Lee <[email protected]>

* Feat: resolve main develop conflict (#401)

* Chore: main <-> develop 브랜치 초기화 및 동기화 (#297) (#298)

Co-authored-by: 이영학 <[email protected]>

* Hotfix: 튜닝 리포트 생성 스케줄링 시간 임시 변경 (매일 3분마다) (#326)

* Resolve conflict between main and develop

---------

Co-authored-by: 이영학 <[email protected]>
Co-authored-by: Chaewon Lee <[email protected]>

---------

Co-authored-by: 이영학 <[email protected]>
Co-authored-by: Chaewon Lee <[email protected]>
Co-authored-by: DDongu <[email protected]>
Co-authored-by: younghak9905 <[email protected]>

---------

Co-authored-by: 이영학 <[email protected]>
Co-authored-by: Chaewon Lee <[email protected]>
Co-authored-by: DDongu <[email protected]>
Co-authored-by: younghak9905 <[email protected]>

* chore: FCM Initialize 과정을 ClassPath -> FileStream 형식으로 변경 (#408)

* [#395] Refactor: 채팅 목록 조회 API의 정렬 기준을 마지막 메시지 시간 기준으로 수정 및 객체지향 방식 리팩토링 (#407)

* Chore: main <-> develop 브랜치 초기화 및 동기화 (#297) (#298)

Co-authored-by: 이영학 <[email protected]>

* feat: channel 도메인의 채팅 목록 조회 API의 비즈니스로직 수정

* feat: v1 channel 도메인의 채팅 목록 조회 API의 비즈니스로직 수정

* feat: 기존 native query repository 메서드 삭제

---------

Co-authored-by: 이영학 <[email protected]>

* feat: WebPush 상대방 매칭 결정 알림 기능 구현 (#410)

* [#385] Feat: WebPush 상대방 매칭 결정 알림 기능 구현  (#411)

* feat: WebPush 상대방 매칭 결정 알림 기능 구현

* chore: WebPush 상대방 매칭 결정 알림 기능 내 문구 변경

* [#191] Test: SSE 도메인과 Channel 전체 v1, v2, v3 도메인에 대한 단위 테스트 코드 작성 (#412)

* Chore: main <-> develop 브랜치 초기화 및 동기화 (#297) (#298)

Co-authored-by: 이영학 <[email protected]>

* test: global/sse/service의 SSEService 클래스에 대한 단위 테스트 코드 작성

* test: alarm 도메인의 단위 테스트 클래스 수정

* test: Channel V2 도메인의 단위 테스트 코드 작성

* fix: TransactionSynchronizationManager 코드 블락을 모듈화 처리

* feat: @AllArgsConstructor 추가

* test: channel 도메인 단위 테스트 코드에 필요한 fixture 클래스 추가

* test: channel v1, v3 도메인에 대한 단위 테스트 코드 작성

---------

Co-authored-by: 이영학 <[email protected]>

* [#394] Refactor: 채팅 목록 조회 API N+1 문제 해결 및 성능 개선 (#413)

* Chore: main <-> develop 브랜치 초기화 및 동기화 (#297) (#298)

Co-authored-by: 이영학 <[email protected]>

* feat: fetch join을 적용하기 위해 JPQL repository 추가

* feat:  기존 SignalRoomRepository에 커스텀 인터페이스 추가 상속

* feat: SignalMessage 최적화를 위해 @batchsize 적용

* feat: 새 repository의 findAllOrderByLastMessageTimeWithUsers 메서드로 수정

* test: 새 repository의 findAllOrderByLastMessageTimeWithUsers 메서드로 테스트 코드 수정

---------

Co-authored-by: 이영학 <[email protected]>

* fix: Branch 최신화, FCM 관련 환경설정 수정, 매칭 시간 조정 (#414)

* Hotfix: request dto bug fix (#415)

* Chore: main <-> develop 브랜치 초기화 및 동기화 (#297) (#298)

Co-authored-by: 이영학 <[email protected]>

* feat: requestDto에 @NoArgsConstructor 추가

---------

Co-authored-by: 이영학 <[email protected]>

---------

Co-authored-by: 이영학 <[email protected]>
Co-authored-by: Chaewon Lee <[email protected]>
Co-authored-by: DDongu <[email protected]>
Co-authored-by: younghak9905 <[email protected]>
@kanado5385-k kanado5385-k deleted the hotfix/requestDto-bug-fix branch August 3, 2025 07:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants