Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* #160 fix: 계정 삭제 버그 수정 (#161) * #162 fix: 비밀번호 변경 문제 해결 (#163) - 데이터베이스에 반영하도록 변경 * feat: #165 change watchlist name * [fix] 회원 프로필 문제 해결 (#166) * #164 test: 프로필 변경 테스트 코드 작성 * #162 fix: 메소드명 변경 - 실제 이미지 파일이 아닌 url값을 변경하는 것이기 때문에 updateProfileUrl로 변경함 * #164 fix: 불필요한 update jpql 제거 - Member 더티 체킹을 통해서 작동하기 때문에 제거함 * #164 feat: 프로필 변경 관련 에러 코드 추가 - 클라이언트로부터 변경할 정보를 받지 못한 경우 작동될 수 있음 * #164 refactor: 프로필 변경 서비스 리팩토링 - Optional을 통한 Null처리 수행함 - 닉네임 유효성 검사를 ProfileChangeRequest로 이전 - Optional Method Chain을 이용하여 최대한 가독성있게 변경 - extract 메소드 실행 과정중에 검증 수행 - application.yml 파일에 multipart file size를 명시하여 이미지가 너무 큰 경우 받을 수 없도록 명세함 * #164 fix: 공백 생성자 및 getter 추가 * #164 test: 프로필 변경 컨트롤러 테스트 코드 추가 * #164 fix: @Valid 애노테이션 추가 * #164 test: 프로필 변경 서비스 에외 테스트 추가 - 닉네임이 중복되는 경우 테스트 추가 * [refactor] 회원가입 서비스 리팩토링 및 테스트 코드 (#168) * #167 test: 일반 회원가입 컨트롤러 테스트 코드 구현 * #167 fix: 회원 에러 코드 메시지 오타 수정 * #167 fix: 회원 성공 코드 메시지 오타 수정 * #167 refactor: 일반 회원가입 컨트롤러 및 서비스 코드 리팩토링 - SignUpServiceRequest 추가 - 일반 회원가입 서비스에서 검증 코드 정리 * #167 feat: MissingServletRequestPartException 글로벌 핸들러 추가 * #167 test: 일반 회원가입 컨트롤러 테스트 코드 구현 - 프로필 없이 일반 회원가입 성공 - signupData 필드없이 회원가입 실패 * #167 test: 일반 회원가입 서비스 테스트 코드 구현 - 일반 회원가입 서비스 성공 - 닉네임, 이메일 중복되는 경우 예외 테스트 - 비밀번호 불일치 예외 테스트 * #167 test: 회원가입 서비스 예외 케이스 테스트 코드 추가 - 프로필 이미지 사이즈가 초과하는 경우 회원가입 불가능 * [fix] 대시보드 서비스 클래스 테스트 코드 문제 (#169) * #167 test: 테스트 코드 실패 수정 - currentPriceManager 목객체를 추가하여 redis를 모킹 처리함 * #121 test: @beforeeach에 배당금 제거 추가 * [test] 회원가입 관련 서비스 테스트 코드 추가 (#170) * #167 test: 일반 회원가입 컨트롤러 테스트 코드 구현 * #167 fix: 회원 에러 코드 메시지 오타 수정 * #167 fix: 회원 성공 코드 메시지 오타 수정 * #167 refactor: 일반 회원가입 컨트롤러 및 서비스 코드 리팩토링 - SignUpServiceRequest 추가 - 일반 회원가입 서비스에서 검증 코드 정리 * #167 feat: MissingServletRequestPartException 글로벌 핸들러 추가 * #167 test: 일반 회원가입 컨트롤러 테스트 코드 구현 - 프로필 없이 일반 회원가입 성공 - signupData 필드없이 회원가입 실패 * #167 test: 일반 회원가입 서비스 테스트 코드 구현 - 일반 회원가입 서비스 성공 - 닉네임, 이메일 중복되는 경우 예외 테스트 - 비밀번호 불일치 예외 테스트 * #167 test: 회원가입 서비스 예외 케이스 테스트 코드 추가 - 프로필 이미지 사이즈가 초과하는 경우 회원가입 불가능 * #167 test: 닉네임 중복 검사 서비스 테스트 코드 추가 * #167 test: 닉네임 중복 검사 컨트롤러 테스트 코드 추가 * #167 test: 이메일 중복 검사 테스트 코드 추가 * #167 test: 이메일 중복 검사 컨트롤러 테스트 코드 추가 * #167 refactor: 유효성 검사 추가 및 검증코드 생성기 추가 * #167 test: 검증 코드 컨트롤러 및 서비스 테스트 코드 추가 * #167 feat: 검증코드 요청에 대한 유효성 검사 추가 * #167 test: 검증 코드 검사에 대한 컨트롤러 및 서비스 테스트 코드 추가 * feat: #165 change watchlist name, watchlist had stock api * feat: #165 change watchlist name, watchlist had stock api * test: #165 controller test * test: #165 service test * feat: #173 stock detail get * test: #173 stock detail get controller test * fix: #175 endpoint naming * Update src/test/java/codesquad/fineants/spring/api/stock/StockRestControllerTest.java Co-authored-by: YongHwan Kim <dragonbead95@naver.com> * Update src/main/java/codesquad/fineants/domain/stock/Stock.java Co-authored-by: YongHwan Kim <dragonbead95@naver.com> * Update src/main/java/codesquad/fineants/spring/api/success/code/StockSuccessCode.java Co-authored-by: YongHwan Kim <dragonbead95@naver.com> * Update src/main/java/codesquad/fineants/spring/api/stock/StockRestController.java Co-authored-by: YongHwan Kim <dragonbead95@naver.com> * refactor: #173 response name * refactor: #173 isCurrentYearPaymentDate * refactor: #173 isCurrentYearPaymentDate * #179 fix: ssl 재발급 (#179) * feat: #181 notification entity * feat: #181 notification entity * [feat] 프로필 정보 조회 (#180) * #172 feat: 프로필 조회 서비스 구현 * #172 test: 프로필 조회 서비스 테스트 코드 구현 * Update src/main/java/codesquad/fineants/domain/fcm_token/FcmToken.java Co-authored-by: YongHwan Kim <dragonbead95@naver.com> * Update src/main/java/codesquad/fineants/domain/notification_preference/NotificationPreference.java Co-authored-by: YongHwan Kim <dragonbead95@naver.com> * refacotor: #181 notification preference naming * refacotor: #181 notification preference naming * refacotor: #181 notification preference naming * chore: #181 notification ddl * [feat] FCM 관련 스프링 빈 구현 (#190) * #172 chore: firebase 설정 파일 추가 * #185 feat: Firebase 스프링 빈 및 서비스 추가 * #185 feat: 로깅 추가 * #185 test: sendNotification 서비스 메소드 테스트 코드 추가 * #185 fix: FirebaseApp 중복 문제 해결 * FCM 토큰 등록 구현 (#193) * #184 feat: FCM 토큰 등록 컨트롤러 및 서비스 구현 * #184 test: FCM 토큰 등록 서비스 테스트 코드 추가 * #184 test: FCM 토큰 등록 컨트롤러 테스트 코드 추가 * #184 test: FCM 토큰 등록 컨트롤러 예외 케이스 추가 * #172 chore: firebase 설정 파일 추가 * #185 feat: Firebase 스프링 빈 및 서비스 추가 * #185 feat: 로깅 추가 * #185 test: sendNotification 서비스 메소드 테스트 코드 추가 * #185 fix: FirebaseApp 중복 문제 해결 * #185 feat: Firebase 스프링 빈 및 서비스 추가 * #185 test: sendNotification 서비스 메소드 테스트 코드 추가 * [feat] FCM 관련 스프링 빈 구현 (#190) * #172 chore: firebase 설정 파일 추가 * #185 feat: Firebase 스프링 빈 및 서비스 추가 * #185 feat: 로깅 추가 * #185 test: sendNotification 서비스 메소드 테스트 코드 추가 * #185 fix: FirebaseApp 중복 문제 해결 * #184 feat: FCM 토큰 등록 서비스시 검증 추가 * #184 feat: FCM 토큰 검증을 별도의 메소드로 분리 * #184 test: FCM 토큰 등록 예외 케이스 테스트 코드 추가 * [feat] 회원 알림 목록 조회 (#194) * #187 feat: Notification 엔티티 구현 * #184 feat: 회원 알림 목록 조회 API 및 서비스 구현 * #187 test: 회원 알림 목록 조회 서비스 테스트 코드 구현 * #187 test: 회원 알림 목록 조회 컨트롤러 테스트 코드 추가 * #187 docs: notification 스키마 추가 * [fix] 회원 알림 목록 조회 Response Body 변경 (#196) * #195 feat: notification 엔티티에 type, referenceId 컬럼 추가 - type은 알림의 타입으로써 "stock" or "portfolio"의 값을 가진다 - referenceId는 type에 대한 참조값입니다. type="stock"인 경우 종목의 티커심볼을 가질 수 있고, type="portfolio"인 경우 포트폴리오의 등록번호일 수 있음 * #195 test: 샘플 데이터에 type, referenceId 추가 * #195 docs: 스키마 변경 * [feat] 회원 알림 관련 API 구현 (#197) * #187 feat: 회원 알림 모두 읽음 컨트롤러 및 서비스 구현 * #187 test: 알림 모두 읽기 테스트 코드 추가 * #187 test: 알림 모두 읽기 예외 테스트 코드 추가 * #187 feat: 존재하지 않는 알람 등록번호 검증 메소드 추가 * #187 test: 알림 모두 읽음 서비스 예외 테스트 추가 * #187 test: 알림 특정 읽음 컨트롤러 테스트 코드 추가 * #187 feat: 알림 전체 삭제 컨트롤러 및 서비스 구현 * #187 test: 알림 전체 삭제 컨트롤러 및 서비스 테스트 코드 구현 * #187 feat: 특정 알림 삭제 컨트롤러 메소드 구현 * #187 test: 특정 알림 삭제 컨트롤러 테스트 코드 구현 * #187 fix: isDeletd 조건문 추가 * #187 docs: notification 스키마 수정 * [feat] 회원 알림 설정 수정 API 구현 (#198) * #187 feat: 회원 알림 모두 읽음 컨트롤러 및 서비스 구현 * #187 test: 알림 모두 읽기 테스트 코드 추가 * #187 test: 알림 모두 읽기 예외 테스트 코드 추가 * #187 feat: 존재하지 않는 알람 등록번호 검증 메소드 추가 * #187 test: 알림 모두 읽음 서비스 예외 테스트 추가 * #187 test: 알림 특정 읽음 컨트롤러 테스트 코드 추가 * #187 feat: 알림 전체 삭제 컨트롤러 및 서비스 구현 * #187 test: 알림 전체 삭제 컨트롤러 및 서비스 테스트 코드 구현 * #187 feat: 특정 알림 삭제 컨트롤러 메소드 구현 * #187 test: 특정 알림 삭제 컨트롤러 테스트 코드 구현 * #187 fix: isDeletd 조건문 추가 * #187 docs: notification 스키마 수정 * #187 feat: 회원 알림 설정 수정 컨트롤러 및 서비스 구현 * #187 test: 회원 알림 설정 수정 서비스 테스트 코드 구현 * #187 test: 회원 알림 설정 수정 컨트롤러 테스트 코드 구현 * #187 fix: soft delete 제거 * #187 feat: 소셜 로그인 또는 회원가입시 기본 알림 설정 등록하도록 구현 * #187 feat: 회원 알림 설정 수정관련 서비스 테스트 코드 추가 * #187 fix: validation 애노테이션 추가 * [feat] 회원 알림 관련 API 구현 (#197) * #187 feat: 회원 알림 모두 읽음 컨트롤러 및 서비스 구현 * #187 test: 알림 모두 읽기 테스트 코드 추가 * #187 test: 알림 모두 읽기 예외 테스트 코드 추가 * #187 feat: 존재하지 않는 알람 등록번호 검증 메소드 추가 * #187 test: 알림 모두 읽음 서비스 예외 테스트 추가 * #187 test: 알림 특정 읽음 컨트롤러 테스트 코드 추가 * #187 feat: 알림 전체 삭제 컨트롤러 및 서비스 구현 * #187 test: 알림 전체 삭제 컨트롤러 및 서비스 테스트 코드 구현 * #187 feat: 특정 알림 삭제 컨트롤러 메소드 구현 * #187 test: 특정 알림 삭제 컨트롤러 테스트 코드 구현 * #187 fix: isDeletd 조건문 추가 * #187 docs: notification 스키마 수정 * #187 feat: 회원 알림 모두 읽음 컨트롤러 및 서비스 구현 * #187 test: 알림 모두 읽기 테스트 코드 추가 * #187 feat: 존재하지 않는 알람 등록번호 검증 메소드 추가 * #187 feat: 알림 전체 삭제 컨트롤러 및 서비스 구현 * #187 feat: 회원 알림 모두 읽음 컨트롤러 및 서비스 구현 * #187 test: 알림 모두 읽기 테스트 코드 추가 * #187 test: 알림 모두 읽기 예외 테스트 코드 추가 * #187 feat: 존재하지 않는 알람 등록번호 검증 메소드 추가 * #187 test: 알림 모두 읽음 서비스 예외 테스트 추가 * #187 test: 알림 특정 읽음 컨트롤러 테스트 코드 추가 * #187 feat: 알림 전체 삭제 컨트롤러 및 서비스 구현 * #187 test: 알림 전체 삭제 컨트롤러 및 서비스 테스트 코드 구현 * #187 feat: 특정 알림 삭제 컨트롤러 메소드 구현 * #187 test: 특정 알림 삭제 컨트롤러 테스트 코드 구현 * #187 fix: isDeletd 조건문 추가 * #187 feat: 회원 알림 설정 수정 컨트롤러 및 서비스 구현 * #187 test: 회원 알림 설정 수정 서비스 테스트 코드 구현 * #187 test: 회원 알림 설정 수정 컨트롤러 테스트 코드 구현 * #187 fix: soft delete 제거 * #187 feat: 소셜 로그인 또는 회원가입시 기본 알림 설정 등록하도록 구현 * #187 feat: 회원 알림 설정 수정관련 서비스 테스트 코드 추가 * #187 fix: validation 애노테이션 추가 * [feat] 회원 알림 관련 API 구현 (#197) * #187 feat: 회원 알림 모두 읽음 컨트롤러 및 서비스 구현 * #187 test: 알림 모두 읽기 테스트 코드 추가 * #187 test: 알림 모두 읽기 예외 테스트 코드 추가 * #187 feat: 존재하지 않는 알람 등록번호 검증 메소드 추가 * #187 test: 알림 모두 읽음 서비스 예외 테스트 추가 * #187 test: 알림 특정 읽음 컨트롤러 테스트 코드 추가 * #187 feat: 알림 전체 삭제 컨트롤러 및 서비스 구현 * #187 test: 알림 전체 삭제 컨트롤러 및 서비스 테스트 코드 구현 * #187 feat: 특정 알림 삭제 컨트롤러 메소드 구현 * #187 test: 특정 알림 삭제 컨트롤러 테스트 코드 구현 * #187 fix: isDeletd 조건문 추가 * #187 docs: notification 스키마 수정 * #187 feat: 회원 알림 모두 읽음 컨트롤러 및 서비스 구현 * #187 test: 알림 모두 읽기 테스트 코드 추가 * #187 feat: 존재하지 않는 알람 등록번호 검증 메소드 추가 * #187 feat: 알림 전체 삭제 컨트롤러 및 서비스 구현 * #187 fix: deleteAllBatch cnrk * [feat] 코드 분실 해결 (#199) * #187 feat: 회원 알림 모두 읽음 컨트롤러 및 서비스 구현 * #187 test: 알림 모두 읽기 테스트 코드 추가 * #187 test: 알림 모두 읽기 예외 테스트 코드 추가 * #187 feat: 존재하지 않는 알람 등록번호 검증 메소드 추가 * #187 test: 알림 모두 읽음 서비스 예외 테스트 추가 * #187 test: 알림 특정 읽음 컨트롤러 테스트 코드 추가 * #187 feat: 알림 전체 삭제 컨트롤러 및 서비스 구현 * #187 test: 알림 전체 삭제 컨트롤러 및 서비스 테스트 코드 구현 * #187 feat: 특정 알림 삭제 컨트롤러 메소드 구현 * #187 test: 특정 알림 삭제 컨트롤러 테스트 코드 구현 * #187 fix: isDeletd 조건문 추가 * #187 docs: notification 스키마 수정 * #187 feat: 회원 알림 설정 수정 컨트롤러 및 서비스 구현 * #187 test: 회원 알림 설정 수정 서비스 테스트 코드 구현 * #187 test: 회원 알림 설정 수정 컨트롤러 테스트 코드 구현 * #187 fix: soft delete 제거 * #187 feat: 소셜 로그인 또는 회원가입시 기본 알림 설정 등록하도록 구현 * #187 feat: 회원 알림 설정 수정관련 서비스 테스트 코드 추가 * #187 fix: validation 애노테이션 추가 * [feat] 회원 알림 관련 API 구현 (#197) * #187 feat: 회원 알림 모두 읽음 컨트롤러 및 서비스 구현 * #187 test: 알림 모두 읽기 테스트 코드 추가 * #187 test: 알림 모두 읽기 예외 테스트 코드 추가 * #187 feat: 존재하지 않는 알람 등록번호 검증 메소드 추가 * #187 test: 알림 모두 읽음 서비스 예외 테스트 추가 * #187 test: 알림 특정 읽음 컨트롤러 테스트 코드 추가 * #187 feat: 알림 전체 삭제 컨트롤러 및 서비스 구현 * #187 test: 알림 전체 삭제 컨트롤러 및 서비스 테스트 코드 구현 * #187 feat: 특정 알림 삭제 컨트롤러 메소드 구현 * #187 test: 특정 알림 삭제 컨트롤러 테스트 코드 구현 * #187 fix: isDeletd 조건문 추가 * #187 docs: notification 스키마 수정 * #187 feat: 회원 알림 모두 읽음 컨트롤러 및 서비스 구현 * #187 test: 알림 모두 읽기 테스트 코드 추가 * #187 feat: 존재하지 않는 알람 등록번호 검증 메소드 추가 * #187 feat: 알림 전체 삭제 컨트롤러 및 서비스 구현 * #187 feat: 회원 알림 모두 읽음 컨트롤러 및 서비스 구현 * #187 test: 알림 모두 읽기 테스트 코드 추가 * #187 test: 알림 모두 읽기 예외 테스트 코드 추가 * #187 feat: 존재하지 않는 알람 등록번호 검증 메소드 추가 * #187 test: 알림 모두 읽음 서비스 예외 테스트 추가 * #187 test: 알림 특정 읽음 컨트롤러 테스트 코드 추가 * #187 feat: 알림 전체 삭제 컨트롤러 및 서비스 구현 * #187 test: 알림 전체 삭제 컨트롤러 및 서비스 테스트 코드 구현 * #187 feat: 특정 알림 삭제 컨트롤러 메소드 구현 * #187 test: 특정 알림 삭제 컨트롤러 테스트 코드 구현 * #187 fix: isDeletd 조건문 추가 * #187 feat: 회원 알림 설정 수정 컨트롤러 및 서비스 구현 * #187 test: 회원 알림 설정 수정 서비스 테스트 코드 구현 * #187 test: 회원 알림 설정 수정 컨트롤러 테스트 코드 구현 * #187 fix: soft delete 제거 * #187 feat: 소셜 로그인 또는 회원가입시 기본 알림 설정 등록하도록 구현 * #187 feat: 회원 알림 설정 수정관련 서비스 테스트 코드 추가 * #187 fix: validation 애노테이션 추가 * [feat] 회원 알림 관련 API 구현 (#197) * #187 feat: 회원 알림 모두 읽음 컨트롤러 및 서비스 구현 * #187 test: 알림 모두 읽기 테스트 코드 추가 * #187 test: 알림 모두 읽기 예외 테스트 코드 추가 * #187 feat: 존재하지 않는 알람 등록번호 검증 메소드 추가 * #187 test: 알림 모두 읽음 서비스 예외 테스트 추가 * #187 test: 알림 특정 읽음 컨트롤러 테스트 코드 추가 * #187 feat: 알림 전체 삭제 컨트롤러 및 서비스 구현 * #187 test: 알림 전체 삭제 컨트롤러 및 서비스 테스트 코드 구현 * #187 feat: 특정 알림 삭제 컨트롤러 메소드 구현 * #187 test: 특정 알림 삭제 컨트롤러 테스트 코드 구현 * #187 fix: isDeletd 조건문 추가 * #187 docs: notification 스키마 수정 * #187 feat: 회원 알림 모두 읽음 컨트롤러 및 서비스 구현 * #187 test: 알림 모두 읽기 테스트 코드 추가 * #187 feat: 존재하지 않는 알람 등록번호 검증 메소드 추가 * #187 feat: 알림 전체 삭제 컨트롤러 및 서비스 구현 * #187 fix: deleteAllBatch cnrk * #187 fix: 코드 분실 해결 * #187 fix: 코드 분실 해결 * #187 fix: 오타 수정 * [fix] 알림 설정 수정 API 문제 해결 (#202) * #187 fix: 기존 로컬 회원도 수정시 데이터가 없는 경우 새로 반영하도록 추가 * #201 test: 알림 설정 수정 테스트 코드 추가 * #201 fix: 오타 수정 * #203 feat: 회원 알림 권한 검사 AOP 추가 (#204) * #203 fix: 알림 모두 읽음 API에 권한 검사 AOP 추가 (#205) * [feat] 알림 메시지 발송 API 구현 (#206) * #200 feat: 알림 생성 및 전송 API 구현 * #200 feat: 알림 발송 서비스 실패시 예외 처리 구현 * #200 test: 알림 발송 서비스 예외 케이스 구현 * #200 test: 알림 메시지 발송 컨트롤러 테스트 코드 추가 * [fix] 오타 수정 (#207) * #200 feat: 알림 생성 및 전송 API 구현 * #200 feat: 알림 발송 서비스 실패시 예외 처리 구현 * #200 test: 알림 발송 서비스 예외 케이스 구현 * #200 test: 알림 메시지 발송 컨트롤러 테스트 코드 추가 * #200 fix: 오타 수정 * #200 feat: 알림 생성 및 전송 API 구현 * #200 feat: 알림 발송 서비스 실패시 예외 처리 구현 * [fix] FcmToken 테이블 생성 쿼리 오타 수정 (#209) * #208 fix: FcmToken 테이블 생성 쿼리 오타 수정 * #208 fix: FcmToken 테이블 생성 쿼리 오타 수정 * [Refactor] 포트폴리오 종목 조회 리팩토링 (#211) * #210 test: n+1 문제를 확인하기 위해 테스트 코드 수정 * #210 fix: 테스트 설명 수정 - 파일에 대한 영구 링크 가져오기 테스트 * #210 fix: 테스트 설명 원래대로 복구 * #210 refactor: @NamedEntityGraph 정의 및 @batchsize 추가 * #210 fix: 주석 제거 * #210 fix: 주석 제거 * [feat] 종목 지정가 알림 추가 (#212) * #186 feat: 종목 지정가 알림 추가 컨트롤러 및 서비스 구현 * #186 test: 종목 지정가 알림 추가 서비스 테스트 코드 구현 * #186 test: 종목 지정가 알림 추가 컨트롤럴 테스트코드 구현 * #186 fix: 로그인 filter 제외 경로 수정 - /apistocks/{tickerSymbol}/target-price/notifications 경로에 대하여 로그인을 요구하도록 변경 * #186 docs: init-schmea.sql 수정 - stock_target_price 테이블 갱신 * [feat] 종목 지정가 알림 제거 API 구현 (#214) * #186 feat: 종목 지정가 알림 제거 컨트롤러 및 서비스 구현 * #186 test: 종목 지정가 알림 제거 컨트롤러 및 서비스 테스트 코드 구현 * #213 fix: 회원 알림 API의 payload 변경 (#215) - content -> body로 변경 * #216 fix: 종목 지정가 알림 경로 변경 (#217) * #218 fix: 대시보드 오버뷰 리스폰스 바디에 totalGain 추가 (#219) * [feat] 회원 종목 알림가 단일 제거 및 전체 제거 구현 (#221) * #186 feat: 종목 지정가 알림 단일 제거 및 전체 제거 서비스 코드 구현 * #186 test: 테스트 코드 수정 * #186 test: 테스트 코드 수정 * [fix] 회원 알람 설정 수정 스펙 변경 (#222) * #220 docs: 스키마 변경 * #220 feat: 회원 알람 설정 수정시 모든 상태가 비활성화인 경우 FCM 토큰을 제거하도록 변경 * #220 test: 회원 알람 설정 수정 관련 테스트 코드 추가 * [fix] fcm token 중복 검증 추가 (#223) * #220 docs: 스키마 변경 * #220 feat: 회원 알람 설정 수정시 모든 상태가 비활성화인 경우 FCM 토큰을 제거하도록 변경 * #220 test: 회원 알람 설정 수정 관련 테스트 코드 추가 * #220 feat: Fcm 토큰 중복 검증 추가 * [feat] FCM 토큰 등록 로직 변경 (#224) * #220 docs: 스키마 변경 * #220 feat: 회원 알람 설정 수정시 모든 상태가 비활성화인 경우 FCM 토큰을 제거하도록 변경 * #220 test: 회원 알람 설정 수정 관련 테스트 코드 추가 * #220 feat: Fcm 토큰 중복 검증 추가 * #220 feat: 회원 알람 설정 수정시 모든 상태가 비활성화인 경우 FCM 토큰을 제거하도록 변경 * #220 fix: fcm 토큰 등록 수정 - 토큰 등록시 이미 존재하는 경우 최신 활성화 시간을 갱신하도록 변경 * [fix] 검증문 제거 (#226) * #220 feat: 회원 알람 설정 수정시 모든 상태가 비활성화인 경우 FCM 토큰을 제거하도록 변경 * #220 feat: Fcm 토큰 중복 검증 추가 * #220 fix: 검증문 제거 * #220 test: 메일 서비스 모킹 * [test] test container 적용 (#227) * #153 docs: 프로파일별 yml 파일 분리 * #153 test: 테스트 클래스에 컨테이너 베이스 클래스 추가 * #153 docs: docker 설정 수정 * [feat] 종목 지정가 알림 목록 조회 API 구현 (#228) * #153 feat: query fetch join * #186 test: 종목 지정가 알림 목록 조회 테스트 코드 추가 * #186 feat: 정렬 기준 추가 * [feat] 종목 지정가 알림 정보 수정 API 구현 (#229) * #153 feat: query fetch join * #186 test: 종목 지정가 알림 목록 조회 테스트 코드 추가 * #186 feat: 정렬 기준 추가 * #186 feat: 종목 지정가 알림 정보 수정 컨트롤러 및 서비스 코드 구현 * #186 test: 종목 지정가 알림 정보 수정 컨트롤러 및 서비스 테스트 코드 구현 * [feat] 포트폴리오 활성 알림 목록 조회 API 구현 (#230) * #188 feat: 포트폴리오 활성 알림 목록 조회 컨트롤러 및 서비스 코드 구현 * #188 test: 포트폴리오 활성 알림 목록 조회 컨트롤러 및 서비스 테스트코드 구현 * #156 docs: ci 수행시 test 추가 (#231) * [feat] 회원 알림 API 변경 (#236) * #235 feat: 회원 알림 메시지 발송 API 변경 및 조회 변경 - Notification 엔티티 테이블의 구조를 상속관계로 변경 - 회원 알림 메시지 발송 API에서 RequestBody의 구조 변경 - 회원 알림 목록 조회 API에서 ResponseBody 구조 변경 * #235 test: 테스트 코드 수정 - Notification 엔티티 구조 변경으로 인한 테스트 코드 수정 * [docs] Spring Rest Docs 환경 추가 (#237) * #232 docs: Rest Docs 관련 설정 추가 * #232 docs: rest docs 적용 * [feat] FCM 토큰 삭제 (#238) * #232 feat: FCM 토큰 삭제 API 구현 * #232 docs: FCM API Rest Docs 추가 * [feat] 종목 지정가 알림 특정 조회 API 구현 (#239) * #234 feat: 종목 지정가 알림 특정 조회 컨트롤러 및 서비스 코드 구현 * #234 test: 종목 지정가 알림 특정 조회 컨트롤러 및 서비스 테스트 코드 구현 * #234 docs: 종목 지정가 알림 특정 조회 Rest Docs 추가 * [fix] 프로필 조회 및 종목 지정가 알림 특정 조회 로직 수정 (#242) * #241 fix: 회원의 알림 설정 더미데이터에서 실제 데이터로 변경 * #241 fix: 종목 지정가 알림 특정 조회에서 종목을 찾지 못하면 빈 리스트 반환 * #241 fix: 테스트 코드에서 스케줄링 메소드가 실행되지 않도록 수정 * #189 docs: secret 최신 갱신 * #189 docs: oauth redirect url 변경 * [feat] 매입 이력 이벤트에 따른 Push Notification 구현 (#243) * #189 rename: MailService 이동 * #189 feat: 매입 이력 추가 이벤트에 따른 PushNotification 서비스 구 * #189 test: PushNotification 서비스 테스트 추가 * #189 feat: 매입 이력 추가 이벤트에 따른 PushNotificationEvent 구현 * #189 feat: 매입 이력 수정, 삭제에 따른 PushNotificationEvent 추가 * #189 feat: 알림 서비스에서 Notification 데이터 추가하도록 구현 * #189 test: 알림 관련 테스트 코드 추가 * #189 feat: 알림 컨트롤러 및 테스트 코드 추가 * #189 docs: 알림 최대손실율 전송 Rest Docs 추가 * #189 feat: 메시지 전송 실패시 fcm 토큰 삭제 * #189 feat: 최대 손실율 도달 알림에서 메시지 전송 실패시 토큰 삭제 * #189 test: 최대 손실율 도달 알림 관련 예외 케이스 추가 * #244 fix: 주석 추가 * [fix] QA 버그 해결 (#247) * #189 rename: MailService 이동 * #189 feat: 매입 이력 추가 이벤트에 따른 PushNotification 서비스 구 * #189 test: PushNotification 서비스 테스트 추가 * #189 feat: 매입 이력 추가 이벤트에 따른 PushNotificationEvent 구현 * #189 feat: 매입 이력 수정, 삭제에 따른 PushNotificationEvent 추가 * #189 feat: 알림 서비스에서 Notification 데이터 추가하도록 구현 * #189 test: 알림 관련 테스트 코드 추가 * #189 feat: 알림 컨트롤러 및 테스트 코드 추가 * #189 docs: 알림 최대손실율 전송 Rest Docs 추가 * #189 feat: 메시지 전송 실패시 fcm 토큰 삭제 * #189 feat: 최대 손실율 도달 알림에서 메시지 전송 실패시 토큰 삭제 * #189 test: 최대 손실율 도달 알림 관련 예외 케이스 추가 * #189 docs: oauth redirect url 변경 * #244 feat: 포트폴리오 목록 조회 API의 ResponseBody에 currentValuation 추가 * #244 fix: 포트폴리오 종목 추가 문제 해결 - 매입 이력 같이 추가시 purchaseDate로 변경 - 이미 존재하는 종목의 매입 이력 같이 추가시 중복 추가되지 않도록 함 * #244 fix: rest docs 수정 * [fix] qa 버그 문제 해결 (#248) * #244 fix: 포트폴리오 종목 조회시 연배당률에 대한 소수점 2자리 실수로 변경 * #244 docs: 포트폴리오 종목 조회 API Rest Docs 추가 * #244 fix: 대시보드 오버뷰 문제 해결 - 0 나누기 문제 해결 * #244 docs: 대시보드 오버뷰 Rest Docs 추가 * #244 fix: 계정 삭제 문제 해결 * #244 docs: 계정 삭제 Rest Docs 추가 * #244 test: 테스트명 수정 * #244 feat: watchStock 추가시 현재가 갱신 이벤트 추가 * #244 feat: kisService mokcing 추가 * #244 fix: 포트폴리오의 예산이 0원인 경우 포트폴리오 차트 문제 해결 (#249) * #244 fix: 포트폴리오의 예산이 0원인 경우 포트폴리오 차트 문제 해결 - 0 나누기 문제 * #244 fix: 신규 회원가입시 NotificationPreference 설정을 모두 비활성화로 변경 * #244 test: 테스트 추가 * [fix] FCM 토큰 등록 문제 해결 (#250) * #244 fix: 포트폴리오의 예산이 0원인 경우 포트폴리오 차트 문제 해결 - 0 나누기 문제 * #244 fix: 신규 회원가입시 NotificationPreference 설정을 모두 비활성화로 변경 * #244 test: 테스트 추가 * #244 fix: FCM 토큰 등록 쓰레드 세이프 문제 해결 - fcm_token 테이블에 token, memberId 컬럼에 유니크 제약 조건 설정 * #244 docs: init-schema 수정 * [fix] 매입 이력 이벤트에 따른 Notification 저장 문제 해결 (#251) * #244 fix: 포트폴리오 reachedTargetGain에 histories 전달하도록 변경 * #246 fix: 매입 이력 구매 이벤트에 따른 알림 미저장 문제 해결 - @TransactionalEventListener -> @eventlistener로 변경 * #246 feat: 최대손실율 달성 알림 로직 추가 * #246 fix: Push Notification 문제 해결 - Portfolio에 purchaseHistory 리스트를 전달하여 목표수익률 및 최대손실율 게산하도록 수행 * #246 test: 매입 이력 이벤트에 따른 최대손실율 알림 테스트 코드 추가 * #246 rename: 메소드간 순서 변경 * #246 refactor: 매입 이력 추가 리팩토링 - 현금이 부족한지 검증하는 부분 리팩토링 - 계산하는 부분을 PurchaseHistory로 이동 * #246 fix: 매입이력 이벤트 수정 - 한 회원의 여러 디바이스에 알림을 보내도 실제 알림 데이터는 1개만 저장되도록 수정 * �[docs] Rest Docs 추가 (#255) * #253 fix: maximumIsActive 필드 삭제 * #253 fix: targetGainNotification 필드 삭제 * #253 docs: 사용자 소셜 로그인 추가 * #253 docs: Rest Docs 추가 * #253 docs: Rest Docs에 Authorization 추가 * #253 docs: adoc 파일에 request-header.adoc 추가 * #253 docs: init-schema.sql 변경 * [feat] 회원가입 및 프로필 수정 스펙 변경 (#256) * #254 feat: 일반 회원가입 수정 - 회원가입시 이미지 파일의 이름이 default.png가 아닌 경우에는 새로운 이미지를 업로드하고 아닌 경우 기본 프로필 이미지 사진의 객체 URL을 사용합니다. * #254 feat: 회원 프로필 수정 스펙 변경 * #254 feat: 회원가입 프로필 처리 변경 * #254 feat: 이미지 파일 삭제 수정 * #254 docs: 회원 API RestDocs 수정 * #254 docs: index.adoc 수정 * [fix] 테스트 실패 수정 (#257) * #254 feat: 일반 회원가입 수정 - 회원가입시 이미지 파일의 이름이 default.png가 아닌 경우에는 새로운 이미지를 업로드하고 아닌 경우 기본 프로필 이미지 사진의 객체 URL을 사용합니다. * #254 feat: 회원 프로필 수정 스펙 변경 * #254 feat: 회원가입 프로필 처리 변경 * #254 feat: 이미지 파일 삭제 수정 * #254 docs: 회원 API RestDocs 수정 * #254 docs: index.adoc 수정 * #254 fix: 테스트 실패 수정 * [fix] 포트폴리오 및 종목 지정가 알림 목록 조회 변경 (#258) * #254 fix: 포트폴리오 활성 알림 API 변경 - 응답 프로퍼티에 각각의 포트폴리오에 securitiesFirm 추가 * #252 fix: 회원 샘플 데이터 초기화 변경 - provider 및 닉네임 변경 * #252 fix: 종목 지정가 알림 목록 조회 변경 - 응답시 종목 지정가의 생성일자를 기준으로 오름차순으로 정렬 * #252 docs: 종목 지정가 알림 목록 조회 Rest Docs 추가 * #252 docs: Rest Docs 수정 * [fix] 포트폴리오 활성 알림 목록 조회 변경 (#259) * #254 fix: 포트폴리오 활성 알림 API 변경 - 응답 프로퍼티에 각각의 포트폴리오에 securitiesFirm 추가 * #252 fix: 회원 샘플 데이터 초기화 변경 - provider 및 닉네임 변경 * #252 fix: 종목 지정가 알림 목록 조회 변경 - 응답시 종목 지정가의 생성일자를 기준으로 오름차순으로 정렬 * #252 docs: 종목 지정가 알림 목록 조회 Rest Docs 추가 * #252 docs: Rest Docs 수정 * #252 docs: 포트폴리오 활성 알림 조회 서비스 수정 - 생성일자를 기준으로 오름차순 정렬 * [fix] API 응답에서 퍼센티지 데이터 수정 (#261) * #260 fix: 퍼센티지 데이터를 정수타입에서 Double 타입으로 변경 * #260 test: 테스트 코드 수정 - 실수값 검증하도록 수정 * #260 fix: 메소드의 타입 변경 * [fix] dailyGainRate 계산 로직 수정 (#262) * #260 fix: 퍼센티지 데이터를 정수타입에서 Double 타입으로 변경 * #260 test: 테스트 코드 수정 - 실수값 검증하도록 수정 * #260 fix: 메소드의 타입 변경 * #260 fix: dailyGainRate 수식 수정 * #260 fix: 연배당율 계산식 문제 해결 - 실수 타입으로 변경 * [docs] Rest Docs API 추가 (#263) * #253 docs: 액세스 토큰 갱신 Rest Docs 추가 * #253 docs: 인가코드 요청 URL Rest Docs 추가 * #253 docs: 회원 관련 Rest Docs API 추가 * #253 docs: 포트폴리오 Rest Docs API 추가 * #253 docs: 테스트 코드 수정 * [docs] notification adoc 수정 (#264) * #253 docs: 인가코드 요청 URL Rest Docs 추가 * #253 docs: 알림 adoc 수정 * [docs] Rest Docs 테스트 실패 해결 (#265) * #253 docs: 인가코드 요청 URL Rest Docs 추가 * #253 docs: 알림 adoc 수정 * #253 docs: 테스트 실패 해결 * [feat] 종목 지정가 변경 이벤트에 따른 종목 지정가 알림 구현 (#266) * #254 feat: 종목 지정가 알림 발송 API 구현 * #254 test: 종목 지정가 알림 발송 API 테스트 코드 구현 * #254 test: 종목 지정가 알림 발송 서비스 테스트 코드 수정 - 계정 알림 데이터 추가 * #254 docs: adoc 문서 수정 - 종목 지정가 알림 발송 API 추가 - 포트폴리오 목표 수익률 도달 알림 오타 수정 * #254 test: 테스트 코드 수정 - 종목 지정가 알림 발송 API Rest Docs 추가 - 현재가 읽기 메소드명 변경 - 오타 수정 * #254 refacotr: 현재가 읽기 메소드 수정 - 메소드명 수정 - 불필요한 메소드 제거 - 현재가 읽기시 리트라이 추가 * #254 refactor: 매입 이력 이벤트 수정 - SendingParamter에서 구체 클래스로 변경 - SendingParameter가 가지는 필드마다 다르기 때문에 변경, 하지만 다시 추상화하는 방법이 요구됨 * #254 feat: 종목 지정가 알림 서비스 및 이벤트 추가 * #254 feat: 현재가 변경에 따른 종목 지정가 도달 푸시 알림 서비스 추가 * #254 feat: Kis 서비스에 대한 컨트롤러 추가 * #254 feat: 종목 현재가 전체 갱신 API 추가 * #254 feat: 종목 가격 갱신 Rest Docs 추가 * #254 feat: 알림 전송 기록 관리 매니저 추가 * #254 docs: adoc 수정 * #254 feat: 종목 지정가 알림 서비스 수정 - 불필요한 쿼리가 발생하지 않도록 수정 * #254 rename: 종목 지정가 소스코드 이동 * #254 rename: 패키지 이동 * #254 feat: Redis에서 현재가 조회시 Optional로 래핑하여 반환하도록 함 * #254 feat: Redis에서 종가 조회시 Optional로 래핑해서 반환하도록 변경 * #254 style: 코드 정리 * #254 fix: 로깅 레벨 디버그 레벨로 변경 * #254 fix: 현재가 구하는 메소드 반환 타입 Long으로 변경 * #254 refactor: fetchCurrentPrice 리팩토링 - reactive적으로 변경 * #254 feat: 현재가 조회 API 추가 * #254 fix: 종가 리스폰스명 변경 * [refactor] 종목 지정가 푸시 알림 리팩토링 (#267) * #254 refacotr: 현재가 갱신 리팩토링 * #254 fix: 코드 수정 * #254 fix: 알림 발송 간격 24시간으로 설정 * #254 refactor: 종목 지정가 알림 발송 서비스 리팩토링 - 비동기화 * #254 refactor: 종목 지정가 알림 발송 서비스 리팩토링 - 쓰레드풀 생성 * #254 test: 테스트 코드 실패 해결 * #254 docs: 오타 수정 - 종목 지정가 알림 발송 adoc 오타 수정 * #254 fix: 종목 지정가 도달 알림 문제 해결 (#269) - 발송 이력 저장시 notificationId를 TargetPriceNotification.id로 변경 * [fix] 종목 지정가 도달 알림 예외 처리 (#270) * #254 fix: Notification 엔티티 변경 - messageId를 추가하고 StockTargetPriceNotification 자식 클래스에는 targetPriceNotificationId를 추가 * #254 fix: Rest Docs 오타 수정 * #254 fix: firebase 알림 전송시 실패하는 경우의 로직 수정 - 대기하는 부분을 두번으로 나눠서 비동기로 처리하도록 변경 * #254 docs: adoc에 member_notification.adoc 추가 * #272 fix: 회원 알림 메시지 발송 API를 포트폴리오, 종목 지정가로 분리 * #272 fix: 종목 지정가 알림 에러 해결 - targetNotificationId가 db에 저장되지 않는 문제 * #273 fix: 종목 지정가 알림 버그 수정 (#274) - notification 엔티티 데이터가 토큰이 여러개더라도 messageId를 기준으로 고유하게 1개만 저장하도록 저장 * [feat] 알람 기능 구현 (#276) * #273 refactor: 목표수익률, 최대손실율, 종목 지정가 알림 기능 추상화 * #272 feat: 알림 기능 수행시 purchaseHistory set 메소드 추가 * #272 fix: 테스트 코드 수정 * #272 fix: 매입이력 이벤트시 매입이력 조회 문제 해결 - 지연로딩을 이미 언프록시하였기 때문에 새로 추가된 매입 이력을 리스트에 추가하도록 함 * #272 fix: 매입 이력 이벤트 알람을 위한 리스트 갱신 로직 추가 * #272 fix: adoc 정리 * #272 fix: 스키마 수정 * #272 fix: 오타 수정 * [fix] 포트폴리오 및 대시보드 차트 API에 대한 정렬 기준 적용 (#278) * #277 fix: 회원가입 인증 코드 오타 수정 * #277 fix: 닉네임 중복 체크시 입력 형식 검사 * #277 fix: PortfolioStock -> PortfolioHolding으로 변경 * #277 feat: 포트폴리오 종목 Rest Docs 추가 * #277 feat: 매입이력 Rest Docs 추가 * #277 feat: 종목 Rest Docs 추가 * #277 feat: 포트폴리오 알람 활성화 Rest Docs 추가 * #277 test: 테스트 코드 실패 해결 * #277 feat: 종목 지정가 알림 Rest Docs 추가 * #277 feat: 회원 알림 Rest Docs 추가 * #277 feat: 관심 종목 Rest Docs 추가 * #277 feat: 관심 종목 Rest Docs 추가 * #277 feat: 대시보드 Rest Docs 추가 * #277 feat: 차트 정렬 적용 * #277 test: 테스트 코드 실패 해결 * #277 docs: adoc에 빠진 adoc 도메인 추가 * [reactor] sse 전송 방식 변경 (#281) * #271 test: 테스트 코드 수정 * #277 fix: 불필요한 매개변수 제거 및 @tostring 추가 * #277 refactor: Sse 설계 변경 - RxJava 추가 - Observer, Observable 추가 * #271 feat: take 적용 * [feat] 주식 종목 최신화 구현 (#283) * feat: 종목 최신화 * docs: 종목 최신화 rest docs 추가 * #279 feat: 서버 시작시 종목 최신화 추가 * #279 feat: 코드 정리 * #279 rename: aop 패키지 이동 * #279 docs: 테이블 스키마 변경 * #284 feat: cors 설정 (#285) * #284 fix: www 서브 도메인 추가 * #284 fix: webconfig cors 설정 삭제 * #288 fix: Notification 객체 삭제 (#289) * #288 fix: 종목 최신화 모듈 에러 해결 (#290) - 기존 stocks 파일을 이용한 기존 종목 최신화 스케줄링 메서드가 최신화된 종목들을 삭제한 것이 원인 * #288 fix: Notification payload 추가, data 페이로드 제거 - data만 보내는 경우 fcm.options.link 사용하지 못하여 notification 추가로 변경 * [feat] Money 도메인 구현 (#294) * #291 feat: Money, Count 도메인 추가 * fix: Money, Count 도입으로 인한 테스트 코드 수정 * fix: 테스트 코드 수정 * fix: money 직렬화시 정수 탕비으로 직렬화 * fix: Portfolio entity change the config with precision * feat: add DataIntegrityViolationExpceiton handler * fix: change column config * #296 fix: 제약 조건 변경 (#297) * fix: test 실패 해결 * fix: 포트폴리오 상세 조회 response property 변경 (#298) * #293 feat: 종목의 현재가 및 종가 조회 메서드 수정 (#299) - 가격이 redis에 없는 경우 kis 서버에 질의하여 가져오도록 합니다. * #292 fix: 목표수익률 알림 버그 해결 (#301) - 평가금액을 기준으로 수정 * [docs] README 수정 (#303) * docs: README.md 수정 * docs: README.md 작성중 * docs: readme 트러블 슈팅 그외 작성 * docs: 트러블 슈팅 문서 작성 * docs: 핵심 기능 글 작성 * docs: 핵심 기능 그림 추가 * docs: image 링크 수정 * docs: 핵심 기능 프로세스 이미지 다시 추가 * docs: 핵시기능 접기 추가 * [bug] Watchlist 조회 문제 해결 (#305) * fix: Watchlist 조회 버그 수정 * #304 docs: fineants-secret 버킷 이름 추가 * feat: 로그인시 provider 프로퍼티 추가 (#307) * fix: response 수정 (#310) * fix: nullpointer exception 해결 (#313) * [feat] 배당 일정 최신화 추가 (#315) * #286 feat: 배당금 일정 최신화 모듈 구현 * feat: 배당일정 최신화 서비스 구현 * fix: 알림 서비스에서 비동기 제거 * feat: 배당일정 최신화 구현 * feat: 배당 일정 최신화 구현 * fix: 주석 추가 * feat: 코드 정리 * fix: 코드 정리 * fix: money getter remove * fix: REadWatchListsResponse 변경 * feat: localstack 추가 * #286 fix: 테스트 컨테이너 코드 수정 * fix: 테스트 컨테이너 코드 수정 * #286 fix: 테스트 프로파일 db 프로퍼티 제거 * #286 fix: 코드 정리 * fix: remove dividend restcontroller * [fix] 배당 일정 최신화의 역직렬화 문제 해결 (#317) * fix: 배당일정 가져오는 문제 해결 * #316 fix: 배당 일정 uri 추가 * fix: 포트폴리오 검증 수정 (#319) * fix: 포트폴리오 검증 로직 수정 (#321) * fix: 포트폴리오 활성 목록 조회 응답 변경 (#322) * [feat] 포트폴리 알림 수정 (#324) * feat: add resp property for portfolio's notify setting api * feat: 포트폴리오 알림 수정 검증문 추가 * test: 테스트 코드 실패 해결 * #308 feat: ssl 인증서 갱신 * #308 feat: ssl password change * Feat/#308 Moeny 도메인 추가 (#326) * feat: currency 도메인 추가 * feat: money 도메인에 currency 추가 * test: 테스트 코드 실패 해결 * feat: 알림 메시지 내용 형식 변경 * #308 fix: compareto 코드 수정 * feat: RateDivision 구현 * fix: 타입 수정 * fix: change the type to the expression * fix: code 정리 * #308 fix: DecimalFormat 변경 * #308 fix: DecimalFormat 패턴 변경 - 소수점 둘째자리까지는 출력, 네번째자리까지는 값이 있다면 출력 * fix: package 구조 변경 (#329) * [fix] 테스트 컨테이너 설정 변경 (#330) * fix: package 구조 변경 * fix: container 설정 변경 * [feat] 환율 관리 기능 구현 (#331) * feat: ExcahngeRate 추가 기능 구현 * feat: exchange rate read, update, delete 구현 * feat: 환율 관리 기능 구현 * feat: 기준 통화 변경 구현 * #328 feat: 환율 삭제시 기준 통화 삭제할 수 없도록 변경 * #328 feat: 기준통화 변경 코드 개선 * fix: 테스트 코드 실패 해결 * [test] Redis 모킹 코드 제거 (#332) * #311 docs: init-schmea 테이블 추가 * #311 test: redis 모킹 코드 제거 * #334 fix: API 수정 (#335) * #336 docs: 설명 수정 (#337) * #336 docs: 설명 수정 (#338) * [fix] 오타 수정 (#339) * #336 docs: 설명 수정 * #336 docs: 오타 수정 * #333 feat: 포트폴리오 종목 조회 및 sse 응답의 프로퍼티 수정 (#341) - id 추가 * [fix] 테스트 코드 오타 수정 (#342) * #333 feat: 포트폴리오 종목 조회 및 sse 응답의 프로퍼티 수정 - id 추가 * test: 테스트 코드 오타 수정 * [fix] 알림 수정 (#344) * #333 feat: 종목 지정가 알림 로직 변경 - 알림 발송 -> 알림 저장이 아닌 알림 저장 -> 알림 발송으로 변경 - 알림 발송에 실패해도 알림 저장이 되도록 변경 * #343 feat: 포트폴리오 알림 로직 수정 - 알림 발송 -> 알림 저장이 아닌 알림 저장 -> 알림 발송으로 변경 - 알림 발송에 실패해도 알림 저장이 되도록 변경 * #343 fix: kis 프로퍼티명 버그 수정 * [docs] workflow 설정 (#346) * #33 build: spring 2.7->3.1 java 11->17 변경 * #333 feat: Spring Security OAuth 로그인 구현 * #333 feat: SetupDataLoader 구현 * #333 feat: 메서드 매개변수 중 AuthMember를 MemberAuthentication로 변경 및 코드 정리 * #333 test: createPortfolio 메서드를 상위 클래스로 통합 * #333 refactor: 액세스 토큰 갱신 리팩토링 * feat: login rest docs 테스트 코드 구현 * #333 feat: 시큐리티 설정 추가 * docs: oauth rest docs * #333 feat: 컨트롤러에 보안 설정 애노테이션 추가 * #333 feat: 컨트롤러에 보안 설정 애노테이션 추가 * fix: controller security annto delete * #333 feat: AjaxScurityCnofig 보안 설정 * #333 style: 체크 스타일에 따른 코드 정리 * #333 fix: 테스트 후 발생한 버그 수정 * #333 feat: 로그인후 쿠키에 토큰 설정 * #333 test: 테스트 실패 해결 * #333 feat: 로그아웃 버그 해결 * #333 docs: 권한 설명 추가 * #333 test: 테스트 코드 실패 해결 * #333 test: 회원에서 인증 및 회원가입 분리 * #333 fix: 관심 종목 문제 해결 * #333 feat: 서버 실행시 KRW 환율 셋업 구현 * #333 feat: release 프로파일 관련 프로퍼티 추가 * #333 docs: 배포 환경 설정 * #333 docs: docker-compose 설정 변경 * #333 docs: 서버 포트 설정 변경 * #333 docs: workflow jdk 11->17 설정 * #333 fix: 테스트 코드 실패 해결 * #333 docs: 프로젝트 파일 보관 장소 temp로 변경 * #333 docs: stop.sh 스크립트 수정 * #333 docs: after-install.sh 스크립트 수정 * #333 docs: docker-compose-release 파일 수정, container 이름 변경 * #333 docs: redis.conf 설정 변경 * #333 docs: redis.conf 포트 설정 * #333 docs: redis port 변경 * #333 docs: redis port 변경 * #333 docs: release cloud watch 삭제 * #333 docs: secret 갱신 * #333 docs: oauth 프로퍼티 수정 - local, test 프로파일에 대한 Redirect-url 추가 * #333 feat: secret 커밋 갱신 * #333 feat: @EnableWebSeucirty 추가 * #333 feat: 디버깅 레벨 debug로 수정 * #333 docs: 프로파일 문제 해결 * #333 fix: 로그인 과정중 로깅 추가 * #333 fix: 로그인 필터에 로깅 추가 * #333 fix: Ajax 시큐리티 설정 변경, HttpMethod 제거 * #333 fix: Ajax 시큐리티 설정 변경, dispatcherMatcherTypes에 비동기 및 포워드 추가 * #333 fix: AjaxSecurity 인가 설정 변경 * #333 fix: /error 경로 permitAll 설정 * #333 fix: CORS 비활성화 * #333 fix: dispatcherTypeMatcher에 비동기, 포워드, 에러 허용 * #333 fix: 로깅 추가 * #333 fix: PrintStream 설정 * #333 fix: 애노테이션 제거 * #333 fix: @order 애노테이션 메서드 레벨로 이동 * #333 fix: docs ignore 추가 * #333 fix: query parameter template 추가 * [refactor] 엔티티 생성자 수정 (#348) * #333 refactor: Member 생성자 수정 - 빌더 private 변경 - 생성자 접근제한자 private 변경 * #347 refactor: Portfolio 생성자 수정 * #347 refactor: PortfolioHolding 생성자 수정 - 빌더 제거 - 생성자 private 설정 * #347 refactor: Member 생성자의 빌더 제거 * #347 refactor: Portfolio생성자에서 빌더 제거 * #347 refactor: StockDividend 생성자의 빌더 제거 * #347 refactor: PurchaseHistory 생성자 수정 * #347 refactor: fcmToken, Notification 생성자 수정 * #347 fix: 종목 지정가 알림 조건 버그 수정 * #347 refactor: NotificationPreference 생성자 수정 * #347 refactor: PortfolioGainHistory 생성자 수정 * #347 refactor: WatchList, WatchStock 생성자 수정\n -빌더 제거\n -생성자의 접근제한자를 private로 변경하여 캡슐화 * #347 refactor: StockTargetPrice, TargetPriceNoticiation 생성자 수정 * #347 fix: 정적 팩토리 메서드 수정 * #333 fix: dev 프로파일을 production으로 변경 * [fix] ci.cd 설정 수정 (#349) * #333 refactor: Member 생성자 수정 - 빌더 private 변경 - 생성자 접근제한자 private 변경 * #347 refactor: Portfolio 생성자 수정 * #347 refactor: PortfolioHolding 생성자 수정 - 빌더 제거 - 생성자 private 설정 * #347 refactor: Member 생성자의 빌더 제거 * #347 refactor: Portfolio생성자에서 빌더 제거 * #347 refactor: StockDividend 생성자의 빌더 제거 * #347 refactor: PurchaseHistory 생성자 수정 * #347 refactor: fcmToken, Notification 생성자 수정 * #347 fix: 종목 지정가 알림 조건 버그 수정 * #347 refactor: NotificationPreference 생성자 수정 * #347 refactor: PortfolioGainHistory 생성자 수정 * #347 refactor: WatchList, WatchStock 생성자 수정\n -빌더 제거\n -생성자의 접근제한자를 private로 변경하여 캡슐화 * #347 refactor: StockTargetPrice, TargetPriceNoticiation 생성자 수정 * #347 fix: 정적 팩토리 메서드 수정 * #347 rename: 배당금 생성 메서드 부모 클래스로 이동 * #347 docs: ci.cd의 environment 이름 aws로 변경 * #333 fix: dev 프로파일을 production으로 변경 * fix: 배당금 생성 메서드 추가 * #351 fix: 쿠키 생성시 release 프로파일 한에서 secure 비활성화 설정 (#352) * #351 fix: oauth 로그인 쿠키 설정 변경 (#354) - 릴리즈 서버 한에서 쿠키의 secure=false로 설정 * [fix] 쿠키 설정 변경 (#355) * #351 fix: oauth 로그인 쿠키 설정 변경 - 릴리즈 서버 한에서 쿠키의 secure=false로 설정 * #351 fix: 쿠키 path 설정 - path = "/"로 설정 * [feat] CORS 설정 추가 (#356) * #351 fix: oauth 로그인 쿠키 설정 변경 - 릴리즈 서버 한에서 쿠키의 secure=false로 설정 * #351 fix: 쿠키 path 설정 - path = "/"로 설정 * #351 fix: 로그인시 response body에 토큰 정보 제거 * #351 feat: CORS 설정 추가 * [fix] JWT 필터 변경 (#357) * #351 feat: CORS 설정 추가 * #351 feat: 인가 방식 변경 - Authorization 헤더가 아닌 쿠키를 통하여 인가하는 방식으로 변경 * #351 feat: 쿠키 생성 방식 변경 - SameSite=None으로 설정하기 위한 ResponseCookie 방식으로 변경 * #351 fix: SameSite 오타 수정 * #351 fix: secure true로 고정 설정 * [fix] 회원가입 버그 수정 (#358) * #351 feat: 인가 방식 변경 - Authorization 헤더가 아닌 쿠키를 통하여 인가하는 방식으로 변경 * #351 fix: 로그아웃 수정 * #351 feat: test database cleaner 추가 * #351 fix: 회원가입 버그 수정 - 회원 가입시 사용자 권한 기본 추가 * #351 test: 테스트 비활성화 처리 (#359) * [fix] oauth 로그인 설정 수정 (#361) * #351 test: 테스트 비활성화 처리 * #351 fix: provider 쿼리 파라미터 제거 * [fix] origin 추가 (#362) * #351 test: 테스트 비활성화 처리 * #351 fix: provider 쿼리 파라미터 제거 * #351 fix: kakao, naver, google auth server origin 추가 * [fix] 로깅 추가 (#363) * #351 test: 테스트 비활성화 처리 * #351 fix: provider 쿼리 파라미터 제거 * #351 fix: kakao, naver, google auth server origin 추가 * #351 fix: ofKakao 로깅 추가 * [feat] 토큰 갱신 기능 구현 (#364) * #351 feat: 액세스 토큰 갱신 기능 추가 * #351 feat: 액세스 토큰 갱신 기능 추가 * #351 test: 테스트 코드 샘플 소스 수정 - kst 기준으로 설정 * #351 test: 테스트 코드 샘플 소스 수정 - kst 기준으로 설정 * #351 fix: kakao oauth 로그인 버그 수정 - profile 동의하지 않은 경우 null로 저장 * fix: 프로필 사진 null 처리 (#365) * [docs] Rest Docs 수정 (#366) * fix: 프로필 사진 null 처리 * #351 docs: 로그아웃 Rest Docs 수정 - requestHader에 쿠키 추가 * #351 docs: request-cookies 템플릿 추가 * docs: Rest Docs 수정 * #351 docs: request-headers adoc 제거 * feat: add the ssl (#368) * [fix] SSL 재발급 (#369) * feat: add the ssl * #351 fix: ssl 재발급 * #351 fix: ssl 재발급 * [fix] SSL 재발급 (#370) * feat: add the ssl * #351 fix: ssl 재발급 * #351 fix: ssl 재발급 * #367 fix: ssl 삭제 * #367 fix: ssl 재발급 * fix: ssl 인증서 삭제 * feat: ssl 인증서 추가 * test: 테스트 코드 수정 * feat: github action timezone 설정 * [fix] 릴리즈 서버 포트 변경 (#374) * #367 feat: localstack 설정 변경 * #367 feat: nginx 컨테이너 설정 로컬에 추가 * #367 feat: 릴리즈 서버 포트 변경 * [fix] 릴리즈 서버 포트 오타 수정 (#376) * #367 feat: localstack 설정 변경 * #367 feat: nginx 컨테이너 설정 로컬에 추가 * #367 feat: 릴리즈 서버 포트 변경 * #367 fix: 릴리즈 서버의 포트 변경 * #371 fix: 액세스 토큰 갱신 수정 (#378) - 액세스 및 리프레시 토큰 갱신하는 경우에만 리스폰스에 쿠키 설정하도록 변경 * [fix] 쿠키 설정 변경 (#379) * #371 fix: 액세스 토큰 갱신 수정 - 액세스 및 리프레시 토큰 갱신하는 경우에만 리스폰스에 쿠키 설정하도록 변경 * #371 fix: 액세스 토큰 갱신 수정 - addHeader -> setHeader로 수정 - 하나의 Set-Cookie 헤더에 accessToken 및 refreshToken를 세미콜론으로 구분하여 저장 * #371 test: 테스트 코드 해결 * [fix] oauth 설정 오타 수정 (#380) * feat: 액세스 토큰 갱신 롤백 * #371 fix: oauth 설정 오타 수정 * [fix] kakao oauth redirect url 수정 (#381) * feat: 액세스 토큰 갱신 롤백 * #371 fix: oauth 설정 오타 수정 * #371 fix: oauth 설정 오타 수정 * #371 fix: oauth 설정 오타 수정 * #371 fix: 릴리즈 서버 포트 변경 * #371 fix: 릴리즈 서버 포트 변경 * [fix] 중복 Set-Cookie 생성 문제 해결 (#383) * fix: method source 수정 * #371 fix: 토큰 갱신 문제 해결 - 필터를 대상으로 스프링 빈 등록으로 인하여 자동 등록됨 * [fix] 일반 로그인 실패 문제 해결 (#385) * #384 fix: 로그인 실패시 400 응답되도록 수정 * #384 test: 로그인 예외 케이스 실패 해결 * #386 fix: cors 설정에서 오타 수정 (#387) - PUT 메서드 방식 추가 * [test] 테스트 임시 비활성화 (#388) * #386 fix: cors 설정에서 오타 수정 - PUT 메서드 방식 추가 * #386 test: 엑세스 토큰 갱신 테스트 2개 임시 비활성화 * [feat] 포트폴리오 차트 API 수정 (#389) * #386 test: 액세스 토큰 갱신 테스트 코드 문제 해결 - redis에 액세스 토큰에 대한 로그아웃한 기록 존재한 것이 원인 - Date 타입 객체의 toInstant() 호출시 UTC 기준으로 반환된 것이 문제 * #386 feat: 차트 조회시 포트폴리오 디테일 프로퍼티 추가 - 포트폴리오 디테일 프로퍼티에는 등록번호(id), 증권사(securitiesFirm), 이름(name)이 포함되어 있습니다. - 추가 이유 : 프론트 모바일 환경에서 차트 조회시 포트폴리오에 대한 디테일 정보가 필요하기 때문 * [fix] oauth 계정의 프로필 변경 유지 문제 해결 (#391) * fix: oauth 계정의 프로필 변경 문제 해결 * #386 fix: local bucket 경로 변경 * #384 test: oauth 계정의 프로필 유지 테스트 구현 * [refactor] 알림 서비스 리팩토링 (#392) * #350 refactor: List<NotificationCondition>을 제네릭 및 캡슐화 * #350 refactor: 목표 수익률에 대한 알림 전송 리팩토링 * #350 refactor: FirebaseNotificationProvider 추상화 - FirebasePortfolioNotificationProvider 구현 - FirebaseTargetPriceNotificationProvider 구현 * #350 test: 최대 손실율 달성 알림 테스트 추가 * #350 rename: 변수명 변경 * #350 refactor: notifyTargetGain 메서드 리팩토링 * #350 style: saveNotification 메서드 코드 정리 * #350 refactor: NotificationService의 알림 전송 기능 Notifiable 타입으로 추상화 - Notifiable 인터페이스 정의 및 Portfolio 클래스가 구현 * #350 refactor: TargetPriceNotification 추상화 * #350 refactor: Service의 리턴타입을 추상화 * #350 test: 최대 손실율 알림 테스트 추가 * #350 refactor: NotificationDispatcher 추가 - 해당 객체는 여러 NotificationProvider를 실행하여 다양한 알림 매체에게 알림 전송을 요청합니다.(ex, fcm, kakao, mail...) * #350 style: code 정리 * #350 style: 코드 정리 * [fix] API 수정 (#393) * #390 feat: 포트폴리오 종목 리소스 owner 검증문 구현 * test: 테스트 코드 수정 * fix: 매입 이력 생성 리스폰스 수정 * feat: 관심종목 단일 삭제 API 추가 * feat: 종목 지정가 단일 제거 API 추가 * fix: stock, sector exception case 추가 * fix: 권한 제거 * [fix] Rest Docs 오타 수정 (#394) * #390 feat: 포트폴리오 종목 리소스 owner 검증문 구현 * test: 테스트 코드 수정 * fix: 매입 이력 생성 리스폰스 수정 * feat: 관심종목 단일 삭제 API 추가 * feat: 종목 지정가 단일 제거 API 추가 * fix: stock, sector exception case 추가 * fix: 권한 제거 * docs: Rest Docs 오타 수정 * [feat] 종목 스크롤 검색 (#396) * build: QueryDSL 의존성 추가 * feat: getSliceOfStock * test: 종목 검색 테스트 추가 * test: 종목 스크롤 검색 Rest Docs 추가 * docs: 종목 스크롤 검색 Rest Dcos 설명문 추가 * fix: JPAQueryFactory 의존성 문제 해결 * fix: 테스트 실패 해결 * [feat] 리소스 소유 검증문 추가 (#397) * test: 포트폴리오 삭제 권한 테스트 추가 * test: 포트폴리오 다수 제거 서비스의 권한 예외 테스트 추가 * test: 포트폴리오 종목 조회시 권한 예외 케이스 추가 * feat: 매입 이력 리소스 소유 권한 검증문 추가 * test: 매입 이력 추가시 권한 검증문 추가 * test: 매입이력 수정 및 삭제 서비스의 권한 검증문 추가 * test: 포트폴리오 차트 조회에 리소스 소유 검증문 추가 * feat: 권한 검증문 추가 * test: 포트폴리오 알림 상태 변경의 권한 검증 테스트 추가 * feat: 종목 지정가 단일 제거 서비스엣 권한 검증문 추가 * test: 종목 지정가 단일 제거 권한 테스트 추가 * feat: 회원 알림 서비스에 권한 검증문 추가 * test: 회원 알림의 권한 관련 테스트 추가 * feat: 관심종목 서비스에 권한 검증문 추가 * test: 관심종목 권한 테스트 추가 * [fix] 테스트 실패 해결 (#398) * test: 포트폴리오 삭제 권한 테스트 추가 * test: 포트폴리오 다수 제거 서비스의 권한 예외 테스트 추가 * test: 포트폴리오 종목 조회시 권한 예외 케이스 추가 * feat: 매입 이력 리소스 소유 권한 검증문 추가 * test: 매입 이력 추가시 권한 검증문 추가 * test: 매입이력 수정 및 삭제 서비스의 권한 검증문 추가 * test: 포트폴리오 차트 조회에 리소스 소유 검증문 추가 * feat: 권한 검증문 추가 * test: 포트폴리오 알림 상태 변경의 권한 검증 테스트 추가 * feat: 종목 지정가 단일 제거 서비스엣 권한 검증문 추가 * test: 종목 지정가 단일 제거 권한 테스트 추가 * feat: 회원 알림 서비스에 권한 검증문 추가 * test: 회원 알림의 권한 관련 테스트 추가 * feat: 관심종목 서비스에 권한 검증문 추가 * test: 관심종목 권한 테스트 추가 * fix: 테스트 실패 해결 * [fix] 종목 지정가 알림 문제 해결 (#400) * fix: 종목 지정가 알림 문제 해결 - 종목 지정가 알림 발송시 referenceId를 저장하는데 종목 지정가의 referenceId는 tickerSymbol로 저장되어서 policy 검사에서 계속 통과됨 * test: 종목 지정가 시나리오 추가 * fix: messageIdMap 생성 방식 변경 - key값으로 기존 referenceId에서 idToSentHistory 값으로 변경 - idToSentHistory 형식 - 종목 지정가 : targetPriceNotification:{targetPriceNotificationId} - 포트폴리오 : portfolioNotification:{referenceId} * [refactor] 리소스 소유 검증 리팩토링 (#402) * refactor: refactor resource authorized * refactor: refactoring AuthorizationAspect \n - ResourceId annotation 추가 \n - 테스트 코드 실패 해결 \n - ResourceIdAspect 추가 * refactor: 리소스 id 컬렉션에 대한 검증문 리팩토링 - 서비스 매개변수로 리소스 등록번호 컬렉션 전달시 각각의 리소스에 대하여 소유 권한 여부를 검증하도록 리팩토링 * feat: findPortfolio 메서드에 리소스 소유 권한 검증 애노테이션 추가 * feat: PortfolioHoldingService에 리소스 소유 권한 검증 애노테이션 추가 * feat: 리소스 소유 권한 검증 애노테이션 추가 * refactor: annotation에 AuthorizeService 구현체 이름을 전달하는 방식으로 변경 * test: 테스트 실패 해결 - aop 적용에 따른 예외 케이스의 메시지 변경 * test: 테스트 실패 해결 - serviceClass 타입 오타 * feat: PurchaseHistoryService에 @authorize 애노테이션 적용 * test: 매입이력 서비스 테스트 실패 해결 * rename: AuthorizeService 이름 변경 * move: AuthorizedService 구현체 이동 * feat: fcm, portfolio 도메인에 @Authorized 애노테이션 추가 * test: 종목 지정가 테스트 실패 해결 * feat: 회원 알림 서비스에 리소스 소유 검증 애노테이션 추가 * feat: 관심 종목 리소스 소유 검증 애노테이션 추가 * [rename] Rest Docs 수정 (#403) * refactor: refactor resource authorized * refactor: refactoring AuthorizationAspect \n - ResourceId annotation 추가 \n - 테스트 코드 실패 해결 \n - ResourceIdAspect 추가 * refactor: 리소스 id 컬렉션에 대한 검증문 리팩토링 - 서비스 매개변수로 리소스 등록번호 컬렉션 전달시 각각의 리소스에 대하여 소유 권한 여부를 검증하도록 리팩토링 * feat: findPortfolio 메서드에 리소스 소유 권한 검증 애노테이션 추가 * feat: PortfolioHoldingService에 리소스 소유 권한 검증 애노테이션 추가 * feat: 리소스 소유 권한 검증 애노테이션 추가 * refactor: annotation에 AuthorizeService 구현체 이름을 전달하는 방식으로 변경 * test: 테스트 실패 해결 - aop 적용에 따른 예외 케이스의 메시지 변경 * test: 테스트 실패 해결 - serviceClass 타입 오타 * feat: PurchaseHistoryService에 @authorize 애노테이션 적용 * test: 매입이력 서비스 테스트 실패 해결 * rename: AuthorizeService 이름 변경 * move: AuthorizedService 구현체 이동 * feat: fcm, portfolio 도메인에 @Authorized 애노테이션 추가 * test: 종목 지정가 테스트 실패 해결 * feat: 회원 알림 서비스에 리소스 소유 검증 애노테이션 추가 * feat: 관심 종목 리소스 소유 검증 애노테이션 추가 * move: 종목 지정가와 지정가 알림 분리 * docs: rest docs 목차 정리 * docs: rest docs 목차 정리 * fix: dev -> production으로 변경 * fix: secret 갱신 * fix: db connection property 오타 수정 * fix: @secured 제거 * fix: secret 갱신 * feat: workflow 수정 - 'no test' 태그가 없는 경우 테스트 생략 * fix: after-install script 수정 - 배포 작업 이후에 temp 디렉토리 삭제 * fix: cors 설정 수정 - www.fineants.co 추가 * fix: workflow 수정 - "no test" 레이블에 대한 테스트 실행 여부 코드 수정 * fix: 시크릿 정보 변경 - aws 계정 변경으로 인한 깃허브 환경 변경 * fix: 시크릿 정보 변경 - 버킷에 저장되는 프로필 경로 변경 - 배당금 경로 변경 * fix: test 실패 해결 --------- Co-authored-by: yein-lee <agop0310@gmail.com> Co-authored-by: Yein Lee (이예인) <39490214+yein-lee@users.noreply.github.com>
- Loading branch information