-
Notifications
You must be signed in to change notification settings - Fork 2
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
로그 수정 및 deploy-prod.sh 수정 #181
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* refactor: ChatQueryService 리팩토링 * feat: 일급 컬렉션 Chats 생성 및 캡슐화 - List<Chat>과 관련된 로직을 캡슐화한다. - Cursor 관련 로직을 캡슐화한다. * refactor: jpql로 수정 * refactor: 도메인 로직 캡슐화 * feat: 인덱스 추가 - 사용자 입장 시 agoraId와 userId로 조회하므로, 이 두 필드에 대한 복합 인덱스를 생성한다. - 사용자 퇴장시 sessionId로 조회하므로 단일 인덱스를 생성한다. * refactor: ChatContent VO 생성 - 채팅 내용 관련 로직 캡슐화를 위해 값 객체를 생성한다. * test: Chat 도메인 테스트 작성 * test: ChatContent 테스트 작성 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * chore: jacoco 추가 - 테스트 커버리지 확인용으로 jacoco를 추가하였다. - coverage rule은 우선 주석처리해두었다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * chore: .gitignore에 data.sql 추가 - test db 데이터를 위한 data.sql 추가 * test: 채팅방 조회 통합테스트 작성 * fix: merge bug 해결 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * docs: Test용 Security Config에 주석 추가 * fix: 에러 코드 적절하게 수정 * test: 아고라 인증 api 통합 테스트 작성 * refactor: AgoraService 리팩토링 * rename: TestDoubleFactory 패키지 이동 * refactor: 리뷰 피드백 반영 * refactor: 초기화 로직 메서드로 분리 * refactor: 접근 제어자 변경 - 필드, 메서드 접근제어자 protected로 변경 - 추상 클래스로 선언하여 인스턴스화 방지 * refactor: 리뷰 피드백 반영 * refactor: TestDoubleFactory 메서드 static import * [#141] chore: logback xml 추가 * [#142] chore: logback 수정 * [#142] chore: aop 의존성 추가 * [#142] feat: 요청 로깅 aspect 추가 * 아고라 테스트 추가 (#143) * [#-] test: 아고라 도메인 테스트 코드 추가 * [#-] test: agora query repository test 추가 * [#-] refactor: limit size 변경 * [#-] test: agroa open api test 추가 * [#-] test: agora 생성 통합 test 추가 * [#-] test: agora 참가 통합 테스트 추가 * [#136] test: pr 변경사항 반영 * 응답 형식 변경 및 테스트 코드 수정 (#147) * [#146] refactor: response message 수정 - ErrorResponse 클래스의 message type Object로 변경 * [#146] test: 통합 테스트 응답 수정 - response message type 변경 (string -> json) * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]feat: AgoraVote 통합 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]:매직넘버 처리 * [#95] refactor: agora 조회 쿼리 수정 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: 리뷰 반영 리팩토링 * 채팅 전송 �websocket 테스트 코드 작성 (#148) * fix: objectMapper 의존성 주입되도록 변경 * fix: 로깅시 웹소켓 처리하지 못하는 문제 해결 * feat: 웹소켓 핸들러 로깅 찍기 - 디버깅시 더 자세한 정보를 얻기 위해 info, warn, error 레벨의 로깅을 작성했다. * fix: 종료된 아고라 조회시 예외 발생하지 않도록 수정 - 기존 코드는 종료된 아고라를 다시 종료하므로 AgoraStatus Transition 에러가 발생했다. * test: 웹소켓 통합 테스트 base 클래스 작성 * refactor: 예외 메세지 대문자로 시작하도록 변경 * rename: 메서드명 수정 - 테스트 설정에서 CustomUserDetailsService와 관련이 있으므로 TestCustomUserDetailsServiceConfig로 메서드명을 수정한다. * refactor: 반환 메세지 제네릭으로 수정 - 반환 메세지를 제네릭으로 수정하여 범용성을 높인다. * rename: 메서드 명 변경 * test: 채팅 전송 웹소켓 테스트 작성 * refactor: 코드 리뷰 반영 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * [#152]feat: 아고라 멤버 입장시 메시지 알림 * [#152]feat: 입장 아고라멤버 알림 수정 및 퇴장 아고라멤버 알림 구현 * [#152] 아고라 입장/퇴장 메시지 알림 생성 테스트코드 작성 * [#]: 비속어 필터 1차 구현(수정 필요) * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * [#152]: 아고라 재입장 로직 수정 및 키워드와 카테고리 응답 값 추가 * [#152]: 입장/퇴장 알림 chat MessageMapping 로직 삭제 * [#152]: 필요없는 줄 삭제 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 * [#152]refactor: 아고라 퇴장 테스크 코드 작성 및 몇몇 로직 수정 아고라 퇴장 테스트코드를 작성하고 1. reconnectThreshold 시간을 5초에서 10초로 수정 2. AgoraService에서 agoraMember 호출 메서드를 변경(findValidAgoraMember-> findAgoraMemberByAgoraIdAndMemberId) 3. 줄바꿈 * Dev rebased (#161) * Dev -> Main (#159) * refactor: ChatQueryService 리팩토링 * feat: 일급 컬렉션 Chats 생성 및 캡슐화 - List<Chat>과 관련된 로직을 캡슐화한다. - Cursor 관련 로직을 캡슐화한다. * refactor: jpql로 수정 * refactor: 도메인 로직 캡슐화 * feat: 인덱스 추가 - 사용자 입장 시 agoraId와 userId로 조회하므로, 이 두 필드에 대한 복합 인덱스를 생성한다. - 사용자 퇴장시 sessionId로 조회하므로 단일 인덱스를 생성한다. * refactor: ChatContent VO 생성 - 채팅 내용 관련 로직 캡슐화를 위해 값 객체를 생성한다. * test: Chat 도메인 테스트 작성 * test: ChatContent 테스트 작성 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * chore: jacoco 추가 - 테스트 커버리지 확인용으로 jacoco를 추가하였다. - coverage rule은 우선 주석처리해두었다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * chore: .gitignore에 data.sql 추가 - test db 데이터를 위한 data.sql 추가 * test: 채팅방 조회 통합테스트 작성 * fix: merge bug 해결 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * docs: Test용 Security Config에 주석 추가 * fix: 에러 코드 적절하게 수정 * test: 아고라 인증 api 통합 테스트 작성 * refactor: AgoraService 리팩토링 * rename: TestDoubleFactory 패키지 이동 * refactor: 리뷰 피드백 반영 * refactor: 초기화 로직 메서드로 분리 * refactor: 접근 제어자 변경 - 필드, 메서드 접근제어자 protected로 변경 - 추상 클래스로 선언하여 인스턴스화 방지 * refactor: 리뷰 피드백 반영 * refactor: TestDoubleFactory 메서드 static import * [#141] chore: logback xml 추가 * [#142] chore: logback 수정 * [#142] chore: aop 의존성 추가 * [#142] feat: 요청 로깅 aspect 추가 * 아고라 테스트 추가 (#143) * [#-] test: 아고라 도메인 테스트 코드 추가 * [#-] test: agora query repository test 추가 * [#-] refactor: limit size 변경 * [#-] test: agroa open api test 추가 * [#-] test: agora 생성 통합 test 추가 * [#-] test: agora 참가 통합 테스트 추가 * [#136] test: pr 변경사항 반영 * 응답 형식 변경 및 테스트 코드 수정 (#147) * [#146] refactor: response message 수정 - ErrorResponse 클래스의 message type Object로 변경 * [#146] test: 통합 테스트 응답 수정 - response message type 변경 (string -> json) * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]feat: AgoraVote 통합 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]:매직넘버 처리 * [#95] refactor: agora 조회 쿼리 수정 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: 리뷰 반영 리팩토링 * 채팅 전송 �websocket 테스트 코드 작성 (#148) * fix: objectMapper 의존성 주입되도록 변경 * fix: 로깅시 웹소켓 처리하지 못하는 문제 해결 * feat: 웹소켓 핸들러 로깅 찍기 - 디버깅시 더 자세한 정보를 얻기 위해 info, warn, error 레벨의 로깅을 작성했다. * fix: 종료된 아고라 조회시 예외 발생하지 않도록 수정 - 기존 코드는 종료된 아고라를 다시 종료하므로 AgoraStatus Transition 에러가 발생했다. * test: 웹소켓 통합 테스트 base 클래스 작성 * refactor: 예외 메세지 대문자로 시작하도록 변경 * rename: 메서드명 수정 - 테스트 설정에서 CustomUserDetailsService와 관련이 있으므로 TestCustomUserDetailsServiceConfig로 메서드명을 수정한다. * refactor: 반환 메세지 제네릭으로 수정 - 반환 메세지를 제네릭으로 수정하여 범용성을 높인다. * rename: 메서드 명 변경 * test: 채팅 전송 웹소켓 테스트 작성 * refactor: 코드 리뷰 반영 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * test: 채팅방 조회 통합테스트 작성 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * rename: TestDoubleFactory 패키지 이동 * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 --------- Co-authored-by: Mint <[email protected]> Co-authored-by: Mint <[email protected]> Co-authored-by: yybmion <[email protected]> Co-authored-by: yoobin_mion <[email protected]> * Revert "Dev -> Main (#159)" (#160) This reverts commit b33211628fe0c0445bcb7c083d6897daae55de0d. * refactor: 도메인 로직 캡슐화 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * test: 채팅방 조회 통합테스트 작성 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * rename: TestDoubleFactory 패키지 이동 * refactor: 리뷰 피드백 반영 * refactor: TestDoubleFactory 메서드 static import * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 --------- Co-authored-by: Mint <[email protected]> Co-authored-by: Mint <[email protected]> Co-authored-by: yybmion <[email protected]> Co-authored-by: yoobin_mion <[email protected]> * Revert "Dev rebased (#161)" (#162) This reverts commit 8121712c5d493b907b528bd5b0ec640e17b3dd23. * [#152]refactor: 리뷰 반영 * [#152]refactor: 채팅메타정보 추가 및 updateDisconnectTime 로직 수정 기존에는 채팅 메타정보에 나가는지 들어오는지에 대한 정보가 없었지만, disconnectTime 유무로 판단할 수 있기에 프론트에게 disconnectTime을 추가해서 넘겨주었다. 또한 네트워크 불안정과 같은 비정상적인 소켓 연결끊김에도 disconnectTime 로직을 추가하였는데 더티체킹이 불가능하다고 판단하여 직접 save하여 저장해주었다. * 채팅 반응하기 기능 구현 (#164) * feat: 채팅 리액션 기능 구현 - Reaction : 리액션 enum class - 웹소켓으로 구현하여 실시간 조회 가능 - 응답은 EnumMap 자료구조 이용 검증 코드 - agoraId가 유효한지 검증 - 토론에 참여한 유저인지 검증 로직 - 자신의 채팅에는 리액션 추가 못하도록 함 - 이미 똑같은 리액션을 보냈을 경우 취소함 - 새로운 리액션일 경우 저장 * refactor: 채팅 반응하기 리팩토링 - 필요없는 Auditing 필드 제거 - 초기화 최적화(static 블록) * feat: 웹소켓 검증 예외 추가 * test: 리액션 생성 테스트 작성 * refactor: 리뷰 반영 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * [#167]feat: 비속어 필터 기능 개발 아호코라식 알고리즘(트라이 자료구조)로 처음 비속어 문자를 세팅하고난 이후 재사용을 통해 성능을 개선시켰다. 소켓을 통해 채팅을 보내기 전에 비속어 필터 api를 거쳐 비속어가 존재한다면 해당 비속어의 index를 응답한다. 존재하지 않는다면 200ok응답으로 소켓을 통해 정상적으로 채팅이 전송된다. * [#167]Refactor: 프론트요구사항 반영 및 테스트코드 작성 채팅 메타 정보와 exit api 응답값의 agoraId필드값을 삭제 Refresh-Token cookie 이름을 ATKN으로 변경 비속어 필터 테스트코드 작성 * [#167]Refactor: 테스트 코드내용 추가 비속어가 포함되어있지 않은 경우 테스트 코드 추가 * [#167]refactor: 리뷰 반영 BadWordResponse 응답 안에 비속어 여부(boolean)를 포함하여 반환하게 수정하였다. 이외에는 자잘한 리뷰 변경사항 적용. * [#167]refactor: 포맷팅 및 badword 엔티티 수정 * [#168] feat: thumbnail 도메인 추가 (#170) * �dev 충돌 해결 (#174) * Dev-> Main (#151) * refactor: ChatQueryService 리팩토링 * feat: 일급 컬렉션 Chats 생성 및 캡슐화 - List<Chat>과 관련된 로직을 캡슐화한다. - Cursor 관련 로직을 캡슐화한다. * refactor: jpql로 수정 * refactor: 도메인 로직 캡슐화 * feat: 인덱스 추가 - 사용자 입장 시 agoraId와 userId로 조회하므로, 이 두 필드에 대한 복합 인덱스를 생성한다. - 사용자 퇴장시 sessionId로 조회하므로 단일 인덱스를 생성한다. * refactor: ChatContent VO 생성 - 채팅 내용 관련 로직 캡슐화를 위해 값 객체를 생성한다. * test: Chat 도메인 테스트 작성 * test: ChatContent 테스트 작성 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * chore: jacoco 추가 - 테스트 커버리지 확인용으로 jacoco를 추가하였다. - coverage rule은 우선 주석처리해두었다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * chore: .gitignore에 data.sql 추가 - test db 데이터를 위한 data.sql 추가 * test: 채팅방 조회 통합테스트 작성 * fix: merge bug 해결 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * docs: Test용 Security Config에 주석 추가 * fix: 에러 코드 적절하게 수정 * test: 아고라 인증 api 통합 테스트 작성 * refactor: AgoraService 리팩토링 * rename: TestDoubleFactory 패키지 이동 * refactor: 리뷰 피드백 반영 * refactor: 초기화 로직 메서드로 분리 * refactor: 접근 제어자 변경 - 필드, 메서드 접근제어자 protected로 변경 - 추상 클래스로 선언하여 인스턴스화 방지 * refactor: 리뷰 피드백 반영 * refactor: TestDoubleFactory 메서드 static import * [#141] chore: logback xml 추가 * [#142] chore: logback 수정 * [#142] chore: aop 의존성 추가 * [#142] feat: 요청 로깅 aspect 추가 * 아고라 테스트 추가 (#143) * [#-] test: 아고라 도메인 테스트 코드 추가 * [#-] test: agora query repository test 추가 * [#-] refactor: limit size 변경 * [#-] test: agroa open api test 추가 * [#-] test: agora 생성 통합 test 추가 * [#-] test: agora 참가 통합 테스트 추가 * [#136] test: pr 변경사항 반영 * 응답 형식 변경 및 테스트 코드 수정 (#147) * [#146] refactor: response message 수정 - ErrorResponse 클래스의 message type Object로 변경 * [#146] test: 통합 테스트 응답 수정 - response message type 변경 (string -> json) * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]feat: AgoraVote 통합 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]:매직넘버 처리 * [#95] refactor: agora 조회 쿼리 수정 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: 리뷰 반영 리팩토링 * 채팅 전송 �websocket 테스트 코드 작성 (#148) * fix: objectMapper 의존성 주입되도록 변경 * fix: 로깅시 웹소켓 처리하지 못하는 문제 해결 * feat: 웹소켓 핸들러 로깅 찍기 - 디버깅시 더 자세한 정보를 얻기 위해 info, warn, error 레벨의 로깅을 작성했다. * fix: 종료된 아고라 조회시 예외 발생하지 않도록 수정 - 기존 코드는 종료된 아고라를 다시 종료하므로 AgoraStatus Transition 에러가 발생했다. * test: 웹소켓 통합 테스트 base 클래스 작성 * refactor: 예외 메세지 대문자로 시작하도록 변경 * rename: 메서드명 수정 - 테스트 설정에서 CustomUserDetailsService와 관련이 있으므로 TestCustomUserDetailsServiceConfig로 메서드명을 수정한다. * refactor: 반환 메세지 제네릭으로 수정 - 반환 메세지를 제네릭으로 수정하여 범용성을 높인다. * rename: 메서드 명 변경 * test: 채팅 전송 웹소켓 테스트 작성 * refactor: 코드 리뷰 반영 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 --------- Co-authored-by: Big-Cir97 <[email protected]> Co-authored-by: dae won <[email protected]> Co-authored-by: yybmion <[email protected]> Co-authored-by: yoobin_mion <[email protected]> * Dev -> Main (#159) * refactor: ChatQueryService 리팩토링 * feat: 일급 컬렉션 Chats 생성 및 캡슐화 - List<Chat>과 관련된 로직을 캡슐화한다. - Cursor 관련 로직을 캡슐화한다. * refactor: jpql로 수정 * refactor: 도메인 로직 캡슐화 * feat: 인덱스 추가 - 사용자 입장 시 agoraId와 userId로 조회하므로, 이 두 필드에 대한 복합 인덱스를 생성한다. - 사용자 퇴장시 sessionId로 조회하므로 단일 인덱스를 생성한다. * refactor: ChatContent VO 생성 - 채팅 내용 관련 로직 캡슐화를 위해 값 객체를 생성한다. * test: Chat 도메인 테스트 작성 * test: ChatContent 테스트 작성 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * chore: jacoco 추가 - 테스트 커버리지 확인용으로 jacoco를 추가하였다. - coverage rule은 우선 주석처리해두었다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * chore: .gitignore에 data.sql 추가 - test db 데이터를 위한 data.sql 추가 * test: 채팅방 조회 통합테스트 작성 * fix: merge bug 해결 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * docs: Test용 Security Config에 주석 추가 * fix: 에러 코드 적절하게 수정 * test: 아고라 인증 api 통합 테스트 작성 * refactor: AgoraService 리팩토링 * rename: TestDoubleFactory 패키지 이동 * refactor: 리뷰 피드백 반영 * refactor: 초기화 로직 메서드로 분리 * refactor: 접근 제어자 변경 - 필드, 메서드 접근제어자 protected로 변경 - 추상 클래스로 선언하여 인스턴스화 방지 * refactor: 리뷰 피드백 반영 * refactor: TestDoubleFactory 메서드 static import * [#141] chore: logback xml 추가 * [#142] chore: logback 수정 * [#142] chore: aop 의존성 추가 * [#142] feat: 요청 로깅 aspect 추가 * 아고라 테스트 추가 (#143) * [#-] test: 아고라 도메인 테스트 코드 추가 * [#-] test: agora query repository test 추가 * [#-] refactor: limit size 변경 * [#-] test: agroa open api test 추가 * [#-] test: agora 생성 통합 test 추가 * [#-] test: agora 참가 통합 테스트 추가 * [#136] test: pr 변경사항 반영 * 응답 형식 변경 및 테스트 코드 수정 (#147) * [#146] refactor: response message 수정 - ErrorResponse 클래스의 message type Object로 변경 * [#146] test: 통합 테스트 응답 수정 - response message type 변경 (string -> json) * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]feat: AgoraVote 통합 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]:매직넘버 처리 * [#95] refactor: agora 조회 쿼리 수정 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: 리뷰 반영 리팩토링 * 채팅 전송 �websocket 테스트 코드 작성 (#148) * fix: objectMapper 의존성 주입되도록 변경 * fix: 로깅시 웹소켓 처리하지 못하는 문제 해결 * feat: 웹소켓 핸들러 로깅 찍기 - 디버깅시 더 자세한 정보를 얻기 위해 info, warn, error 레벨의 로깅을 작성했다. * fix: 종료된 아고라 조회시 예외 발생하지 않도록 수정 - 기존 코드는 종료된 아고라를 다시 종료하므로 AgoraStatus Transition 에러가 발생했다. * test: 웹소켓 통합 테스트 base 클래스 작성 * refactor: 예외 메세지 대문자로 시작하도록 변경 * rename: 메서드명 수정 - 테스트 설정에서 CustomUserDetailsService와 관련이 있으므로 TestCustomUserDetailsServiceConfig로 메서드명을 수정한다. * refactor: 반환 메세지 제네릭으로 수정 - 반환 메세지를 제네릭으로 수정하여 범용성을 높인다. * rename: 메서드 명 변경 * test: 채팅 전송 웹소켓 테스트 작성 * refactor: 코드 리뷰 반영 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * test: 채팅방 조회 통합테스트 작성 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * rename: TestDoubleFactory 패키지 이동 * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 --------- Co-authored-by: Mint <[email protected]> Co-authored-by: Mint <[email protected]> Co-authored-by: yybmion <[email protected]> Co-authored-by: yoobin_mion <[email protected]> * Revert "Dev -> Main (#159)" (#160) This reverts commit b33211628fe0c0445bcb7c083d6897daae55de0d. --------- Co-authored-by: Big-Cir97 <[email protected]> Co-authored-by: dae won <[email protected]> Co-authored-by: yybmion <[email protected]> Co-authored-by: yoobin_mion <[email protected]> * �feat: OAuth2 소셜 로그인 기능 구현 (#173) * feat: 채팅 리액션 기능 구현 - Reaction : 리액션 enum class - 웹소켓으로 구현하여 실시간 조회 가능 - 응답은 EnumMap 자료구조 이용 검증 코드 - agoraId가 유효한지 검증 - 토론에 참여한 유저인지 검증 로직 - 자신의 채팅에는 리액션 추가 못하도록 함 - 이미 똑같은 리액션을 보냈을 경우 취소함 - 새로운 리액션일 경우 저장 * rename: User -> Member 이름 변경 * rename: CustomUserDetails, CustomUserDetailsService 이동 - CustomUserDetails 는 domain으로 이동 - CustomUserDetailsService 는 service로 이동 * feat: 채팅 조회 응답에 리액션 추가 * refactor: 설정값 주입시 @Value 대신 ConfigurationProperties 사용 - 타입 안정성이 높아진다. (컴파일 시점 에러 발생) - 설정을 클래스로 구조화할 수 있다. * feat: 종료된 아고라 채팅 전송 예외 처리 - 종료된 아고라일 경우 채팅 전송시 예외 발생하도록 한다. * refactor: 리액션 응답 수정 - 모든 리액션이 반응에 포함되도록 수정 - 없는 리액션도 0으로 추가하여 응답의 일관성을 높임 * refactor: 쿠키 관련 로직 모으기 - CookieUtils로 모아서 유틸리티 클래스로 작성 * feat: OAuth 소셜 로그인 구현 - 기존 로그인 로직에 OAuth 소셜 로그인 가능하도록 확장 - @ConfigurationProperties를 사용한 타입 안전한 설정 * refactor: 인증 로직 수정 - refresh token의 id를 문자열로 변경하여 구글 OAuth id와 같이 큰 숫자도 저장할 수 있도록 수정 - Member에 Provider 필드 생성하여 OAuth 확장하기 - 테스트 코드 추가 및 수정 * feat: redis 설정 - access 토큰 관리는 redis에서 수행 * fix: OAuth id를 Object로 받도록 수정 - 구글은 String 타입으로, 카카오는 Long(숫자타입)으로 전달하므로 Object로 받아 문자열로 변환한다. * fix: 충돌 해결 * refactor: 코드 리뷰 반영 * Dev -> Main (#158) (#177) * refactor: ChatQueryService 리팩토링 * feat: 일급 컬렉션 Chats 생성 및 캡슐화 - List<Chat>과 관련된 로직을 캡슐화한다. - Cursor 관련 로직을 캡슐화한다. * refactor: jpql로 수정 * refactor: 도메인 로직 캡슐화 * feat: 인덱스 추가 - 사용자 입장 시 agoraId와 userId로 조회하므로, 이 두 필드에 대한 복합 인덱스를 생성한다. - 사용자 퇴장시 sessionId로 조회하므로 단일 인덱스를 생성한다. * refactor: ChatContent VO 생성 - 채팅 내용 관련 로직 캡슐화를 위해 값 객체를 생성한다. * test: Chat 도메인 테스트 작성 * test: ChatContent 테스트 작성 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * chore: jacoco 추가 - 테스트 커버리지 확인용으로 jacoco를 추가하였다. - coverage rule은 우선 주석처리해두었다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * chore: .gitignore에 data.sql 추가 - test db 데이터를 위한 data.sql 추가 * test: 채팅방 조회 통합테스트 작성 * fix: merge bug 해결 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * docs: Test용 Security Config에 주석 추가 * fix: 에러 코드 적절하게 수정 * test: 아고라 인증 api 통합 테스트 작성 * refactor: AgoraService 리팩토링 * rename: TestDoubleFactory 패키지 이동 * refactor: 리뷰 피드백 반영 * refactor: 초기화 로직 메서드로 분리 * refactor: 접근 제어자 변경 - 필드, 메서드 접근제어자 protected로 변경 - 추상 클래스로 선언하여 인스턴스화 방지 * refactor: 리뷰 피드백 반영 * refactor: TestDoubleFactory 메서드 static import * [#141] chore: logback xml 추가 * [#142] chore: logback 수정 * [#142] chore: aop 의존성 추가 * [#142] feat: 요청 로깅 aspect 추가 * 아고라 테스트 추가 (#143) * [#-] test: 아고라 도메인 테스트 코드 추가 * [#-] test: agora query repository test 추가 * [#-] refactor: limit size 변경 * [#-] test: agroa open api test 추가 * [#-] test: agora 생성 통합 test 추가 * [#-] test: agora 참가 통합 테스트 추가 * [#136] test: pr 변경사항 반영 * 응답 형식 변경 및 테스트 코드 수정 (#147) * [#146] refactor: response message 수정 - ErrorResponse 클래스의 message type Object로 변경 * [#146] test: 통합 테스트 응답 수정 - response message type 변경 (string -> json) * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]feat: AgoraVote 통합 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]:매직넘버 처리 * [#95] refactor: agora 조회 쿼리 수정 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: 리뷰 반영 리팩토링 * 채팅 전송 �websocket 테스트 코드 작성 (#148) * fix: objectMapper 의존성 주입되도록 변경 * fix: 로깅시 웹소켓 처리하지 못하는 문제 해결 * feat: 웹소켓 핸들러 로깅 찍기 - 디버깅시 더 자세한 정보를 얻기 위해 info, warn, error 레벨의 로깅을 작성했다. * fix: 종료된 아고라 조회시 예외 발생하지 않도록 수정 - 기존 코드는 종료된 아고라를 다시 종료하므로 AgoraStatus Transition 에러가 발생했다. * test: 웹소켓 통합 테스트 base 클래스 작성 * refactor: 예외 메세지 대문자로 시작하도록 변경 * rename: 메서드명 수정 - 테스트 설정에서 CustomUserDetailsService와 관련이 있으므로 TestCustomUserDetailsServiceConfig로 메서드명을 수정한다. * refactor: 반환 메세지 제네릭으로 수정 - 반환 메세지를 제네릭으로 수정하여 범용성을 높인다. * rename: 메서드 명 변경 * test: 채팅 전송 웹소켓 테스트 작성 * refactor: 코드 리뷰 반영 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * [#152]feat: 아고라 멤버 입장시 메시지 알림 * [#152]feat: 입장 아고라멤버 알림 수정 및 퇴장 아고라멤버 알림 구현 * [#152] 아고라 입장/퇴장 메시지 알림 생성 테스트코드 작성 * [#]: 비속어 필터 1차 구현(수정 필요) * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * [#152]: 아고라 재입장 로직 수정 및 키워드와 카테고리 응답 값 추가 * [#152]: 입장/퇴장 알림 chat MessageMapping 로직 삭제 * [#152]: 필요없는 줄 삭제 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 * [#152]refactor: 아고라 퇴장 테스크 코드 작성 및 몇몇 로직 수정 아고라 퇴장 테스트코드를 작성하고 1. reconnectThreshold 시간을 5초에서 10초로 수정 2. AgoraService에서 agoraMember 호출 메서드를 변경(findValidAgoraMember-> findAgoraMemberByAgoraIdAndMemberId) 3. 줄바꿈 * Dev rebased (#161) * Dev -> Main (#159) * refactor: ChatQueryService 리팩토링 * feat: 일급 컬렉션 Chats 생성 및 캡슐화 - List<Chat>과 관련된 로직을 캡슐화한다. - Cursor 관련 로직을 캡슐화한다. * refactor: jpql로 수정 * refactor: 도메인 로직 캡슐화 * feat: 인덱스 추가 - 사용자 입장 시 agoraId와 userId로 조회하므로, 이 두 필드에 대한 복합 인덱스를 생성한다. - 사용자 퇴장시 sessionId로 조회하므로 단일 인덱스를 생성한다. * refactor: ChatContent VO 생성 - 채팅 내용 관련 로직 캡슐화를 위해 값 객체를 생성한다. * test: Chat 도메인 테스트 작성 * test: ChatContent 테스트 작성 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * chore: jacoco 추가 - 테스트 커버리지 확인용으로 jacoco를 추가하였다. - coverage rule은 우선 주석처리해두었다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * chore: .gitignore에 data.sql 추가 - test db 데이터를 위한 data.sql 추가 * test: 채팅방 조회 통합테스트 작성 * fix: merge bug 해결 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * docs: Test용 Security Config에 주석 추가 * fix: 에러 코드 적절하게 수정 * test: 아고라 인증 api 통합 테스트 작성 * refactor: AgoraService 리팩토링 * rename: TestDoubleFactory 패키지 이동 * refactor: 리뷰 피드백 반영 * refactor: 초기화 로직 메서드로 분리 * refactor: 접근 제어자 변경 - 필드, 메서드 접근제어자 protected로 변경 - 추상 클래스로 선언하여 인스턴스화 방지 * refactor: 리뷰 피드백 반영 * refactor: TestDoubleFactory 메서드 static import * [#141] chore: logback xml 추가 * [#142] chore: logback 수정 * [#142] chore: aop 의존성 추가 * [#142] feat: 요청 로깅 aspect 추가 * 아고라 테스트 추가 (#143) * [#-] test: 아고라 도메인 테스트 코드 추가 * [#-] test: agora query repository test 추가 * [#-] refactor: limit size 변경 * [#-] test: agroa open api test 추가 * [#-] test: agora 생성 통합 test 추가 * [#-] test: agora 참가 통합 테스트 추가 * [#136] test: pr 변경사항 반영 * 응답 형식 변경 및 테스트 코드 수정 (#147) * [#146] refactor: response message 수정 - ErrorResponse 클래스의 message type Object로 변경 * [#146] test: 통합 테스트 응답 수정 - response message type 변경 (string -> json) * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]feat: AgoraVote 통합 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]:매직넘버 처리 * [#95] refactor: agora 조회 쿼리 수정 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: 리뷰 반영 리팩토링 * 채팅 전송 �websocket 테스트 코드 작성 (#148) * fix: objectMapper 의존성 주입되도록 변경 * fix: 로깅시 웹소켓 처리하지 못하는 문제 해결 * feat: 웹소켓 핸들러 로깅 찍기 - 디버깅시 더 자세한 정보를 얻기 위해 info, warn, error 레벨의 로깅을 작성했다. * fix: 종료된 아고라 조회시 예외 발생하지 않도록 수정 - 기존 코드는 종료된 아고라를 다시 종료하므로 AgoraStatus Transition 에러가 발생했다. * test: 웹소켓 통합 테스트 base 클래스 작성 * refactor: 예외 메세지 대문자로 시작하도록 변경 * rename: 메서드명 수정 - 테스트 설정에서 CustomUserDetailsService와 관련이 있으므로 TestCustomUserDetailsServiceConfig로 메서드명을 수정한다. * refactor: 반환 메세지 제네릭으로 수정 - 반환 메세지를 제네릭으로 수정하여 범용성을 높인다. * rename: 메서드 명 변경 * test: 채팅 전송 웹소켓 테스트 작성 * refactor: 코드 리뷰 반영 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * test: 채팅방 조회 통합테스트 작성 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * rename: TestDoubleFactory 패키지 이동 * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 --------- * Revert "Dev -> Main (#159)" (#160) This reverts commit b33211628fe0c0445bcb7c083d6897daae55de0d. * refactor: 도메인 로직 캡슐화 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * test: 채팅방 조회 통합테스트 작성 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * rename: TestDoubleFactory 패키지 이동 * refactor: 리뷰 피드백 반영 * refactor: TestDoubleFactory 메서드 static import * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 --------- * Revert "Dev rebased (#161)" (#162) This reverts commit 8121712c5d493b907b528bd5b0ec640e17b3dd23. * [#152]refactor: 리뷰 반영 * [#152]refactor: 채팅메타정보 추가 및 updateDisconnectTime 로직 수정 기존에는 채팅 메타정보에 나가는지 들어오는지에 대한 정보가 없었지만, disconnectTime 유무로 판단할 수 있기에 프론트에게 disconnectTime을 추가해서 넘겨주었다. 또한 네트워크 불안정과 같은 비정상적인 소켓 연결끊김에도 disconnectTime 로직을 추가하였는데 더티체킹이 불가능하다고 판단하여 직접 save하여 저장해주었다. * 채팅 반응하기 기능 구현 (#164) * feat: 채팅 리액션 기능 구현 - Reaction : 리액션 enum class - 웹소켓으로 구현하여 실시간 조회 가능 - 응답은 EnumMap 자료구조 이용 검증 코드 - agoraId가 유효한지 검증 - 토론에 참여한 유저인지 검증 로직 - 자신의 채팅에는 리액션 추가 못하도록 함 - 이미 똑같은 리액션을 보냈을 경우 취소함 - 새로운 리액션일 경우 저장 * refactor: 채팅 반응하기 리팩토링 - 필요없는 Auditing 필드 제거 - 초기화 최적화(static 블록) * feat: 웹소켓 검증 예외 추가 * test: 리액션 생성 테스트 작성 * refactor: 리뷰 반영 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * [#167]feat: 비속어 필터 기능 개발 아호코라식 알고리즘(트라이 자료구조)로 처음 비속어 문자를 세팅하고난 이후 재사용을 통해 성능을 개선시켰다. 소켓을 통해 채팅을 보내기 전에 비속어 필터 api를 거쳐 비속어가 존재한다면 해당 비속어의 index를 응답한다. 존재하지 않는다면 200ok응답으로 소켓을 통해 정상적으로 채팅이 전송된다. * [#167]Refactor: 프론트요구사항 반영 및 테스트코드 작성 채팅 메타 정보와 exit api 응답값의 agoraId필드값을 삭제 Refresh-Token cookie 이름을 ATKN으로 변경 비속어 필터 테스트코드 작성 * [#167]Refactor: 테스트 코드내용 추가 비속어가 포함되어있지 않은 경우 테스트 코드 추가 * [#167]refactor: 리뷰 반영 BadWordResponse 응답 안에 비속어 여부(boolean)를 포함하여 반환하게 수정하였다. 이외에는 자잘한 리뷰 변경사항 적용. * [#167]refactor: 포맷팅 및 badword 엔티티 수정 * [#168] feat: thumbnail 도메인 추가 (#170) * �dev 충돌 해결 (#174) * Dev-> Main (#151) * refactor: ChatQueryService 리팩토링 * feat: 일급 컬렉션 Chats 생성 및 캡슐화 - List<Chat>과 관련된 로직을 캡슐화한다. - Cursor 관련 로직을 캡슐화한다. * refactor: jpql로 수정 * refactor: 도메인 로직 캡슐화 * feat: 인덱스 추가 - 사용자 입장 시 agoraId와 userId로 조회하므로, 이 두 필드에 대한 복합 인덱스를 생성한다. - 사용자 퇴장시 sessionId로 조회하므로 단일 인덱스를 생성한다. * refactor: ChatContent VO 생성 - 채팅 내용 관련 로직 캡슐화를 위해 값 객체를 생성한다. * test: Chat 도메인 테스트 작성 * test: ChatContent 테스트 작성 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * chore: jacoco 추가 - 테스트 커버리지 확인용으로 jacoco를 추가하였다. - coverage rule은 우선 주석처리해두었다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * chore: .gitignore에 data.sql 추가 - test db 데이터를 위한 data.sql 추가 * test: 채팅방 조회 통합테스트 작성 * fix: merge bug 해결 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * docs: Test용 Security Config에 주석 추가 * fix: 에러 코드 적절하게 수정 * test: 아고라 인증 api 통합 테스트 작성 * refactor: AgoraService 리팩토링 * rename: TestDoubleFactory 패키지 이동 * refactor: 리뷰 피드백 반영 * refactor: 초기화 로직 메서드로 분리 * refactor: 접근 제어자 변경 - 필드, 메서드 접근제어자 protected로 변경 - 추상 클래스로 선언하여 인스턴스화 방지 * refactor: 리뷰 피드백 반영 * refactor: TestDoubleFactory 메서드 static import * [#141] chore: logback xml 추가 * [#142] chore: logback 수정 * [#142] chore: aop 의존성 추가 * [#142] feat: 요청 로깅 aspect 추가 * 아고라 테스트 추가 (#143) * [#-] test: 아고라 도메인 테스트 코드 추가 * [#-] test: agora query repository test 추가 * [#-] refactor: limit size 변경 * [#-] test: agroa open api test 추가 * [#-] test: agora 생성 통합 test 추가 * [#-] test: agora 참가 통합 테스트 추가 * [#136] test: pr 변경사항 반영 * 응답 형식 변경 및 테스트 코드 수정 (#147) * [#146] refactor: response message 수정 - ErrorResponse 클래스의 message type Object로 변경 * [#146] test: 통합 테스트 응답 수정 - response message type 변경 (string -> json) * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]feat: AgoraVote 통합 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]:매직넘버 처리 * [#95] refactor: agora 조회 쿼리 수정 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: 리뷰 반영 리팩토링 * 채팅 전송 �websocket 테스트 코드 작성 (#148) * fix: objectMapper 의존성 주입되도록 변경 * fix: 로깅시 웹소켓 처리하지 못하는 문제 해결 * feat: 웹소켓 핸들러 로깅 찍기 - 디버깅시 더 자세한 정보를 얻기 위해 info, warn, error 레벨의 로깅을 작성했다. * fix: 종료된 아고라 조회시 예외 발생하지 않도록 수정 - 기존 코드는 종료된 아고라를 다시 종료하므로 AgoraStatus Transition 에러가 발생했다. * test: 웹소켓 통합 테스트 base 클래스 작성 * refactor: 예외 메세지 대문자로 시작하도록 변경 * rename: 메서드명 수정 - 테스트 설정에서 CustomUserDetailsService와 관련이 있으므로 TestCustomUserDetailsServiceConfig로 메서드명을 수정한다. * refactor: 반환 메세지 제네릭으로 수정 - 반환 메세지를 제네릭으로 수정하여 범용성을 높인다. * rename: 메서드 명 변경 * test: 채팅 전송 웹소켓 테스트 작성 * refactor: 코드 리뷰 반영 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 --------- * Dev -> Main (#159) * refactor: ChatQueryService 리팩토링 * feat: 일급 컬렉션 Chats 생성 및 캡슐화 - List<Chat>과 관련된 로직을 캡슐화한다. - Cursor 관련 로직을 캡슐화한다. * refactor: jpql로 수정 * refactor: 도메인 로직 캡슐화 * feat: 인덱스 추가 - 사용자 입장 시 agoraId와 userId로 조회하므로, 이 두 필드에 대한 복합 인덱스를 생성한다. - 사용자 퇴장시 sessionId로 조회하므로 단일 인덱스를 생성한다. * refactor: ChatContent VO 생성 - 채팅 내용 관련 로직 캡슐화를 위해 값 객체를 생성한다. * test: Chat 도메인 테스트 작성 * test: ChatContent 테스트 작성 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * chore: jacoco 추가 - 테스트 커버리지 확인용으로 jacoco를 추가하였다. - coverage rule은 우선 주석처리해두었다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * chore: .gitignore에 data.sql 추가 - test db 데이터를 위한 data.sql 추가 * test: 채팅방 조회 통합테스트 작성 * fix: merge bug 해결 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * docs: Test용 Security Config에 주석 추가 * fix: 에러 코드 적절하게 수정 * test: 아고라 인증 api 통합 테스트 작성 * refactor: AgoraService 리팩토링 * rename: TestDoubleFactory 패키지 이동 * refactor: 리뷰 피드백 반영 * refactor: 초기화 로직 메서드로 분리 * refactor: 접근 제어자 변경 - 필드, 메서드 접근제어자 protected로 변경 - 추상 클래스로 선언하여 인스턴스화 방지 * refactor: 리뷰 피드백 반영 * refactor: TestDoubleFactory 메서드 static import * [#141] chore: logback xml 추가 * [#142] chore: logback 수정 * [#142] chore: aop 의존성 추가 * [#142] feat: 요청 로깅 aspect 추가 * 아고라 테스트 추가 (#143) * [#-] test: 아고라 도메인 테스트 코드 추가 * [#-] test: agora query repository test 추가 * [#-] refactor: limit size 변경 * [#-] test: agroa open api test 추가 * [#-] test: agora 생성 통합 test 추가 * [#-] test: agora 참가 통합 테스트 추가 * [#136] test: pr 변경사항 반영 * 응답 형식 변경 및 테스트 코드 수정 (#147) * [#146] refactor: response message 수정 - ErrorResponse 클래스의 message type Object로 변경 * [#146] test: 통합 테스트 응답 수정 - response message type 변경 (string -> json) * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]feat: AgoraVote 통합 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]:매직넘버 처리 * [#95] refactor: agora 조회 쿼리 수정 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: 리뷰 반영 리팩토링 * 채팅 전송 �websocket 테스트 코드 작성 (#148) * fix: objectMapper 의존성 주입되도록 변경 * fix: 로깅시 웹소켓 처리하지 못하는 문제 해결 * feat: 웹소켓 핸들러 로깅 찍기 - 디버깅시 더 자세한 정보를 얻기 위해 info, warn, error 레벨의 로깅을 작성했다. * fix: 종료된 아고라 조회시 예외 발생하지 않도록 수정 - 기존 코드는 종료된 아고라를 다시 종료하므로 AgoraStatus Transition 에러가 발생했다. * test: 웹소켓 통합 테스트 base 클래스 작성 * refactor: 예외 메세지 대문자로 시작하도록 변경 * rename: 메서드명 수정 - 테스트 설정에서 CustomUserDetailsService와 관련이 있으므로 TestCustomUserDetailsServiceConfig로 메서드명을 수정한다. * refactor: 반환 메세지 제네릭으로 수정 - 반환 메세지를 제네릭으로 수정하여 범용성을 높인다. * rename: 메서드 명 변경 * test: 채팅 전송 웹소켓 테스트 작성 * refactor: 코드 리뷰 반영 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * test: 채팅방 조회 통합테스트 작성 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * rename: TestDoubleFactory 패키지 이동 * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 --------- * Revert "Dev -> Main (#159)" (#160) This reverts commit b33211628fe0c0445bcb7c083d6897daae55de0d. --------- --------- Co-authored-by: dae won <[email protected]> Co-authored-by: yybmion <[email protected]> Co-authored-by: yoobin_mion <[email protected]> Co-authored-by: yybmion <[email protected]> --------- Co-authored-by: Big-Cir97 <[email protected]> Co-authored-by: dae won <[email protected]> Co-authored-by: yybmion <[email protected]> Co-authored-by: yoobin_mion <[email protected]> Co-authored-by: yybmion <[email protected]>
* refactor: ChatQueryService 리팩토링 * feat: 일급 컬렉션 Chats 생성 및 캡슐화 - List<Chat>과 관련된 로직을 캡슐화한다. - Cursor 관련 로직을 캡슐화한다. * refactor: jpql로 수정 * refactor: 도메인 로직 캡슐화 * feat: 인덱스 추가 - 사용자 입장 시 agoraId와 userId로 조회하므로, 이 두 필드에 대한 복합 인덱스를 생성한다. - 사용자 퇴장시 sessionId로 조회하므로 단일 인덱스를 생성한다. * refactor: ChatContent VO 생성 - 채팅 내용 관련 로직 캡슐화를 위해 값 객체를 생성한다. * test: Chat 도메인 테스트 작성 * test: ChatContent 테스트 작성 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * chore: jacoco 추가 - 테스트 커버리지 확인용으로 jacoco를 추가하였다. - coverage rule은 우선 주석처리해두었다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * chore: .gitignore에 data.sql 추가 - test db 데이터를 위한 data.sql 추가 * test: 채팅방 조회 통합테스트 작성 * fix: merge bug 해결 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * docs: Test용 Security Config에 주석 추가 * fix: 에러 코드 적절하게 수정 * test: 아고라 인증 api 통합 테스트 작성 * refactor: AgoraService 리팩토링 * rename: TestDoubleFactory 패키지 이동 * refactor: 리뷰 피드백 반영 * refactor: 초기화 로직 메서드로 분리 * refactor: 접근 제어자 변경 - 필드, 메서드 접근제어자 protected로 변경 - 추상 클래스로 선언하여 인스턴스화 방지 * refactor: 리뷰 피드백 반영 * refactor: TestDoubleFactory 메서드 static import * [#141] chore: logback xml 추가 * [#142] chore: logback 수정 * [#142] chore: aop 의존성 추가 * [#142] feat: 요청 로깅 aspect 추가 * 아고라 테스트 추가 (#143) * [#-] test: 아고라 도메인 테스트 코드 추가 * [#-] test: agora query repository test 추가 * [#-] refactor: limit size 변경 * [#-] test: agroa open api test 추가 * [#-] test: agora 생성 통합 test 추가 * [#-] test: agora 참가 통합 테스트 추가 * [#136] test: pr 변경사항 반영 * 응답 형식 변경 및 테스트 코드 수정 (#147) * [#146] refactor: response message 수정 - ErrorResponse 클래스의 message type Object로 변경 * [#146] test: 통합 테스트 응답 수정 - response message type 변경 (string -> json) * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]feat: AgoraVote 통합 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]:매직넘버 처리 * [#95] refactor: agora 조회 쿼리 수정 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: 리뷰 반영 리팩토링 * 채팅 전송 �websocket 테스트 코드 작성 (#148) * fix: objectMapper 의존성 주입되도록 변경 * fix: 로깅시 웹소켓 처리하지 못하는 문제 해결 * feat: 웹소켓 핸들러 로깅 찍기 - 디버깅시 더 자세한 정보를 얻기 위해 info, warn, error 레벨의 로깅을 작성했다. * fix: 종료된 아고라 조회시 예외 발생하지 않도록 수정 - 기존 코드는 종료된 아고라를 다시 종료하므로 AgoraStatus Transition 에러가 발생했다. * test: 웹소켓 통합 테스트 base 클래스 작성 * refactor: 예외 메세지 대문자로 시작하도록 변경 * rename: 메서드명 수정 - 테스트 설정에서 CustomUserDetailsService와 관련이 있으므로 TestCustomUserDetailsServiceConfig로 메서드명을 수정한다. * refactor: 반환 메세지 제네릭으로 수정 - 반환 메세지를 제네릭으로 수정하여 범용성을 높인다. * rename: 메서드 명 변경 * test: 채팅 전송 웹소켓 테스트 작성 * refactor: 코드 리뷰 반영 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * [#152]feat: 아고라 멤버 입장시 메시지 알림 * [#152]feat: 입장 아고라멤버 알림 수정 및 퇴장 아고라멤버 알림 구현 * [#152] 아고라 입장/퇴장 메시지 알림 생성 테스트코드 작성 * [#]: 비속어 필터 1차 구현(수정 필요) * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * [#152]: 아고라 재입장 로직 수정 및 키워드와 카테고리 응답 값 추가 * [#152]: 입장/퇴장 알림 chat MessageMapping 로직 삭제 * [#152]: 필요없는 줄 삭제 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 * [#152]refactor: 아고라 퇴장 테스크 코드 작성 및 몇몇 로직 수정 아고라 퇴장 테스트코드를 작성하고 1. reconnectThreshold 시간을 5초에서 10초로 수정 2. AgoraService에서 agoraMember 호출 메서드를 변경(findValidAgoraMember-> findAgoraMemberByAgoraIdAndMemberId) 3. 줄바꿈 * Dev rebased (#161) * Dev -> Main (#159) * refactor: ChatQueryService 리팩토링 * feat: 일급 컬렉션 Chats 생성 및 캡슐화 - List<Chat>과 관련된 로직을 캡슐화한다. - Cursor 관련 로직을 캡슐화한다. * refactor: jpql로 수정 * refactor: 도메인 로직 캡슐화 * feat: 인덱스 추가 - 사용자 입장 시 agoraId와 userId로 조회하므로, 이 두 필드에 대한 복합 인덱스를 생성한다. - 사용자 퇴장시 sessionId로 조회하므로 단일 인덱스를 생성한다. * refactor: ChatContent VO 생성 - 채팅 내용 관련 로직 캡슐화를 위해 값 객체를 생성한다. * test: Chat 도메인 테스트 작성 * test: ChatContent 테스트 작성 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * chore: jacoco 추가 - 테스트 커버리지 확인용으로 jacoco를 추가하였다. - coverage rule은 우선 주석처리해두었다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * chore: .gitignore에 data.sql 추가 - test db 데이터를 위한 data.sql 추가 * test: 채팅방 조회 통합테스트 작성 * fix: merge bug 해결 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * docs: Test용 Security Config에 주석 추가 * fix: 에러 코드 적절하게 수정 * test: 아고라 인증 api 통합 테스트 작성 * refactor: AgoraService 리팩토링 * rename: TestDoubleFactory 패키지 이동 * refactor: 리뷰 피드백 반영 * refactor: 초기화 로직 메서드로 분리 * refactor: 접근 제어자 변경 - 필드, 메서드 접근제어자 protected로 변경 - 추상 클래스로 선언하여 인스턴스화 방지 * refactor: 리뷰 피드백 반영 * refactor: TestDoubleFactory 메서드 static import * [#141] chore: logback xml 추가 * [#142] chore: logback 수정 * [#142] chore: aop 의존성 추가 * [#142] feat: 요청 로깅 aspect 추가 * 아고라 테스트 추가 (#143) * [#-] test: 아고라 도메인 테스트 코드 추가 * [#-] test: agora query repository test 추가 * [#-] refactor: limit size 변경 * [#-] test: agroa open api test 추가 * [#-] test: agora 생성 통합 test 추가 * [#-] test: agora 참가 통합 테스트 추가 * [#136] test: pr 변경사항 반영 * 응답 형식 변경 및 테스트 코드 수정 (#147) * [#146] refactor: response message 수정 - ErrorResponse 클래스의 message type Object로 변경 * [#146] test: 통합 테스트 응답 수정 - response message type 변경 (string -> json) * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]feat: AgoraVote 통합 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]:매직넘버 처리 * [#95] refactor: agora 조회 쿼리 수정 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: 리뷰 반영 리팩토링 * 채팅 전송 �websocket 테스트 코드 작성 (#148) * fix: objectMapper 의존성 주입되도록 변경 * fix: 로깅시 웹소켓 처리하지 못하는 문제 해결 * feat: 웹소켓 핸들러 로깅 찍기 - 디버깅시 더 자세한 정보를 얻기 위해 info, warn, error 레벨의 로깅을 작성했다. * fix: 종료된 아고라 조회시 예외 발생하지 않도록 수정 - 기존 코드는 종료된 아고라를 다시 종료하므로 AgoraStatus Transition 에러가 발생했다. * test: 웹소켓 통합 테스트 base 클래스 작성 * refactor: 예외 메세지 대문자로 시작하도록 변경 * rename: 메서드명 수정 - 테스트 설정에서 CustomUserDetailsService와 관련이 있으므로 TestCustomUserDetailsServiceConfig로 메서드명을 수정한다. * refactor: 반환 메세지 제네릭으로 수정 - 반환 메세지를 제네릭으로 수정하여 범용성을 높인다. * rename: 메서드 명 변경 * test: 채팅 전송 웹소켓 테스트 작성 * refactor: 코드 리뷰 반영 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * test: 채팅방 조회 통합테스트 작성 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * rename: TestDoubleFactory 패키지 이동 * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 --------- Co-authored-by: Mint <[email protected]> Co-authored-by: Mint <[email protected]> Co-authored-by: yybmion <[email protected]> Co-authored-by: yoobin_mion <[email protected]> * Revert "Dev -> Main (#159)" (#160) This reverts commit b33211628fe0c0445bcb7c083d6897daae55de0d. * refactor: 도메인 로직 캡슐화 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * test: 채팅방 조회 통합테스트 작성 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * rename: TestDoubleFactory 패키지 이동 * refactor: 리뷰 피드백 반영 * refactor: TestDoubleFactory 메서드 static import * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 --------- Co-authored-by: Mint <[email protected]> Co-authored-by: Mint <[email protected]> Co-authored-by: yybmion <[email protected]> Co-authored-by: yoobin_mion <[email protected]> * Revert "Dev rebased (#161)" (#162) This reverts commit 8121712c5d493b907b528bd5b0ec640e17b3dd23. * [#152]refactor: 리뷰 반영 * [#152]refactor: 채팅메타정보 추가 및 updateDisconnectTime 로직 수정 기존에는 채팅 메타정보에 나가는지 들어오는지에 대한 정보가 없었지만, disconnectTime 유무로 판단할 수 있기에 프론트에게 disconnectTime을 추가해서 넘겨주었다. 또한 네트워크 불안정과 같은 비정상적인 소켓 연결끊김에도 disconnectTime 로직을 추가하였는데 더티체킹이 불가능하다고 판단하여 직접 save하여 저장해주었다. * 채팅 반응하기 기능 구현 (#164) * feat: 채팅 리액션 기능 구현 - Reaction : 리액션 enum class - 웹소켓으로 구현하여 실시간 조회 가능 - 응답은 EnumMap 자료구조 이용 검증 코드 - agoraId가 유효한지 검증 - 토론에 참여한 유저인지 검증 로직 - 자신의 채팅에는 리액션 추가 못하도록 함 - 이미 똑같은 리액션을 보냈을 경우 취소함 - 새로운 리액션일 경우 저장 * refactor: 채팅 반응하기 리팩토링 - 필요없는 Auditing 필드 제거 - 초기화 최적화(static 블록) * feat: 웹소켓 검증 예외 추가 * test: 리액션 생성 테스트 작성 * refactor: 리뷰 반영 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * [#167]feat: 비속어 필터 기능 개발 아호코라식 알고리즘(트라이 자료구조)로 처음 비속어 문자를 세팅하고난 이후 재사용을 통해 성능을 개선시켰다. 소켓을 통해 채팅을 보내기 전에 비속어 필터 api를 거쳐 비속어가 존재한다면 해당 비속어의 index를 응답한다. 존재하지 않는다면 200ok응답으로 소켓을 통해 정상적으로 채팅이 전송된다. * [#167]Refactor: 프론트요구사항 반영 및 테스트코드 작성 채팅 메타 정보와 exit api 응답값의 agoraId필드값을 삭제 Refresh-Token cookie 이름을 ATKN으로 변경 비속어 필터 테스트코드 작성 * [#167]Refactor: 테스트 코드내용 추가 비속어가 포함되어있지 않은 경우 테스트 코드 추가 * [#167]refactor: 리뷰 반영 BadWordResponse 응답 안에 비속어 여부(boolean)를 포함하여 반환하게 수정하였다. 이외에는 자잘한 리뷰 변경사항 적용. * [#167]refactor: 포맷팅 및 badword 엔티티 수정 * [#168] feat: thumbnail 도메인 추가 (#170) * �dev 충돌 해결 (#174) * Dev-> Main (#151) * refactor: ChatQueryService 리팩토링 * feat: 일급 컬렉션 Chats 생성 및 캡슐화 - List<Chat>과 관련된 로직을 캡슐화한다. - Cursor 관련 로직을 캡슐화한다. * refactor: jpql로 수정 * refactor: 도메인 로직 캡슐화 * feat: 인덱스 추가 - 사용자 입장 시 agoraId와 userId로 조회하므로, 이 두 필드에 대한 복합 인덱스를 생성한다. - 사용자 퇴장시 sessionId로 조회하므로 단일 인덱스를 생성한다. * refactor: ChatContent VO 생성 - 채팅 내용 관련 로직 캡슐화를 위해 값 객체를 생성한다. * test: Chat 도메인 테스트 작성 * test: ChatContent 테스트 작성 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * chore: jacoco 추가 - 테스트 커버리지 확인용으로 jacoco를 추가하였다. - coverage rule은 우선 주석처리해두었다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * chore: .gitignore에 data.sql 추가 - test db 데이터를 위한 data.sql 추가 * test: 채팅방 조회 통합테스트 작성 * fix: merge bug 해결 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * docs: Test용 Security Config에 주석 추가 * fix: 에러 코드 적절하게 수정 * test: 아고라 인증 api 통합 테스트 작성 * refactor: AgoraService 리팩토링 * rename: TestDoubleFactory 패키지 이동 * refactor: 리뷰 피드백 반영 * refactor: 초기화 로직 메서드로 분리 * refactor: 접근 제어자 변경 - 필드, 메서드 접근제어자 protected로 변경 - 추상 클래스로 선언하여 인스턴스화 방지 * refactor: 리뷰 피드백 반영 * refactor: TestDoubleFactory 메서드 static import * [#141] chore: logback xml 추가 * [#142] chore: logback 수정 * [#142] chore: aop 의존성 추가 * [#142] feat: 요청 로깅 aspect 추가 * 아고라 테스트 추가 (#143) * [#-] test: 아고라 도메인 테스트 코드 추가 * [#-] test: agora query repository test 추가 * [#-] refactor: limit size 변경 * [#-] test: agroa open api test 추가 * [#-] test: agora 생성 통합 test 추가 * [#-] test: agora 참가 통합 테스트 추가 * [#136] test: pr 변경사항 반영 * 응답 형식 변경 및 테스트 코드 수정 (#147) * [#146] refactor: response message 수정 - ErrorResponse 클래스의 message type Object로 변경 * [#146] test: 통합 테스트 응답 수정 - response message type 변경 (string -> json) * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]feat: AgoraVote 통합 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]:매직넘버 처리 * [#95] refactor: agora 조회 쿼리 수정 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: 리뷰 반영 리팩토링 * 채팅 전송 �websocket 테스트 코드 작성 (#148) * fix: objectMapper 의존성 주입되도록 변경 * fix: 로깅시 웹소켓 처리하지 못하는 문제 해결 * feat: 웹소켓 핸들러 로깅 찍기 - 디버깅시 더 자세한 정보를 얻기 위해 info, warn, error 레벨의 로깅을 작성했다. * fix: 종료된 아고라 조회시 예외 발생하지 않도록 수정 - 기존 코드는 종료된 아고라를 다시 종료하므로 AgoraStatus Transition 에러가 발생했다. * test: 웹소켓 통합 테스트 base 클래스 작성 * refactor: 예외 메세지 대문자로 시작하도록 변경 * rename: 메서드명 수정 - 테스트 설정에서 CustomUserDetailsService와 관련이 있으므로 TestCustomUserDetailsServiceConfig로 메서드명을 수정한다. * refactor: 반환 메세지 제네릭으로 수정 - 반환 메세지를 제네릭으로 수정하여 범용성을 높인다. * rename: 메서드 명 변경 * test: 채팅 전송 웹소켓 테스트 작성 * refactor: 코드 리뷰 반영 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 --------- Co-authored-by: Big-Cir97 <[email protected]> Co-authored-by: dae won <[email protected]> Co-authored-by: yybmion <[email protected]> Co-authored-by: yoobin_mion <[email protected]> * Dev -> Main (#159) * refactor: ChatQueryService 리팩토링 * feat: 일급 컬렉션 Chats 생성 및 캡슐화 - List<Chat>과 관련된 로직을 캡슐화한다. - Cursor 관련 로직을 캡슐화한다. * refactor: jpql로 수정 * refactor: 도메인 로직 캡슐화 * feat: 인덱스 추가 - 사용자 입장 시 agoraId와 userId로 조회하므로, 이 두 필드에 대한 복합 인덱스를 생성한다. - 사용자 퇴장시 sessionId로 조회하므로 단일 인덱스를 생성한다. * refactor: ChatContent VO 생성 - 채팅 내용 관련 로직 캡슐화를 위해 값 객체를 생성한다. * test: Chat 도메인 테스트 작성 * test: ChatContent 테스트 작성 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * chore: jacoco 추가 - 테스트 커버리지 확인용으로 jacoco를 추가하였다. - coverage rule은 우선 주석처리해두었다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * chore: .gitignore에 data.sql 추가 - test db 데이터를 위한 data.sql 추가 * test: 채팅방 조회 통합테스트 작성 * fix: merge bug 해결 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * docs: Test용 Security Config에 주석 추가 * fix: 에러 코드 적절하게 수정 * test: 아고라 인증 api 통합 테스트 작성 * refactor: AgoraService 리팩토링 * rename: TestDoubleFactory 패키지 이동 * refactor: 리뷰 피드백 반영 * refactor: 초기화 로직 메서드로 분리 * refactor: 접근 제어자 변경 - 필드, 메서드 접근제어자 protected로 변경 - 추상 클래스로 선언하여 인스턴스화 방지 * refactor: 리뷰 피드백 반영 * refactor: TestDoubleFactory 메서드 static import * [#141] chore: logback xml 추가 * [#142] chore: logback 수정 * [#142] chore: aop 의존성 추가 * [#142] feat: 요청 로깅 aspect 추가 * 아고라 테스트 추가 (#143) * [#-] test: 아고라 도메인 테스트 코드 추가 * [#-] test: agora query repository test 추가 * [#-] refactor: limit size 변경 * [#-] test: agroa open api test 추가 * [#-] test: agora 생성 통합 test 추가 * [#-] test: agora 참가 통합 테스트 추가 * [#136] test: pr 변경사항 반영 * 응답 형식 변경 및 테스트 코드 수정 (#147) * [#146] refactor: response message 수정 - ErrorResponse 클래스의 message type Object로 변경 * [#146] test: 통합 테스트 응답 수정 - response message type 변경 (string -> json) * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]feat: AgoraVote 통합 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]:매직넘버 처리 * [#95] refactor: agora 조회 쿼리 수정 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: 리뷰 반영 리팩토링 * 채팅 전송 �websocket 테스트 코드 작성 (#148) * fix: objectMapper 의존성 주입되도록 변경 * fix: 로깅시 웹소켓 처리하지 못하는 문제 해결 * feat: 웹소켓 핸들러 로깅 찍기 - 디버깅시 더 자세한 정보를 얻기 위해 info, warn, error 레벨의 로깅을 작성했다. * fix: 종료된 아고라 조회시 예외 발생하지 않도록 수정 - 기존 코드는 종료된 아고라를 다시 종료하므로 AgoraStatus Transition 에러가 발생했다. * test: 웹소켓 통합 테스트 base 클래스 작성 * refactor: 예외 메세지 대문자로 시작하도록 변경 * rename: 메서드명 수정 - 테스트 설정에서 CustomUserDetailsService와 관련이 있으므로 TestCustomUserDetailsServiceConfig로 메서드명을 수정한다. * refactor: 반환 메세지 제네릭으로 수정 - 반환 메세지를 제네릭으로 수정하여 범용성을 높인다. * rename: 메서드 명 변경 * test: 채팅 전송 웹소켓 테스트 작성 * refactor: 코드 리뷰 반영 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * test: 채팅방 조회 통합테스트 작성 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * rename: TestDoubleFactory 패키지 이동 * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 --------- Co-authored-by: Mint <[email protected]> Co-authored-by: Mint <[email protected]> Co-authored-by: yybmion <[email protected]> Co-authored-by: yoobin_mion <[email protected]> * Revert "Dev -> Main (#159)" (#160) This reverts commit b33211628fe0c0445bcb7c083d6897daae55de0d. --------- Co-authored-by: Big-Cir97 <[email protected]> Co-authored-by: dae won <[email protected]> Co-authored-by: yybmion <[email protected]> Co-authored-by: yoobin_mion <[email protected]> * �feat: OAuth2 소셜 로그인 기능 구현 (#173) * feat: 채팅 리액션 기능 구현 - Reaction : 리액션 enum class - 웹소켓으로 구현하여 실시간 조회 가능 - 응답은 EnumMap 자료구조 이용 검증 코드 - agoraId가 유효한지 검증 - 토론에 참여한 유저인지 검증 로직 - 자신의 채팅에는 리액션 추가 못하도록 함 - 이미 똑같은 리액션을 보냈을 경우 취소함 - 새로운 리액션일 경우 저장 * rename: User -> Member 이름 변경 * rename: CustomUserDetails, CustomUserDetailsService 이동 - CustomUserDetails 는 domain으로 이동 - CustomUserDetailsService 는 service로 이동 * feat: 채팅 조회 응답에 리액션 추가 * refactor: 설정값 주입시 @Value 대신 ConfigurationProperties 사용 - 타입 안정성이 높아진다. (컴파일 시점 에러 발생) - 설정을 클래스로 구조화할 수 있다. * feat: 종료된 아고라 채팅 전송 예외 처리 - 종료된 아고라일 경우 채팅 전송시 예외 발생하도록 한다. * refactor: 리액션 응답 수정 - 모든 리액션이 반응에 포함되도록 수정 - 없는 리액션도 0으로 추가하여 응답의 일관성을 높임 * refactor: 쿠키 관련 로직 모으기 - CookieUtils로 모아서 유틸리티 클래스로 작성 * feat: OAuth 소셜 로그인 구현 - 기존 로그인 로직에 OAuth 소셜 로그인 가능하도록 확장 - @ConfigurationProperties를 사용한 타입 안전한 설정 * refactor: 인증 로직 수정 - refresh token의 id를 문자열로 변경하여 구글 OAuth id와 같이 큰 숫자도 저장할 수 있도록 수정 - Member에 Provider 필드 생성하여 OAuth 확장하기 - 테스트 코드 추가 및 수정 * feat: redis 설정 - access 토큰 관리는 redis에서 수행 * fix: OAuth id를 Object로 받도록 수정 - 구글은 String 타입으로, 카카오는 Long(숫자타입)으로 전달하므로 Object로 받아 문자열로 변환한다. * fix: 충돌 해결 * refactor: 코드 리뷰 반영 * Dev -> Main (#158) (#177) * refactor: ChatQueryService 리팩토링 * feat: 일급 컬렉션 Chats 생성 및 캡슐화 - List<Chat>과 관련된 로직을 캡슐화한다. - Cursor 관련 로직을 캡슐화한다. * refactor: jpql로 수정 * refactor: 도메인 로직 캡슐화 * feat: 인덱스 추가 - 사용자 입장 시 agoraId와 userId로 조회하므로, 이 두 필드에 대한 복합 인덱스를 생성한다. - 사용자 퇴장시 sessionId로 조회하므로 단일 인덱스를 생성한다. * refactor: ChatContent VO 생성 - 채팅 내용 관련 로직 캡슐화를 위해 값 객체를 생성한다. * test: Chat 도메인 테스트 작성 * test: ChatContent 테스트 작성 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * chore: jacoco 추가 - 테스트 커버리지 확인용으로 jacoco를 추가하였다. - coverage rule은 우선 주석처리해두었다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * chore: .gitignore에 data.sql 추가 - test db 데이터를 위한 data.sql 추가 * test: 채팅방 조회 통합테스트 작성 * fix: merge bug 해결 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * docs: Test용 Security Config에 주석 추가 * fix: 에러 코드 적절하게 수정 * test: 아고라 인증 api 통합 테스트 작성 * refactor: AgoraService 리팩토링 * rename: TestDoubleFactory 패키지 이동 * refactor: 리뷰 피드백 반영 * refactor: 초기화 로직 메서드로 분리 * refactor: 접근 제어자 변경 - 필드, 메서드 접근제어자 protected로 변경 - 추상 클래스로 선언하여 인스턴스화 방지 * refactor: 리뷰 피드백 반영 * refactor: TestDoubleFactory 메서드 static import * [#141] chore: logback xml 추가 * [#142] chore: logback 수정 * [#142] chore: aop 의존성 추가 * [#142] feat: 요청 로깅 aspect 추가 * 아고라 테스트 추가 (#143) * [#-] test: 아고라 도메인 테스트 코드 추가 * [#-] test: agora query repository test 추가 * [#-] refactor: limit size 변경 * [#-] test: agroa open api test 추가 * [#-] test: agora 생성 통합 test 추가 * [#-] test: agora 참가 통합 테스트 추가 * [#136] test: pr 변경사항 반영 * 응답 형식 변경 및 테스트 코드 수정 (#147) * [#146] refactor: response message 수정 - ErrorResponse 클래스의 message type Object로 변경 * [#146] test: 통합 테스트 응답 수정 - response message type 변경 (string -> json) * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]feat: AgoraVote 통합 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]:매직넘버 처리 * [#95] refactor: agora 조회 쿼리 수정 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: 리뷰 반영 리팩토링 * 채팅 전송 �websocket 테스트 코드 작성 (#148) * fix: objectMapper 의존성 주입되도록 변경 * fix: 로깅시 웹소켓 처리하지 못하는 문제 해결 * feat: 웹소켓 핸들러 로깅 찍기 - 디버깅시 더 자세한 정보를 얻기 위해 info, warn, error 레벨의 로깅을 작성했다. * fix: 종료된 아고라 조회시 예외 발생하지 않도록 수정 - 기존 코드는 종료된 아고라를 다시 종료하므로 AgoraStatus Transition 에러가 발생했다. * test: 웹소켓 통합 테스트 base 클래스 작성 * refactor: 예외 메세지 대문자로 시작하도록 변경 * rename: 메서드명 수정 - 테스트 설정에서 CustomUserDetailsService와 관련이 있으므로 TestCustomUserDetailsServiceConfig로 메서드명을 수정한다. * refactor: 반환 메세지 제네릭으로 수정 - 반환 메세지를 제네릭으로 수정하여 범용성을 높인다. * rename: 메서드 명 변경 * test: 채팅 전송 웹소켓 테스트 작성 * refactor: 코드 리뷰 반영 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * [#152]feat: 아고라 멤버 입장시 메시지 알림 * [#152]feat: 입장 아고라멤버 알림 수정 및 퇴장 아고라멤버 알림 구현 * [#152] 아고라 입장/퇴장 메시지 알림 생성 테스트코드 작성 * [#]: 비속어 필터 1차 구현(수정 필요) * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * [#152]: 아고라 재입장 로직 수정 및 키워드와 카테고리 응답 값 추가 * [#152]: 입장/퇴장 알림 chat MessageMapping 로직 삭제 * [#152]: 필요없는 줄 삭제 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 * [#152]refactor: 아고라 퇴장 테스크 코드 작성 및 몇몇 로직 수정 아고라 퇴장 테스트코드를 작성하고 1. reconnectThreshold 시간을 5초에서 10초로 수정 2. AgoraService에서 agoraMember 호출 메서드를 변경(findValidAgoraMember-> findAgoraMemberByAgoraIdAndMemberId) 3. 줄바꿈 * Dev rebased (#161) * Dev -> Main (#159) * refactor: ChatQueryService 리팩토링 * feat: 일급 컬렉션 Chats 생성 및 캡슐화 - List<Chat>과 관련된 로직을 캡슐화한다. - Cursor 관련 로직을 캡슐화한다. * refactor: jpql로 수정 * refactor: 도메인 로직 캡슐화 * feat: 인덱스 추가 - 사용자 입장 시 agoraId와 userId로 조회하므로, 이 두 필드에 대한 복합 인덱스를 생성한다. - 사용자 퇴장시 sessionId로 조회하므로 단일 인덱스를 생성한다. * refactor: ChatContent VO 생성 - 채팅 내용 관련 로직 캡슐화를 위해 값 객체를 생성한다. * test: Chat 도메인 테스트 작성 * test: ChatContent 테스트 작성 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * chore: jacoco 추가 - 테스트 커버리지 확인용으로 jacoco를 추가하였다. - coverage rule은 우선 주석처리해두었다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * chore: .gitignore에 data.sql 추가 - test db 데이터를 위한 data.sql 추가 * test: 채팅방 조회 통합테스트 작성 * fix: merge bug 해결 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * docs: Test용 Security Config에 주석 추가 * fix: 에러 코드 적절하게 수정 * test: 아고라 인증 api 통합 테스트 작성 * refactor: AgoraService 리팩토링 * rename: TestDoubleFactory 패키지 이동 * refactor: 리뷰 피드백 반영 * refactor: 초기화 로직 메서드로 분리 * refactor: 접근 제어자 변경 - 필드, 메서드 접근제어자 protected로 변경 - 추상 클래스로 선언하여 인스턴스화 방지 * refactor: 리뷰 피드백 반영 * refactor: TestDoubleFactory 메서드 static import * [#141] chore: logback xml 추가 * [#142] chore: logback 수정 * [#142] chore: aop 의존성 추가 * [#142] feat: 요청 로깅 aspect 추가 * 아고라 테스트 추가 (#143) * [#-] test: 아고라 도메인 테스트 코드 추가 * [#-] test: agora query repository test 추가 * [#-] refactor: limit size 변경 * [#-] test: agroa open api test 추가 * [#-] test: agora 생성 통합 test 추가 * [#-] test: agora 참가 통합 테스트 추가 * [#136] test: pr 변경사항 반영 * 응답 형식 변경 및 테스트 코드 수정 (#147) * [#146] refactor: response message 수정 - ErrorResponse 클래스의 message type Object로 변경 * [#146] test: 통합 테스트 응답 수정 - response message type 변경 (string -> json) * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]feat: AgoraVote 통합 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]:매직넘버 처리 * [#95] refactor: agora 조회 쿼리 수정 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: 리뷰 반영 리팩토링 * 채팅 전송 �websocket 테스트 코드 작성 (#148) * fix: objectMapper 의존성 주입되도록 변경 * fix: 로깅시 웹소켓 처리하지 못하는 문제 해결 * feat: 웹소켓 핸들러 로깅 찍기 - 디버깅시 더 자세한 정보를 얻기 위해 info, warn, error 레벨의 로깅을 작성했다. * fix: 종료된 아고라 조회시 예외 발생하지 않도록 수정 - 기존 코드는 종료된 아고라를 다시 종료하므로 AgoraStatus Transition 에러가 발생했다. * test: 웹소켓 통합 테스트 base 클래스 작성 * refactor: 예외 메세지 대문자로 시작하도록 변경 * rename: 메서드명 수정 - 테스트 설정에서 CustomUserDetailsService와 관련이 있으므로 TestCustomUserDetailsServiceConfig로 메서드명을 수정한다. * refactor: 반환 메세지 제네릭으로 수정 - 반환 메세지를 제네릭으로 수정하여 범용성을 높인다. * rename: 메서드 명 변경 * test: 채팅 전송 웹소켓 테스트 작성 * refactor: 코드 리뷰 반영 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * test: 채팅방 조회 통합테스트 작성 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * rename: TestDoubleFactory 패키지 이동 * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 --------- * Revert "Dev -> Main (#159)" (#160) This reverts commit b33211628fe0c0445bcb7c083d6897daae55de0d. * refactor: 도메인 로직 캡슐화 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * test: 채팅방 조회 통합테스트 작성 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * rename: TestDoubleFactory 패키지 이동 * refactor: 리뷰 피드백 반영 * refactor: TestDoubleFactory 메서드 static import * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 --------- * Revert "Dev rebased (#161)" (#162) This reverts commit 8121712c5d493b907b528bd5b0ec640e17b3dd23. * [#152]refactor: 리뷰 반영 * [#152]refactor: 채팅메타정보 추가 및 updateDisconnectTime 로직 수정 기존에는 채팅 메타정보에 나가는지 들어오는지에 대한 정보가 없었지만, disconnectTime 유무로 판단할 수 있기에 프론트에게 disconnectTime을 추가해서 넘겨주었다. 또한 네트워크 불안정과 같은 비정상적인 소켓 연결끊김에도 disconnectTime 로직을 추가하였는데 더티체킹이 불가능하다고 판단하여 직접 save하여 저장해주었다. * 채팅 반응하기 기능 구현 (#164) * feat: 채팅 리액션 기능 구현 - Reaction : 리액션 enum class - 웹소켓으로 구현하여 실시간 조회 가능 - 응답은 EnumMap 자료구조 이용 검증 코드 - agoraId가 유효한지 검증 - 토론에 참여한 유저인지 검증 로직 - 자신의 채팅에는 리액션 추가 못하도록 함 - 이미 똑같은 리액션을 보냈을 경우 취소함 - 새로운 리액션일 경우 저장 * refactor: 채팅 반응하기 리팩토링 - 필요없는 Auditing 필드 제거 - 초기화 최적화(static 블록) * feat: 웹소켓 검증 예외 추가 * test: 리액션 생성 테스트 작성 * refactor: 리뷰 반영 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * [#167]feat: 비속어 필터 기능 개발 아호코라식 알고리즘(트라이 자료구조)로 처음 비속어 문자를 세팅하고난 이후 재사용을 통해 성능을 개선시켰다. 소켓을 통해 채팅을 보내기 전에 비속어 필터 api를 거쳐 비속어가 존재한다면 해당 비속어의 index를 응답한다. 존재하지 않는다면 200ok응답으로 소켓을 통해 정상적으로 채팅이 전송된다. * [#167]Refactor: 프론트요구사항 반영 및 테스트코드 작성 채팅 메타 정보와 exit api 응답값의 agoraId필드값을 삭제 Refresh-Token cookie 이름을 ATKN으로 변경 비속어 필터 테스트코드 작성 * [#167]Refactor: 테스트 코드내용 추가 비속어가 포함되어있지 않은 경우 테스트 코드 추가 * [#167]refactor: 리뷰 반영 BadWordResponse 응답 안에 비속어 여부(boolean)를 포함하여 반환하게 수정하였다. 이외에는 자잘한 리뷰 변경사항 적용. * [#167]refactor: 포맷팅 및 badword 엔티티 수정 * [#168] feat: thumbnail 도메인 추가 (#170) * �dev 충돌 해결 (#174) * Dev-> Main (#151) * refactor: ChatQueryService 리팩토링 * feat: 일급 컬렉션 Chats 생성 및 캡슐화 - List<Chat>과 관련된 로직을 캡슐화한다. - Cursor 관련 로직을 캡슐화한다. * refactor: jpql로 수정 * refactor: 도메인 로직 캡슐화 * feat: 인덱스 추가 - 사용자 입장 시 agoraId와 userId로 조회하므로, 이 두 필드에 대한 복합 인덱스를 생성한다. - 사용자 퇴장시 sessionId로 조회하므로 단일 인덱스를 생성한다. * refactor: ChatContent VO 생성 - 채팅 내용 관련 로직 캡슐화를 위해 값 객체를 생성한다. * test: Chat 도메인 테스트 작성 * test: ChatContent 테스트 작성 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * chore: jacoco 추가 - 테스트 커버리지 확인용으로 jacoco를 추가하였다. - coverage rule은 우선 주석처리해두었다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * chore: .gitignore에 data.sql 추가 - test db 데이터를 위한 data.sql 추가 * test: 채팅방 조회 통합테스트 작성 * fix: merge bug 해결 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * docs: Test용 Security Config에 주석 추가 * fix: 에러 코드 적절하게 수정 * test: 아고라 인증 api 통합 테스트 작성 * refactor: AgoraService 리팩토링 * rename: TestDoubleFactory 패키지 이동 * refactor: 리뷰 피드백 반영 * refactor: 초기화 로직 메서드로 분리 * refactor: 접근 제어자 변경 - 필드, 메서드 접근제어자 protected로 변경 - 추상 클래스로 선언하여 인스턴스화 방지 * refactor: 리뷰 피드백 반영 * refactor: TestDoubleFactory 메서드 static import * [#141] chore: logback xml 추가 * [#142] chore: logback 수정 * [#142] chore: aop 의존성 추가 * [#142] feat: 요청 로깅 aspect 추가 * 아고라 테스트 추가 (#143) * [#-] test: 아고라 도메인 테스트 코드 추가 * [#-] test: agora query repository test 추가 * [#-] refactor: limit size 변경 * [#-] test: agroa open api test 추가 * [#-] test: agora 생성 통합 test 추가 * [#-] test: agora 참가 통합 테스트 추가 * [#136] test: pr 변경사항 반영 * 응답 형식 변경 및 테스트 코드 수정 (#147) * [#146] refactor: response message 수정 - ErrorResponse 클래스의 message type Object로 변경 * [#146] test: 통합 테스트 응답 수정 - response message type 변경 (string -> json) * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]feat: AgoraVote 통합 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]:매직넘버 처리 * [#95] refactor: agora 조회 쿼리 수정 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: 리뷰 반영 리팩토링 * 채팅 전송 �websocket 테스트 코드 작성 (#148) * fix: objectMapper 의존성 주입되도록 변경 * fix: 로깅시 웹소켓 처리하지 못하는 문제 해결 * feat: 웹소켓 핸들러 로깅 찍기 - 디버깅시 더 자세한 정보를 얻기 위해 info, warn, error 레벨의 로깅을 작성했다. * fix: 종료된 아고라 조회시 예외 발생하지 않도록 수정 - 기존 코드는 종료된 아고라를 다시 종료하므로 AgoraStatus Transition 에러가 발생했다. * test: 웹소켓 통합 테스트 base 클래스 작성 * refactor: 예외 메세지 대문자로 시작하도록 변경 * rename: 메서드명 수정 - 테스트 설정에서 CustomUserDetailsService와 관련이 있으므로 TestCustomUserDetailsServiceConfig로 메서드명을 수정한다. * refactor: 반환 메세지 제네릭으로 수정 - 반환 메세지를 제네릭으로 수정하여 범용성을 높인다. * rename: 메서드 명 변경 * test: 채팅 전송 웹소켓 테스트 작성 * refactor: 코드 리뷰 반영 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 --------- * Dev -> Main (#159) * refactor: ChatQueryService 리팩토링 * feat: 일급 컬렉션 Chats 생성 및 캡슐화 - List<Chat>과 관련된 로직을 캡슐화한다. - Cursor 관련 로직을 캡슐화한다. * refactor: jpql로 수정 * refactor: 도메인 로직 캡슐화 * feat: 인덱스 추가 - 사용자 입장 시 agoraId와 userId로 조회하므로, 이 두 필드에 대한 복합 인덱스를 생성한다. - 사용자 퇴장시 sessionId로 조회하므로 단일 인덱스를 생성한다. * refactor: ChatContent VO 생성 - 채팅 내용 관련 로직 캡슐화를 위해 값 객체를 생성한다. * test: Chat 도메인 테스트 작성 * test: ChatContent 테스트 작성 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * chore: jacoco 추가 - 테스트 커버리지 확인용으로 jacoco를 추가하였다. - coverage rule은 우선 주석처리해두었다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * chore: .gitignore에 data.sql 추가 - test db 데이터를 위한 data.sql 추가 * test: 채팅방 조회 통합테스트 작성 * fix: merge bug 해결 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * docs: Test용 Security Config에 주석 추가 * fix: 에러 코드 적절하게 수정 * test: 아고라 인증 api 통합 테스트 작성 * refactor: AgoraService 리팩토링 * rename: TestDoubleFactory 패키지 이동 * refactor: 리뷰 피드백 반영 * refactor: 초기화 로직 메서드로 분리 * refactor: 접근 제어자 변경 - 필드, 메서드 접근제어자 protected로 변경 - 추상 클래스로 선언하여 인스턴스화 방지 * refactor: 리뷰 피드백 반영 * refactor: TestDoubleFactory 메서드 static import * [#141] chore: logback xml 추가 * [#142] chore: logback 수정 * [#142] chore: aop 의존성 추가 * [#142] feat: 요청 로깅 aspect 추가 * 아고라 테스트 추가 (#143) * [#-] test: 아고라 도메인 테스트 코드 추가 * [#-] test: agora query repository test 추가 * [#-] refactor: limit size 변경 * [#-] test: agroa open api test 추가 * [#-] test: agora 생성 통합 test 추가 * [#-] test: agora 참가 통합 테스트 추가 * [#136] test: pr 변경사항 반영 * 응답 형식 변경 및 테스트 코드 수정 (#147) * [#146] refactor: response message 수정 - ErrorResponse 클래스의 message type Object로 변경 * [#146] test: 통합 테스트 응답 수정 - response message type 변경 (string -> json) * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]feat: AgoraVote 통합 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]:매직넘버 처리 * [#95] refactor: agora 조회 쿼리 수정 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: 리뷰 반영 리팩토링 * 채팅 전송 �websocket 테스트 코드 작성 (#148) * fix: objectMapper 의존성 주입되도록 변경 * fix: 로깅시 웹소켓 처리하지 못하는 문제 해결 * feat: 웹소켓 핸들러 로깅 찍기 - 디버깅시 더 자세한 정보를 얻기 위해 info, warn, error 레벨의 로깅을 작성했다. * fix: 종료된 아고라 조회시 예외 발생하지 않도록 수정 - 기존 코드는 종료된 아고라를 다시 종료하므로 AgoraStatus Transition 에러가 발생했다. * test: 웹소켓 통합 테스트 base 클래스 작성 * refactor: 예외 메세지 대문자로 시작하도록 변경 * rename: 메서드명 수정 - 테스트 설정에서 CustomUserDetailsService와 관련이 있으므로 TestCustomUserDetailsServiceConfig로 메서드명을 수정한다. * refactor: 반환 메세지 제네릭으로 수정 - 반환 메세지를 제네릭으로 수정하여 범용성을 높인다. * rename: 메서드 명 변경 * test: 채팅 전송 웹소켓 테스트 작성 * refactor: 코드 리뷰 반영 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * test: 채팅방 조회 통합테스트 작성 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * rename: TestDoubleFactory 패키지 이동 * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 --------- * Revert "Dev -> Main (#159)" (#160) This reverts commit b33211628fe0c0445bcb7c083d6897daae55de0d. --------- --------- Co-authored-by: dae won <[email protected]> Co-authored-by: yybmion <[email protected]> Co-authored-by: yoobin_mion <[email protected]> Co-authored-by: yybmion <[email protected]> --------- Co-authored-by: Big-Cir97 <[email protected]> Co-authored-by: dae won <[email protected]> Co-authored-by: yybmion <[email protected]> Co-authored-by: yoobin_mion <[email protected]> Co-authored-by: yybmion <[email protected]>
Can one of the admins verify this patch? |
Starlight258
approved these changes
Sep 22, 2024
Starlight258
added a commit
that referenced
this pull request
Sep 22, 2024
* Dev -> Main (#176) * refactor: ChatQueryService 리팩토링 * feat: 일급 컬렉션 Chats 생성 및 캡슐화 - List<Chat>과 관련된 로직을 캡슐화한다. - Cursor 관련 로직을 캡슐화한다. * refactor: jpql로 수정 * refactor: 도메인 로직 캡슐화 * feat: 인덱스 추가 - 사용자 입장 시 agoraId와 userId로 조회하므로, 이 두 필드에 대한 복합 인덱스를 생성한다. - 사용자 퇴장시 sessionId로 조회하므로 단일 인덱스를 생성한다. * refactor: ChatContent VO 생성 - 채팅 내용 관련 로직 캡슐화를 위해 값 객체를 생성한다. * test: Chat 도메인 테스트 작성 * test: ChatContent 테스트 작성 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * chore: jacoco 추가 - 테스트 커버리지 확인용으로 jacoco를 추가하였다. - coverage rule은 우선 주석처리해두었다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * chore: .gitignore에 data.sql 추가 - test db 데이터를 위한 data.sql 추가 * test: 채팅방 조회 통합테스트 작성 * fix: merge bug 해결 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * docs: Test용 Security Config에 주석 추가 * fix: 에러 코드 적절하게 수정 * test: 아고라 인증 api 통합 테스트 작성 * refactor: AgoraService 리팩토링 * rename: TestDoubleFactory 패키지 이동 * refactor: 리뷰 피드백 반영 * refactor: 초기화 로직 메서드로 분리 * refactor: 접근 제어자 변경 - 필드, 메서드 접근제어자 protected로 변경 - 추상 클래스로 선언하여 인스턴스화 방지 * refactor: 리뷰 피드백 반영 * refactor: TestDoubleFactory 메서드 static import * [#141] chore: logback xml 추가 * [#142] chore: logback 수정 * [#142] chore: aop 의존성 추가 * [#142] feat: 요청 로깅 aspect 추가 * 아고라 테스트 추가 (#143) * [#-] test: 아고라 도메인 테스트 코드 추가 * [#-] test: agora query repository test 추가 * [#-] refactor: limit size 변경 * [#-] test: agroa open api test 추가 * [#-] test: agora 생성 통합 test 추가 * [#-] test: agora 참가 통합 테스트 추가 * [#136] test: pr 변경사항 반영 * 응답 형식 변경 및 테스트 코드 수정 (#147) * [#146] refactor: response message 수정 - ErrorResponse 클래스의 message type Object로 변경 * [#146] test: 통합 테스트 응답 수정 - response message type 변경 (string -> json) * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]feat: AgoraVote 통합 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]:매직넘버 처리 * [#95] refactor: agora 조회 쿼리 수정 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: 리뷰 반영 리팩토링 * 채팅 전송 �websocket 테스트 코드 작성 (#148) * fix: objectMapper 의존성 주입되도록 변경 * fix: 로깅시 웹소켓 처리하지 못하는 문제 해결 * feat: 웹소켓 핸들러 로깅 찍기 - 디버깅시 더 자세한 정보를 얻기 위해 info, warn, error 레벨의 로깅을 작성했다. * fix: 종료된 아고라 조회시 예외 발생하지 않도록 수정 - 기존 코드는 종료된 아고라를 다시 종료하므로 AgoraStatus Transition 에러가 발생했다. * test: 웹소켓 통합 테스트 base 클래스 작성 * refactor: 예외 메세지 대문자로 시작하도록 변경 * rename: 메서드명 수정 - 테스트 설정에서 CustomUserDetailsService와 관련이 있으므로 TestCustomUserDetailsServiceConfig로 메서드명을 수정한다. * refactor: 반환 메세지 제네릭으로 수정 - 반환 메세지를 제네릭으로 수정하여 범용성을 높인다. * rename: 메서드 명 변경 * test: 채팅 전송 웹소켓 테스트 작성 * refactor: 코드 리뷰 반영 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * [#152]feat: 아고라 멤버 입장시 메시지 알림 * [#152]feat: 입장 아고라멤버 알림 수정 및 퇴장 아고라멤버 알림 구현 * [#152] 아고라 입장/퇴장 메시지 알림 생성 테스트코드 작성 * [#]: 비속어 필터 1차 구현(수정 필요) * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * [#152]: 아고라 재입장 로직 수정 및 키워드와 카테고리 응답 값 추가 * [#152]: 입장/퇴장 알림 chat MessageMapping 로직 삭제 * [#152]: 필요없는 줄 삭제 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 * [#152]refactor: 아고라 퇴장 테스크 코드 작성 및 몇몇 로직 수정 아고라 퇴장 테스트코드를 작성하고 1. reconnectThreshold 시간을 5초에서 10초로 수정 2. AgoraService에서 agoraMember 호출 메서드를 변경(findValidAgoraMember-> findAgoraMemberByAgoraIdAndMemberId) 3. 줄바꿈 * Dev rebased (#161) * Dev -> Main (#159) * refactor: ChatQueryService 리팩토링 * feat: 일급 컬렉션 Chats 생성 및 캡슐화 - List<Chat>과 관련된 로직을 캡슐화한다. - Cursor 관련 로직을 캡슐화한다. * refactor: jpql로 수정 * refactor: 도메인 로직 캡슐화 * feat: 인덱스 추가 - 사용자 입장 시 agoraId와 userId로 조회하므로, 이 두 필드에 대한 복합 인덱스를 생성한다. - 사용자 퇴장시 sessionId로 조회하므로 단일 인덱스를 생성한다. * refactor: ChatContent VO 생성 - 채팅 내용 관련 로직 캡슐화를 위해 값 객체를 생성한다. * test: Chat 도메인 테스트 작성 * test: ChatContent 테스트 작성 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * chore: jacoco 추가 - 테스트 커버리지 확인용으로 jacoco를 추가하였다. - coverage rule은 우선 주석처리해두었다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * chore: .gitignore에 data.sql 추가 - test db 데이터를 위한 data.sql 추가 * test: 채팅방 조회 통합테스트 작성 * fix: merge bug 해결 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * docs: Test용 Security Config에 주석 추가 * fix: 에러 코드 적절하게 수정 * test: 아고라 인증 api 통합 테스트 작성 * refactor: AgoraService 리팩토링 * rename: TestDoubleFactory 패키지 이동 * refactor: 리뷰 피드백 반영 * refactor: 초기화 로직 메서드로 분리 * refactor: 접근 제어자 변경 - 필드, 메서드 접근제어자 protected로 변경 - 추상 클래스로 선언하여 인스턴스화 방지 * refactor: 리뷰 피드백 반영 * refactor: TestDoubleFactory 메서드 static import * [#141] chore: logback xml 추가 * [#142] chore: logback 수정 * [#142] chore: aop 의존성 추가 * [#142] feat: 요청 로깅 aspect 추가 * 아고라 테스트 추가 (#143) * [#-] test: 아고라 도메인 테스트 코드 추가 * [#-] test: agora query repository test 추가 * [#-] refactor: limit size 변경 * [#-] test: agroa open api test 추가 * [#-] test: agora 생성 통합 test 추가 * [#-] test: agora 참가 통합 테스트 추가 * [#136] test: pr 변경사항 반영 * 응답 형식 변경 및 테스트 코드 수정 (#147) * [#146] refactor: response message 수정 - ErrorResponse 클래스의 message type Object로 변경 * [#146] test: 통합 테스트 응답 수정 - response message type 변경 (string -> json) * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]feat: AgoraVote 통합 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]:매직넘버 처리 * [#95] refactor: agora 조회 쿼리 수정 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: 리뷰 반영 리팩토링 * 채팅 전송 �websocket 테스트 코드 작성 (#148) * fix: objectMapper 의존성 주입되도록 변경 * fix: 로깅시 웹소켓 처리하지 못하는 문제 해결 * feat: 웹소켓 핸들러 로깅 찍기 - 디버깅시 더 자세한 정보를 얻기 위해 info, warn, error 레벨의 로깅을 작성했다. * fix: 종료된 아고라 조회시 예외 발생하지 않도록 수정 - 기존 코드는 종료된 아고라를 다시 종료하므로 AgoraStatus Transition 에러가 발생했다. * test: 웹소켓 통합 테스트 base 클래스 작성 * refactor: 예외 메세지 대문자로 시작하도록 변경 * rename: 메서드명 수정 - 테스트 설정에서 CustomUserDetailsService와 관련이 있으므로 TestCustomUserDetailsServiceConfig로 메서드명을 수정한다. * refactor: 반환 메세지 제네릭으로 수정 - 반환 메세지를 제네릭으로 수정하여 범용성을 높인다. * rename: 메서드 명 변경 * test: 채팅 전송 웹소켓 테스트 작성 * refactor: 코드 리뷰 반영 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * test: 채팅방 조회 통합테스트 작성 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * rename: TestDoubleFactory 패키지 이동 * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 --------- * Revert "Dev -> Main (#159)" (#160) This reverts commit b33211628fe0c0445bcb7c083d6897daae55de0d. * refactor: 도메인 로직 캡슐화 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * test: 채팅방 조회 통합테스트 작성 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * rename: TestDoubleFactory 패키지 이동 * refactor: 리뷰 피드백 반영 * refactor: TestDoubleFactory 메서드 static import * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 --------- * Revert "Dev rebased (#161)" (#162) This reverts commit 8121712c5d493b907b528bd5b0ec640e17b3dd23. * [#152]refactor: 리뷰 반영 * [#152]refactor: 채팅메타정보 추가 및 updateDisconnectTime 로직 수정 기존에는 채팅 메타정보에 나가는지 들어오는지에 대한 정보가 없었지만, disconnectTime 유무로 판단할 수 있기에 프론트에게 disconnectTime을 추가해서 넘겨주었다. 또한 네트워크 불안정과 같은 비정상적인 소켓 연결끊김에도 disconnectTime 로직을 추가하였는데 더티체킹이 불가능하다고 판단하여 직접 save하여 저장해주었다. * 채팅 반응하기 기능 구현 (#164) * feat: 채팅 리액션 기능 구현 - Reaction : 리액션 enum class - 웹소켓으로 구현하여 실시간 조회 가능 - 응답은 EnumMap 자료구조 이용 검증 코드 - agoraId가 유효한지 검증 - 토론에 참여한 유저인지 검증 로직 - 자신의 채팅에는 리액션 추가 못하도록 함 - 이미 똑같은 리액션을 보냈을 경우 취소함 - 새로운 리액션일 경우 저장 * refactor: 채팅 반응하기 리팩토링 - 필요없는 Auditing 필드 제거 - 초기화 최적화(static 블록) * feat: 웹소켓 검증 예외 추가 * test: 리액션 생성 테스트 작성 * refactor: 리뷰 반영 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * [#167]feat: 비속어 필터 기능 개발 아호코라식 알고리즘(트라이 자료구조)로 처음 비속어 문자를 세팅하고난 이후 재사용을 통해 성능을 개선시켰다. 소켓을 통해 채팅을 보내기 전에 비속어 필터 api를 거쳐 비속어가 존재한다면 해당 비속어의 index를 응답한다. 존재하지 않는다면 200ok응답으로 소켓을 통해 정상적으로 채팅이 전송된다. * [#167]Refactor: 프론트요구사항 반영 및 테스트코드 작성 채팅 메타 정보와 exit api 응답값의 agoraId필드값을 삭제 Refresh-Token cookie 이름을 ATKN으로 변경 비속어 필터 테스트코드 작성 * [#167]Refactor: 테스트 코드내용 추가 비속어가 포함되어있지 않은 경우 테스트 코드 추가 * [#167]refactor: 리뷰 반영 BadWordResponse 응답 안에 비속어 여부(boolean)를 포함하여 반환하게 수정하였다. 이외에는 자잘한 리뷰 변경사항 적용. * [#167]refactor: 포맷팅 및 badword 엔티티 수정 * [#168] feat: thumbnail 도메인 추가 (#170) * �dev 충돌 해결 (#174) * Dev-> Main (#151) * refactor: ChatQueryService 리팩토링 * feat: 일급 컬렉션 Chats 생성 및 캡슐화 - List<Chat>과 관련된 로직을 캡슐화한다. - Cursor 관련 로직을 캡슐화한다. * refactor: jpql로 수정 * refactor: 도메인 로직 캡슐화 * feat: 인덱스 추가 - 사용자 입장 시 agoraId와 userId로 조회하므로, 이 두 필드에 대한 복합 인덱스를 생성한다. - 사용자 퇴장시 sessionId로 조회하므로 단일 인덱스를 생성한다. * refactor: ChatContent VO 생성 - 채팅 내용 관련 로직 캡슐화를 위해 값 객체를 생성한다. * test: Chat 도메인 테스트 작성 * test: ChatContent 테스트 작성 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * chore: jacoco 추가 - 테스트 커버리지 확인용으로 jacoco를 추가하였다. - coverage rule은 우선 주석처리해두었다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * chore: .gitignore에 data.sql 추가 - test db 데이터를 위한 data.sql 추가 * test: 채팅방 조회 통합테스트 작성 * fix: merge bug 해결 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * docs: Test용 Security Config에 주석 추가 * fix: 에러 코드 적절하게 수정 * test: 아고라 인증 api 통합 테스트 작성 * refactor: AgoraService 리팩토링 * rename: TestDoubleFactory 패키지 이동 * refactor: 리뷰 피드백 반영 * refactor: 초기화 로직 메서드로 분리 * refactor: 접근 제어자 변경 - 필드, 메서드 접근제어자 protected로 변경 - 추상 클래스로 선언하여 인스턴스화 방지 * refactor: 리뷰 피드백 반영 * refactor: TestDoubleFactory 메서드 static import * [#141] chore: logback xml 추가 * [#142] chore: logback 수정 * [#142] chore: aop 의존성 추가 * [#142] feat: 요청 로깅 aspect 추가 * 아고라 테스트 추가 (#143) * [#-] test: 아고라 도메인 테스트 코드 추가 * [#-] test: agora query repository test 추가 * [#-] refactor: limit size 변경 * [#-] test: agroa open api test 추가 * [#-] test: agora 생성 통합 test 추가 * [#-] test: agora 참가 통합 테스트 추가 * [#136] test: pr 변경사항 반영 * 응답 형식 변경 및 테스트 코드 수정 (#147) * [#146] refactor: response message 수정 - ErrorResponse 클래스의 message type Object로 변경 * [#146] test: 통합 테스트 응답 수정 - response message type 변경 (string -> json) * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]feat: AgoraVote 통합 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]:매직넘버 처리 * [#95] refactor: agora 조회 쿼리 수정 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: 리뷰 반영 리팩토링 * 채팅 전송 �websocket 테스트 코드 작성 (#148) * fix: objectMapper 의존성 주입되도록 변경 * fix: 로깅시 웹소켓 처리하지 못하는 문제 해결 * feat: 웹소켓 핸들러 로깅 찍기 - 디버깅시 더 자세한 정보를 얻기 위해 info, warn, error 레벨의 로깅을 작성했다. * fix: 종료된 아고라 조회시 예외 발생하지 않도록 수정 - 기존 코드는 종료된 아고라를 다시 종료하므로 AgoraStatus Transition 에러가 발생했다. * test: 웹소켓 통합 테스트 base 클래스 작성 * refactor: 예외 메세지 대문자로 시작하도록 변경 * rename: 메서드명 수정 - 테스트 설정에서 CustomUserDetailsService와 관련이 있으므로 TestCustomUserDetailsServiceConfig로 메서드명을 수정한다. * refactor: 반환 메세지 제네릭으로 수정 - 반환 메세지를 제네릭으로 수정하여 범용성을 높인다. * rename: 메서드 명 변경 * test: 채팅 전송 웹소켓 테스트 작성 * refactor: 코드 리뷰 반영 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 --------- * Dev -> Main (#159) * refactor: ChatQueryService 리팩토링 * feat: 일급 컬렉션 Chats 생성 및 캡슐화 - List<Chat>과 관련된 로직을 캡슐화한다. - Cursor 관련 로직을 캡슐화한다. * refactor: jpql로 수정 * refactor: 도메인 로직 캡슐화 * feat: 인덱스 추가 - 사용자 입장 시 agoraId와 userId로 조회하므로, 이 두 필드에 대한 복합 인덱스를 생성한다. - 사용자 퇴장시 sessionId로 조회하므로 단일 인덱스를 생성한다. * refactor: ChatContent VO 생성 - 채팅 내용 관련 로직 캡슐화를 위해 값 객체를 생성한다. * test: Chat 도메인 테스트 작성 * test: ChatContent 테스트 작성 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * chore: jacoco 추가 - 테스트 커버리지 확인용으로 jacoco를 추가하였다. - coverage rule은 우선 주석처리해두었다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * chore: .gitignore에 data.sql 추가 - test db 데이터를 위한 data.sql 추가 * test: 채팅방 조회 통합테스트 작성 * fix: merge bug 해결 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * docs: Test용 Security Config에 주석 추가 * fix: 에러 코드 적절하게 수정 * test: 아고라 인증 api 통합 테스트 작성 * refactor: AgoraService 리팩토링 * rename: TestDoubleFactory 패키지 이동 * refactor: 리뷰 피드백 반영 * refactor: 초기화 로직 메서드로 분리 * refactor: 접근 제어자 변경 - 필드, 메서드 접근제어자 protected로 변경 - 추상 클래스로 선언하여 인스턴스화 방지 * refactor: 리뷰 피드백 반영 * refactor: TestDoubleFactory 메서드 static import * [#141] chore: logback xml 추가 * [#142] chore: logback 수정 * [#142] chore: aop 의존성 추가 * [#142] feat: 요청 로깅 aspect 추가 * 아고라 테스트 추가 (#143) * [#-] test: 아고라 도메인 테스트 코드 추가 * [#-] test: agora query repository test 추가 * [#-] refactor: limit size 변경 * [#-] test: agroa open api test 추가 * [#-] test: agora 생성 통합 test 추가 * [#-] test: agora 참가 통합 테스트 추가 * [#136] test: pr 변경사항 반영 * 응답 형식 변경 및 테스트 코드 수정 (#147) * [#146] refactor: response message 수정 - ErrorResponse 클래스의 message type Object로 변경 * [#146] test: 통합 테스트 응답 수정 - response message type 변경 (string -> json) * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]feat: AgoraVote 통합 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]:매직넘버 처리 * [#95] refactor: agora 조회 쿼리 수정 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: 리뷰 반영 리팩토링 * 채팅 전송 �websocket 테스트 코드 작성 (#148) * fix: objectMapper 의존성 주입되도록 변경 * fix: 로깅시 웹소켓 처리하지 못하는 문제 해결 * feat: 웹소켓 핸들러 로깅 찍기 - 디버깅시 더 자세한 정보를 얻기 위해 info, warn, error 레벨의 로깅을 작성했다. * fix: 종료된 아고라 조회시 예외 발생하지 않도록 수정 - 기존 코드는 종료된 아고라를 다시 종료하므로 AgoraStatus Transition 에러가 발생했다. * test: 웹소켓 통합 테스트 base 클래스 작성 * refactor: 예외 메세지 대문자로 시작하도록 변경 * rename: 메서드명 수정 - 테스트 설정에서 CustomUserDetailsService와 관련이 있으므로 TestCustomUserDetailsServiceConfig로 메서드명을 수정한다. * refactor: 반환 메세지 제네릭으로 수정 - 반환 메세지를 제네릭으로 수정하여 범용성을 높인다. * rename: 메서드 명 변경 * test: 채팅 전송 웹소켓 테스트 작성 * refactor: 코드 리뷰 반영 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * test: 채팅방 조회 통합테스트 작성 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * rename: TestDoubleFactory 패키지 이동 * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 --------- * Revert "Dev -> Main (#159)" (#160) This reverts commit b33211628fe0c0445bcb7c083d6897daae55de0d. --------- * �feat: OAuth2 소셜 로그인 기능 구현 (#173) * feat: 채팅 리액션 기능 구현 - Reaction : 리액션 enum class - 웹소켓으로 구현하여 실시간 조회 가능 - 응답은 EnumMap 자료구조 이용 검증 코드 - agoraId가 유효한지 검증 - 토론에 참여한 유저인지 검증 로직 - 자신의 채팅에는 리액션 추가 못하도록 함 - 이미 똑같은 리액션을 보냈을 경우 취소함 - 새로운 리액션일 경우 저장 * rename: User -> Member 이름 변경 * rename: CustomUserDetails, CustomUserDetailsService 이동 - CustomUserDetails 는 domain으로 이동 - CustomUserDetailsService 는 service로 이동 * feat: 채팅 조회 응답에 리액션 추가 * refactor: 설정값 주입시 @Value 대신 ConfigurationProperties 사용 - 타입 안정성이 높아진다. (컴파일 시점 에러 발생) - 설정을 클래스로 구조화할 수 있다. * feat: 종료된 아고라 채팅 전송 예외 처리 - 종료된 아고라일 경우 채팅 전송시 예외 발생하도록 한다. * refactor: 리액션 응답 수정 - 모든 리액션이 반응에 포함되도록 수정 - 없는 리액션도 0으로 추가하여 응답의 일관성을 높임 * refactor: 쿠키 관련 로직 모으기 - CookieUtils로 모아서 유틸리티 클래스로 작성 * feat: OAuth 소셜 로그인 구현 - 기존 로그인 로직에 OAuth 소셜 로그인 가능하도록 확장 - @ConfigurationProperties를 사용한 타입 안전한 설정 * refactor: 인증 로직 수정 - refresh token의 id를 문자열로 변경하여 구글 OAuth id와 같이 큰 숫자도 저장할 수 있도록 수정 - Member에 Provider 필드 생성하여 OAuth 확장하기 - 테스트 코드 추가 및 수정 * feat: redis 설정 - access 토큰 관리는 redis에서 수행 * fix: OAuth id를 Object로 받도록 수정 - 구글은 String 타입으로, 카카오는 Long(숫자타입)으로 전달하므로 Object로 받아 문자열로 변환한다. * fix: 충돌 해결 * refactor: 코드 리뷰 반영 * Dev -> Main (#158) (#177) * refactor: ChatQueryService 리팩토링 * feat: 일급 컬렉션 Chats 생성 및 캡슐화 - List<Chat>과 관련된 로직을 캡슐화한다. - Cursor 관련 로직을 캡슐화한다. * refactor: jpql로 수정 * refactor: 도메인 로직 캡슐화 * feat: 인덱스 추가 - 사용자 입장 시 agoraId와 userId로 조회하므로, 이 두 필드에 대한 복합 인덱스를 생성한다. - 사용자 퇴장시 sessionId로 조회하므로 단일 인덱스를 생성한다. * refactor: ChatContent VO 생성 - 채팅 내용 관련 로직 캡슐화를 위해 값 객체를 생성한다. * test: Chat 도메인 테스트 작성 * test: ChatContent 테스트 작성 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * chore: jacoco 추가 - 테스트 커버리지 확인용으로 jacoco를 추가하였다. - coverage rule은 우선 주석처리해두었다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * chore: .gitignore에 data.sql 추가 - test db 데이터를 위한 data.sql 추가 * test: 채팅방 조회 통합테스트 작성 * fix: merge bug 해결 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * docs: Test용 Security Config에 주석 추가 * fix: 에러 코드 적절하게 수정 * test: 아고라 인증 api 통합 테스트 작성 * refactor: AgoraService 리팩토링 * rename: TestDoubleFactory 패키지 이동 * refactor: 리뷰 피드백 반영 * refactor: 초기화 로직 메서드로 분리 * refactor: 접근 제어자 변경 - 필드, 메서드 접근제어자 protected로 변경 - 추상 클래스로 선언하여 인스턴스화 방지 * refactor: 리뷰 피드백 반영 * refactor: TestDoubleFactory 메서드 static import * [#141] chore: logback xml 추가 * [#142] chore: logback 수정 * [#142] chore: aop 의존성 추가 * [#142] feat: 요청 로깅 aspect 추가 * 아고라 테스트 추가 (#143) * [#-] test: 아고라 도메인 테스트 코드 추가 * [#-] test: agora query repository test 추가 * [#-] refactor: limit size 변경 * [#-] test: agroa open api test 추가 * [#-] test: agora 생성 통합 test 추가 * [#-] test: agora 참가 통합 테스트 추가 * [#136] test: pr 변경사항 반영 * 응답 형식 변경 및 테스트 코드 수정 (#147) * [#146] refactor: response message 수정 - ErrorResponse 클래스의 message type Object로 변경 * [#146] test: 통합 테스트 응답 수정 - response message type 변경 (string -> json) * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]feat: AgoraVote 통합 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]:매직넘버 처리 * [#95] refactor: agora 조회 쿼리 수정 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: 리뷰 반영 리팩토링 * 채팅 전송 �websocket 테스트 코드 작성 (#148) * fix: objectMapper 의존성 주입되도록 변경 * fix: 로깅시 웹소켓 처리하지 못하는 문제 해결 * feat: 웹소켓 핸들러 로깅 찍기 - 디버깅시 더 자세한 정보를 얻기 위해 info, warn, error 레벨의 로깅을 작성했다. * fix: 종료된 아고라 조회시 예외 발생하지 않도록 수정 - 기존 코드는 종료된 아고라를 다시 종료하므로 AgoraStatus Transition 에러가 발생했다. * test: 웹소켓 통합 테스트 base 클래스 작성 * refactor: 예외 메세지 대문자로 시작하도록 변경 * rename: 메서드명 수정 - 테스트 설정에서 CustomUserDetailsService와 관련이 있으므로 TestCustomUserDetailsServiceConfig로 메서드명을 수정한다. * refactor: 반환 메세지 제네릭으로 수정 - 반환 메세지를 제네릭으로 수정하여 범용성을 높인다. * rename: 메서드 명 변경 * test: 채팅 전송 웹소켓 테스트 작성 * refactor: 코드 리뷰 반영 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * [#152]feat: 아고라 멤버 입장시 메시지 알림 * [#152]feat: 입장 아고라멤버 알림 수정 및 퇴장 아고라멤버 알림 구현 * [#152] 아고라 입장/퇴장 메시지 알림 생성 테스트코드 작성 * [#]: 비속어 필터 1차 구현(수정 필요) * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * [#152]: 아고라 재입장 로직 수정 및 키워드와 카테고리 응답 값 추가 * [#152]: 입장/퇴장 알림 chat MessageMapping 로직 삭제 * [#152]: 필요없는 줄 삭제 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 * [#152]refactor: 아고라 퇴장 테스크 코드 작성 및 몇몇 로직 수정 아고라 퇴장 테스트코드를 작성하고 1. reconnectThreshold 시간을 5초에서 10초로 수정 2. AgoraService에서 agoraMember 호출 메서드를 변경(findValidAgoraMember-> findAgoraMemberByAgoraIdAndMemberId) 3. 줄바꿈 * Dev rebased (#161) * Dev -> Main (#159) * refactor: ChatQueryService 리팩토링 * feat: 일급 컬렉션 Chats 생성 및 캡슐화 - List<Chat>과 관련된 로직을 캡슐화한다. - Cursor 관련 로직을 캡슐화한다. * refactor: jpql로 수정 * refactor: 도메인 로직 캡슐화 * feat: 인덱스 추가 - 사용자 입장 시 agoraId와 userId로 조회하므로, 이 두 필드에 대한 복합 인덱스를 생성한다. - 사용자 퇴장시 sessionId로 조회하므로 단일 인덱스를 생성한다. * refactor: ChatContent VO 생성 - 채팅 내용 관련 로직 캡슐화를 위해 값 객체를 생성한다. * test: Chat 도메인 테스트 작성 * test: ChatContent 테스트 작성 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * chore: jacoco 추가 - 테스트 커버리지 확인용으로 jacoco를 추가하였다. - coverage rule은 우선 주석처리해두었다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * chore: .gitignore에 data.sql 추가 - test db 데이터를 위한 data.sql 추가 * test: 채팅방 조회 통합테스트 작성 * fix: merge bug 해결 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * docs: Test용 Security Config에 주석 추가 * fix: 에러 코드 적절하게 수정 * test: 아고라 인증 api 통합 테스트 작성 * refactor: AgoraService 리팩토링 * rename: TestDoubleFactory 패키지 이동 * refactor: 리뷰 피드백 반영 * refactor: 초기화 로직 메서드로 분리 * refactor: 접근 제어자 변경 - 필드, 메서드 접근제어자 protected로 변경 - 추상 클래스로 선언하여 인스턴스화 방지 * refactor: 리뷰 피드백 반영 * refactor: TestDoubleFactory 메서드 static import * [#141] chore: logback xml 추가 * [#142] chore: logback 수정 * [#142] chore: aop 의존성 추가 * [#142] feat: 요청 로깅 aspect 추가 * 아고라 테스트 추가 (#143) * [#-] test: 아고라 도메인 테스트 코드 추가 * [#-] test: agora query repository test 추가 * [#-] refactor: limit size 변경 * [#-] test: agroa open api test 추가 * [#-] test: agora 생성 통합 test 추가 * [#-] test: agora 참가 통합 테스트 추가 * [#136] test: pr 변경사항 반영 * 응답 형식 변경 및 테스트 코드 수정 (#147) * [#146] refactor: response message 수정 - ErrorResponse 클래스의 message type Object로 변경 * [#146] test: 통합 테스트 응답 수정 - response message type 변경 (string -> json) * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]feat: AgoraVote 통합 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]:매직넘버 처리 * [#95] refactor: agora 조회 쿼리 수정 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: 리뷰 반영 리팩토링 * 채팅 전송 �websocket 테스트 코드 작성 (#148) * fix: objectMapper 의존성 주입되도록 변경 * fix: 로깅시 웹소켓 처리하지 못하는 문제 해결 * feat: 웹소켓 핸들러 로깅 찍기 - 디버깅시 더 자세한 정보를 얻기 위해 info, warn, error 레벨의 로깅을 작성했다. * fix: 종료된 아고라 조회시 예외 발생하지 않도록 수정 - 기존 코드는 종료된 아고라를 다시 종료하므로 AgoraStatus Transition 에러가 발생했다. * test: 웹소켓 통합 테스트 base 클래스 작성 * refactor: 예외 메세지 대문자로 시작하도록 변경 * rename: 메서드명 수정 - 테스트 설정에서 CustomUserDetailsService와 관련이 있으므로 TestCustomUserDetailsServiceConfig로 메서드명을 수정한다. * refactor: 반환 메세지 제네릭으로 수정 - 반환 메세지를 제네릭으로 수정하여 범용성을 높인다. * rename: 메서드 명 변경 * test: 채팅 전송 웹소켓 테스트 작성 * refactor: 코드 리뷰 반영 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * test: 채팅방 조회 통합테스트 작성 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * rename: TestDoubleFactory 패키지 이동 * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 --------- * Revert "Dev -> Main (#159)" (#160) This reverts commit b33211628fe0c0445bcb7c083d6897daae55de0d. * refactor: 도메인 로직 캡슐화 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * test: 채팅방 조회 통합테스트 작성 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * rename: TestDoubleFactory 패키지 이동 * refactor: 리뷰 피드백 반영 * refactor: TestDoubleFactory 메서드 static import * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 --------- * Revert "Dev rebased (#161)" (#162) This reverts commit 8121712c5d493b907b528bd5b0ec640e17b3dd23. * [#152]refactor: 리뷰 반영 * [#152]refactor: 채팅메타정보 추가 및 updateDisconnectTime 로직 수정 기존에는 채팅 메타정보에 나가는지 들어오는지에 대한 정보가 없었지만, disconnectTime 유무로 판단할 수 있기에 프론트에게 disconnectTime을 추가해서 넘겨주었다. 또한 네트워크 불안정과 같은 비정상적인 소켓 연결끊김에도 disconnectTime 로직을 추가하였는데 더티체킹이 불가능하다고 판단하여 직접 save하여 저장해주었다. * 채팅 반응하기 기능 구현 (#164) * feat: 채팅 리액션 기능 구현 - Reaction : 리액션 enum class - 웹소켓으로 구현하여 실시간 조회 가능 - 응답은 EnumMap 자료구조 이용 검증 코드 - agoraId가 유효한지 검증 - 토론에 참여한 유저인지 검증 로직 - 자신의 채팅에는 리액션 추가 못하도록 함 - 이미 똑같은 리액션을 보냈을 경우 취소함 - 새로운 리액션일 경우 저장 * refactor: 채팅 반응하기 리팩토링 - 필요없는 Auditing 필드 제거 - 초기화 최적화(static 블록) * feat: 웹소켓 검증 예외 추가 * test: 리액션 생성 테스트 작성 * refactor: 리뷰 반영 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * [#167]feat: 비속어 필터 기능 개발 아호코라식 알고리즘(트라이 자료구조)로 처음 비속어 문자를 세팅하고난 이후 재사용을 통해 성능을 개선시켰다. 소켓을 통해 채팅을 보내기 전에 비속어 필터 api를 거쳐 비속어가 존재한다면 해당 비속어의 index를 응답한다. 존재하지 않는다면 200ok응답으로 소켓을 통해 정상적으로 채팅이 전송된다. * [#167]Refactor: 프론트요구사항 반영 및 테스트코드 작성 채팅 메타 정보와 exit api 응답값의 agoraId필드값을 삭제 Refresh-Token cookie 이름을 ATKN으로 변경 비속어 필터 테스트코드 작성 * [#167]Refactor: 테스트 코드내용 추가 비속어가 포함되어있지 않은 경우 테스트 코드 추가 * [#167]refactor: 리뷰 반영 BadWordResponse 응답 안에 비속어 여부(boolean)를 포함하여 반환하게 수정하였다. 이외에는 자잘한 리뷰 변경사항 적용. * [#167]refactor: 포맷팅 및 badword 엔티티 수정 * [#168] feat: thumbnail 도메인 추가 (#170) * �dev 충돌 해결 (#174) * Dev-> Main (#151) * refactor: ChatQueryService 리팩토링 * feat: 일급 컬렉션 Chats 생성 및 캡슐화 - List<Chat>과 관련된 로직을 캡슐화한다. - Cursor 관련 로직을 캡슐화한다. * refactor: jpql로 수정 * refactor: 도메인 로직 캡슐화 * feat: 인덱스 추가 - 사용자 입장 시 agoraId와 userId로 조회하므로, 이 두 필드에 대한 복합 인덱스를 생성한다. - 사용자 퇴장시 sessionId로 조회하므로 단일 인덱스를 생성한다. * refactor: ChatContent VO 생성 - 채팅 내용 관련 로직 캡슐화를 위해 값 객체를 생성한다. * test: Chat 도메인 테스트 작성 * test: ChatContent 테스트 작성 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * chore: jacoco 추가 - 테스트 커버리지 확인용으로 jacoco를 추가하였다. - coverage rule은 우선 주석처리해두었다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * chore: .gitignore에 data.sql 추가 - test db 데이터를 위한 data.sql 추가 * test: 채팅방 조회 통합테스트 작성 * fix: merge bug 해결 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * docs: Test용 Security Config에 주석 추가 * fix: 에러 코드 적절하게 수정 * test: 아고라 인증 api 통합 테스트 작성 * refactor: AgoraService 리팩토링 * rename: TestDoubleFactory 패키지 이동 * refactor: 리뷰 피드백 반영 * refactor: 초기화 로직 메서드로 분리 * refactor: 접근 제어자 변경 - 필드, 메서드 접근제어자 protected로 변경 - 추상 클래스로 선언하여 인스턴스화 방지 * refactor: 리뷰 피드백 반영 * refactor: TestDoubleFactory 메서드 static import * [#141] chore: logback xml 추가 * [#142] chore: logback 수정 * [#142] chore: aop 의존성 추가 * [#142] feat: 요청 로깅 aspect 추가 * 아고라 테스트 추가 (#143) * [#-] test: 아고라 도메인 테스트 코드 추가 * [#-] test: agora query repository test 추가 * [#-] refactor: limit size 변경 * [#-] test: agroa open api test 추가 * [#-] test: agora 생성 통합 test 추가 * [#-] test: agora 참가 통합 테스트 추가 * [#136] test: pr 변경사항 반영 * 응답 형식 변경 및 테스트 코드 수정 (#147) * [#146] refactor: response message 수정 - ErrorResponse 클래스의 message type Object로 변경 * [#146] test: 통합 테스트 응답 수정 - response message type 변경 (string -> json) * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]feat: AgoraVote 통합 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]:매직넘버 처리 * [#95] refactor: agora 조회 쿼리 수정 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: 리뷰 반영 리팩토링 * 채팅 전송 �websocket 테스트 코드 작성 (#148) * fix: objectMapper 의존성 주입되도록 변경 * fix: 로깅시 웹소켓 처리하지 못하는 문제 해결 * feat: 웹소켓 핸들러 로깅 찍기 - 디버깅시 더 자세한 정보를 얻기 위해 info, warn, error 레벨의 로깅을 작성했다. * fix: 종료된 아고라 조회시 예외 발생하지 않도록 수정 - 기존 코드는 종료된 아고라를 다시 종료하므로 AgoraStatus Transition 에러가 발생했다. * test: 웹소켓 통합 테스트 base 클래스 작성 * refactor: 예외 메세지 대문자로 시작하도록 변경 * rename: 메서드명 수정 - 테스트 설정에서 CustomUserDetailsService와 관련이 있으므로 TestCustomUserDetailsServiceConfig로 메서드명을 수정한다. * refactor: 반환 메세지 제네릭으로 수정 - 반환 메세지를 제네릭으로 수정하여 범용성을 높인다. * rename: 메서드 명 변경 * test: 채팅 전송 웹소켓 테스트 작성 * refactor: 코드 리뷰 반영 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 --------- * Dev -> Main (#159) * refactor: ChatQueryService 리팩토링 * feat: 일급 컬렉션 Chats 생성 및 캡슐화 - List<Chat>과 관련된 로직을 캡슐화한다. - Cursor 관련 로직을 캡슐화한다. * refactor: jpql로 수정 * refactor: 도메인 로직 캡슐화 * feat: 인덱스 추가 - 사용자 입장 시 agoraId와 userId로 조회하므로, 이 두 필드에 대한 복합 인덱스를 생성한다. - 사용자 퇴장시 sessionId로 조회하므로 단일 인덱스를 생성한다. * refactor: ChatContent VO 생성 - 채팅 내용 관련 로직 캡슐화를 위해 값 객체를 생성한다. * test: Chat 도메인 테스트 작성 * test: ChatContent 테스트 작성 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * chore: jacoco 추가 - 테스트 커버리지 확인용으로 jacoco를 추가하였다. - coverage rule은 우선 주석처리해두었다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * chore: .gitignore에 data.sql 추가 - test db 데이터를 위한 data.sql 추가 * test: 채팅방 조회 통합테스트 작성 * fix: merge bug 해결 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * docs: Test용 Security Config에 주석 추가 * fix: 에러 코드 적절하게 수정 * test: 아고라 인증 api 통합 테스트 작성 * refactor: AgoraService 리팩토링 * rename: TestDoubleFactory 패키지 이동 * refactor: 리뷰 피드백 반영 * refactor: 초기화 로직 메서드로 분리 * refactor: 접근 제어자 변경 - 필드, 메서드 접근제어자 protected로 변경 - 추상 클래스로 선언하여 인스턴스화 방지 * refactor: 리뷰 피드백 반영 * refactor: TestDoubleFactory 메서드 static import * [#141] chore: logback xml 추가 * [#142] chore: logback 수정 * [#142] chore: aop 의존성 추가 * [#142] feat: 요청 로깅 aspect 추가 * 아고라 테스트 추가 (#143) * [#-] test: 아고라 도메인 테스트 코드 추가 * [#-] test: agora query repository test 추가 * [#-] refactor: limit size 변경 * [#-] test: agroa open api test 추가 * [#-] test: agora 생성 통합 test 추가 * [#-] test: agora 참가 통합 테스트 추가 * [#136] test: pr 변경사항 반영 * 응답 형식 변경 및 테스트 코드 수정 (#147) * [#146] refactor: response message 수정 - ErrorResponse 클래스의 message type Object로 변경 * [#146] test: 통합 테스트 응답 수정 - response message type 변경 (string -> json) * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]feat: AgoraVote 통합 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]:매직넘버 처리 * [#95] refactor: agora 조회 쿼리 수정 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: 리뷰 반영 리팩토링 * 채팅 전송 �websocket 테스트 코드 작성 (#148) * fix: objectMapper 의존성 주입되도록 변경 * fix: 로깅시 웹소켓 처리하지 못하는 문제 해결 * feat: 웹소켓 핸들러 로깅 찍기 - 디버깅시 더 자세한 정보를 얻기 위해 info, warn, error 레벨의 로깅을 작성했다. * fix: 종료된 아고라 조회시 예외 발생하지 않도록 수정 - 기존 코드는 종료된 아고라를 다시 종료하므로 AgoraStatus Transition 에러가 발생했다. * test: 웹소켓 통합 테스트 base 클래스 작성 * refactor: 예외 메세지 대문자로 시작하도록 변경 * rename: 메서드명 수정 - 테스트 설정에서 CustomUserDetailsService와 관련이 있으므로 TestCustomUserDetailsServiceConfig로 메서드명을 수정한다. * refactor: 반환 메세지 제네릭으로 수정 - 반환 메세지를 제네릭으로 수정하여 범용성을 높인다. * rename: 메서드 명 변경 * test: 채팅 전송 웹소켓 테스트 작성 * refactor: 코드 리뷰 반영 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * test: 채팅방 조회 통합테스트 작성 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * rename: TestDoubleFactory 패키지 이동 * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 --------- * Revert "Dev -> Main (#159)" (#160) This reverts commit b33211628fe0c0445bcb7c083d6897daae55de0d. --------- --------- --------- * Dev->Main (#178) * refactor: ChatQueryService 리팩토링 * feat: 일급 컬렉션 Chats 생성 및 캡슐화 - List<Chat>과 관련된 로직을 캡슐화한다. - Cursor 관련 로직을 캡슐화한다. * refactor: jpql로 수정 * refactor: 도메인 로직 캡슐화 * feat: 인덱스 추가 - 사용자 입장 시 agoraId와 userId로 조회하므로, 이 두 필드에 대한 복합 인덱스를 생성한다. - 사용자 퇴장시 sessionId로 조회하므로 단일 인덱스를 생성한다. * refactor: ChatContent VO 생성 - 채팅 내용 관련 로직 캡슐화를 위해 값 객체를 생성한다. * test: Chat 도메인 테스트 작성 * test: ChatContent 테스트 작성 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * chore: jacoco 추가 - 테스트 커버리지 확인용으로 jacoco를 추가하였다. - coverage rule은 우선 주석처리해두었다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * chore: .gitignore에 data.sql 추가 - test db 데이터를 위한 data.sql 추가 * test: 채팅방 조회 통합테스트 작성 * fix: merge bug 해결 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * docs: Test용 Security Config에 주석 추가 * fix: 에러 코드 적절하게 수정 * test: 아고라 인증 api 통합 테스트 작성 * refactor: AgoraService 리팩토링 * rename: TestDoubleFactory 패키지 이동 * refactor: 리뷰 피드백 반영 * refactor: 초기화 로직 메서드로 분리 * refactor: 접근 제어자 변경 - 필드, 메서드 접근제어자 protected로 변경 - 추상 클래스로 선언하여 인스턴스화 방지 * refactor: 리뷰 피드백 반영 * refactor: TestDoubleFactory 메서드 static import * [#141] chore: logback xml 추가 * [#142] chore: logback 수정 * [#142] chore: aop 의존성 추가 * [#142] feat: 요청 로깅 aspect 추가 * 아고라 테스트 추가 (#143) * [#-] test: 아고라 도메인 테스트 코드 추가 * [#-] test: agora query repository test 추가 * [#-] refactor: limit size 변경 * [#-] test: agroa open api test 추가 * [#-] test: agora 생성 통합 test 추가 * [#-] test: agora 참가 통합 테스트 추가 * [#136] test: pr 변경사항 반영 * 응답 형식 변경 및 테스트 코드 수정 (#147) * [#146] refactor: response message 수정 - ErrorResponse 클래스의 message type Object로 변경 * [#146] test: 통합 테스트 응답 수정 - response message type 변경 (string -> json) * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]feat: AgoraVote 통합 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]:매직넘버 처리 * [#95] refactor: agora 조회 쿼리 수정 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: 리뷰 반영 리팩토링 * 채팅 전송 �websocket 테스트 코드 작성 (#148) * fix: objectMapper 의존성 주입되도록 변경 * fix: 로깅시 웹소켓 처리하지 못하는 문제 해결 * feat: 웹소켓 핸들러 로깅 찍기 - 디버깅시 더 자세한 정보를 얻기 위해 info, warn, error 레벨의 로깅을 작성했다. * fix: 종료된 아고라 조회시 예외 발생하지 않도록 수정 - 기존 코드는 종료된 아고라를 다시 종료하므로 AgoraStatus Transition 에러가 발생했다. * test: 웹소켓 통합 테스트 base 클래스 작성 * refactor: 예외 메세지 대문자로 시작하도록 변경 * rename: 메서드명 수정 - 테스트 설정에서 CustomUserDetailsService와 관련이 있으므로 TestCustomUserDetailsServiceConfig로 메서드명을 수정한다. * refactor: 반환 메세지 제네릭으로 수정 - 반환 메세지를 제네릭으로 수정하여 범용성을 높인다. * rename: 메서드 명 변경 * test: 채팅 전송 웹소켓 테스트 작성 * refactor: 코드 리뷰 반영 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * [#152]feat: 아고라 멤버 입장시 메시지 알림 * [#152]feat: 입장 아고라멤버 알림 수정 및 퇴장 아고라멤버 알림 구현 * [#152] 아고라 입장/퇴장 메시지 알림 생성 테스트코드 작성 * [#]: 비속어 필터 1차 구현(수정 필요) * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아고라 조회 쿼리 구현 - agoraId로 조회 * [#153] feat: 인기 아고라 조회 서비스 추가 - 인기 agora의 score 순서로 반환 * [#153] test: 인기 아고라 스케줄링 테스트 추가 * [#153] refactor: cron 표현식 변경 * [#153] refactor: 인기 아고라 조회 조건 변경 - 활성화 된 아고라만 조회 * [#153] refactor: 인기 아고라 계산 method 기능별 분리 * [#153] refactor: 인기 아고라 조회 정렬 삭제 * [#153] refactor: member 조회 시 session 값 체크 * [#153] refactor: 정규화 진행에서 누락된 연산 추가 * [#153] refactor: count metric 타입 변경 - long -> int 변경 * [#153] refactor: 이중 stream 분리 * [#153] refactor: service의 toPopular() 제거 * [#153] refactor: popular 도메인 이름 변경 및 리팩토링 - AgoraMetrics 필드 타입 변경 - chat 조회 inner join 변경 * [#153] refactor: trend entity 연관관계 optional 속성 추가 * [#153] feat: TrendWeight enum 생성 - trend 관련 상수 enum에서 정의 * [#153] refactor: 인기 아고라 설정, 조회 기준 변경 - CLOSED가 아닌 상태 -> RUNNING인 상태 변경 * [#152]: 아고라 재입장 로직 수정 및 키워드와 카테고리 응답 값 추가 * [#152]: 입장/퇴장 알림 chat MessageMapping 로직 삭제 * [#152]: 필요없는 줄 삭제 * 애플리케이션 무중단 배포 스크립트 추가 (#157) * [#156] feat: health check 컨트롤러 추가 * [#156] chore: actions 스크립트 on 섹션 제거 * [#156] chore: 배포 파일 추가 * [#156] fix: health check api 수정 * [#156] chore: 스크립트 자동 실행 방지 * [#156] chore: dockerfile 제거 * [#152]refactor: 아고라 퇴장 테스크 코드 작성 및 몇몇 로직 수정 아고라 퇴장 테스트코드를 작성하고 1. reconnectThreshold 시간을 5초에서 10초로 수정 2. AgoraService에서 agoraMember 호출 메서드를 변경(findValidAgoraMember-> findAgoraMemberByAgoraIdAndMemberId) 3. 줄바꿈 * Dev rebased (#161) * Dev -> Main (#159) * refactor: ChatQueryService 리팩토링 * feat: 일급 컬렉션 Chats 생성 및 캡슐화 - List<Chat>과 관련된 로직을 캡슐화한다. - Cursor 관련 로직을 캡슐화한다. * refactor: jpql로 수정 * refactor: 도메인 로직 캡슐화 * feat: 인덱스 추가 - 사용자 입장 시 agoraId와 userId로 조회하므로, 이 두 필드에 대한 복합 인덱스를 생성한다. - 사용자 퇴장시 sessionId로 조회하므로 단일 인덱스를 생성한다. * refactor: ChatContent VO 생성 - 채팅 내용 관련 로직 캡슐화를 위해 값 객체를 생성한다. * test: Chat 도메인 테스트 작성 * test: ChatContent 테스트 작성 * test: 테스트 더블 팩토리를 생성한다. - 테스트 보조 클래스를 생성하여 중복 코드를 줄인다. * test: Chats 도메인 테스트를 작성한다. * chore: jacoco 추가 - 테스트 커버리지 확인용으로 jacoco를 추가하였다. - coverage rule은 우선 주석처리해두었다. * rename: User -> Member, AgoraUser -> AgoraMember, BaseUser -> BaseMember, TempUser -> TempMember - test db로 사용하는 h2 db에서 user는 예약어이므로 member로 이름을 수정한다. * chore: .gitignore에 data.sql 추가 - test db 데이터를 위한 data.sql 추가 * test: 채팅방 조회 통합테스트 작성 * fix: merge bug 해결 * test: 채팅방 참여자 조회 테스트 작성 * test: 통합 테스트 spring security 환경 설정 * rename: 테스트 sql 파일명 수정 * docs: Test용 Security Config에 주석 추가 * fix: 에러 코드 적절하게 수정 * test: 아고라 인증 api 통합 테스트 작성 * refactor: AgoraService 리팩토링 * rename: TestDoubleFactory 패키지 이동 * refactor: 리뷰 피드백 반영 * refactor: 초기화 로직 메서드로 분리 * refactor: 접근 제어자 변경 - 필드, 메서드 접근제어자 protected로 변경 - 추상 클래스로 선언하여 인스턴스화 방지 * refactor: 리뷰 피드백 반영 * refactor: TestDoubleFactory 메서드 static import * [#141] chore: logback xml 추가 * [#142] chore: logback 수정 * [#142] chore: aop 의존성 추가 * [#142] feat: 요청 로깅 aspect 추가 * 아고라 테스트 추가 (#143) * [#-] test: 아고라 도메인 테스트 코드 추가 * [#-] test: agora query repository test 추가 * [#-] refactor: limit size 변경 * [#-] test: agroa open api test 추가 * [#-] test: agora 생성 통합 test 추가 * [#-] test: agora 참가 통합 테스트 추가 * [#136] test: pr 변경사항 반영 * 응답 형식 변경 및 테스트 코드 수정 (#147) * [#146] refactor: response message 수정 - ErrorResponse 클래스의 message type Object로 변경 * [#146] test: 통합 테스트 응답 수정 - response message type 변경 (string -> json) * [#136]refactor: rebase 이후 충돌해결 * [#136]feat: AgoraVote 도메인 테스트 작성 * [#136]feat: AgoraVote 통합 테스트 작성 * [#136]: 투표,리프레시 토큰,임시유저 도메인/통합테스트 작성 * [#136]:매직넘버 처리 * [#95] refactor: agora 조회 쿼리 수정 * [#136]refactor: rebase 이후 폴더구조 정리 * [#136]:refactor: sql문 수정 * [#136]refactor: 리뷰 반영 리팩토링 * 채팅 전송 �websocket 테스트 코드 작성 (#148) * fix: objectMapper 의존성 주입되도록 변경 * fix: 로깅시 웹소켓 처리하지 못하는 문제 해결 * feat: 웹소켓 핸들러 로깅 찍기 - 디버깅시 더 자세한 정보를 얻기 위해 info, warn, error 레벨의 로깅을 작성했다. * fix: 종료된 아고라 조회시 예외 발생하지 않도록 수정 - 기존 코드는 종료된 아고라를 다시 종료하므로 AgoraStatus Transition 에러가 발생했다. * test: 웹소켓 통합 테스트 base 클래스 작성 * refactor: 예외 메세지 대문자로 시작하도록 변경 * rename: 메서드명 수정 - 테스트 설정에서 CustomUserDetailsService와 관련이 있으므로 TestCustomUserDetailsServiceConfig로 메서드명을 수정한다. * refactor: 반환 메세지 제네릭으로 수정 - 반환 메세지를 제네릭으로 수정하여 범용성을 높인다. * rename: 메서드 명 변경 * test: 채팅 전송 웹소켓 테스트 작성 * refactor: 코드 리뷰 반영 * [#136]refactor: AgoraVoteTime 도메인테스트 보류 * 메타정보 조회 websocket 테스트 코드 작성 (#150) * refactor: 웹소켓 메세지 byte로 받도록 수정 - 웹소켓 메세지는 길면 chunk로 나누어서 오기 때문에 byte[]로 받아야 에러 없이 잘 받을 수 있다. * comment: bdd 주석 소문자로 변경 * test: 메타 정보 조회 테스트 작성 * refactor: 필요없는 타입 매개변수 제거 * 인기 아고라 조회 API 추가 (#154) * [#153] feat: popular 도메인 추가 - popular entity, repository 추가 * [#153] feat: AgoraMetrics DTO 추가 - 인기 아고라를 결정하는 metric 정보 저장 * [#153] feat: 가중치를 계산하는 상수 추가 * [#153] feat: metric을 수집하는 쿼리 구현 * [#153] feat: 인기 아고라 저장 스케줄링 서비스 추가 * [#153] feat: 인기 아고라 조회 API 추가 * [#153] feat: 인기 아… Co-authored-by: yoobin_mion <[email protected]> Co-authored-by: Big-Cir97 <[email protected]> Co-authored-by: dae won <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🔗 Linked Issue
📋 Code Review Priority Guideline