Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[fix] 현재가 조회 수정 #442

Merged
merged 1 commit into from
Aug 20, 2024
Merged

Conversation

yonghwankim-dev
Copy link
Member

구현한 것

  • Retry 문을 추가하여 재시도하는 연산을 추가함

@yonghwankim-dev yonghwankim-dev added the bug Something isn't working label Aug 20, 2024
@yonghwankim-dev yonghwankim-dev self-assigned this Aug 20, 2024
@yonghwankim-dev yonghwankim-dev linked an issue Aug 20, 2024 that may be closed by this pull request
@yonghwankim-dev yonghwankim-dev merged commit 1ef6d11 into release Aug 20, 2024
@yonghwankim-dev yonghwankim-dev deleted the refactor/#436-price branch August 20, 2024 03:07
yonghwankim-dev added a commit that referenced this pull request Aug 30, 2024
* feat: 종목 및 배당 일정 최신화 기능 cron 표현식 수정 (#428)

릴리즈 서버는 7시에 수행, 프로덕션은 8시에 수행

* [refactor] 종목 및 배당일정 초기화 코드 개선 (#429)

* feat: 접근 제한자 private 변경 및 트랜잭션 애노테이션 제거

* feat: usd 환율 생성 로직 추가

* style: 코드 정리

* style: 메서드 순서 정리

* feat: 관리자 및 매니저 정보 프로퍼티화

* feat: 관리자 및 매니저 프로퍼티 추가

* refactor: createMemberIfNotFound 메서드 코드 수정

* refactor: 알림 환경설정 초기화 메서드 분리

* refactor: createRoleIfNotFound 메서드명 변경

db에 저장하는 것이기 때문에 save가 더 적절하다고 생각함

* refactor: findOrCreateRole 메서드로 분리

* style: 코드 정리

* rename: SetUpDataLoader 클래스명 변경

* feat: SetupDataLoader 클래스로 분리

* refactor: supplierNotFoundRoleExpceiton 메서드로 분리

* refactor: createExchangeRateIfNotFount 메서드명 변경

* refactor: 스트림 형식으로 변경

* feat: 시크릿 정보 수정

- 역할 정보 추가

* feat: RoleProperties 추가

* feat: 역할별 getter 추가

* refactor: Role 리소스 생성 로직 스트림으로 변경

* refactor: getter 제거 및 클래스명 RoleProperty로 변경

* style: 코드 정리

* test: setupResources 테스트 추가

* test: setupResources 테스트에 멤버 검증문 추가

* test: Authentication 검증문 추가

* test: 검증문 추가

* style: 주석 추가

* test: 환율 검증문 추가

* teset: kisService 객체 모킹

* test: 종목 검증문 추가 및 종목 초기화 로직 추가

* feat: readDividendCsv 메서드 구현

* rename: stocks.csv, dividends.csv 파일을 test/resources로 이동

* feat: 배당금 초기화 추가

* feat: UserProperties 추가

* rename: properties 파일 이동

* feat: 시크릿 정보 변경

- 샘플 유저 추가

* docs: mysql script 제거

* feat: Stock.parse 정적 팩토리 메서드에 예외 캐치 추가

* feat: stocks.csv -> stocks.txt로 변경

* test: 테스트 문제 해결

* feat: parseCsvLine 구현

- Ltd가 포함된 종목은 쉼표를 포함하고 있기 때문에 원할한 쉼표 분할을 위해서 별도의 패턴을 구현함

* feat: Pattern 변경

* test: 테스트 실패 해결

* feat: 시크릿 정보 변경

- csv 파일로 변경

* [refactor] kisClient 리팩토링 (#432)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리

* [refactor] kisClient 리팩토링 (#433)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리

* test: 테스트 실해 해결

currentPrice 참조과정에서 액세스 토큰 발급이 실패되어 무한 루프에 빠짐

* fix: addCurrentPrice 수행시 액세스 토큰 호출 제거

- fetchCurrentPrice 실행전 aop에 의해서 실행되기 때문에 제거

* fix: 액세스 토큰 발급 문제 해결

* [refactor] currentPriceRepository 개선 (#435)

* rename: 메서드명을 fetchCurrentPrice로 변경

* refactor: 현재가 조회 모듈 리팩토링

* refactor: redis key, value 메서드 추가

* rename: currentPriceRepository 클래스명 변경

* rename: CurrentPriceRedisRepository의 메소드를 인터페이스에 맞게 변경

* [fix] 매입 이력 알람 리스너 문제 해결 (#438)

* refactor: 현재가 갱신 단순 스트림 방식으로 변경

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

* refactor: toArray 메서드로 분리

* feat: Flux 방식으로 변경

* fix: Mono.error 모킹 해결

* feat: 현재가 조회 부분을 반복문에서 람다로 변경

* refactor: Flux 형태로 현잭가 조회 개선

* style: 코드 정리

* style: 코드 정리

* feat: 컬렉션 필드를 불변 컬렉션으로 반환하도록 변경

PortfolioHolding 클래스의 getPurchaseHistory 메서드 같은 경우 서비스에 문제점이 있어서 todo 남김

* feat: purchaseHistory 컬렉션을 반환시 불변 컬렉션으로 반환

* fix: todo 제거

* feat: 불변 컬렉션 반환으로 인한 코드 제거

* style: 코드 정리

* style: 로깅 제거

* fix: @EnableAsync 애노테이션을 추가하여 비동기 활성화 및 이벤트 리스너의 반환 타입을 CompletableFuture로 변경

* test: PurchaseHistoryServiceTest에 있는 매입 이력 이벤트(추가/삭제)에 따른 알림 이벤트 테스트를 제거하고 리스너 테스트에 최대 손실 알림 테스트 추가

* feat: @eventlistener를 @TransactionalEventListener로 변경

* feat: github action 워크플로우에 설정 추가

* feat: clear문 추가

* test: beforeEach에 clear 추가

* fix: 현재가 조회에 retry 연산 추가 (#442)

* hotfix: onErrorResume 연산 제거

- 요청 건수 초과와 같은 이유로 액세스 토큰 발급이 실패하였을때 Mono.empty()를 반환하게 되어 예외가 발생하고 스케줄링 메서드에 의해서 계속 시도하게 되면서 발급 알림이 계속 가는것으로 추측

* [fix] 액세스 토큰 Aspect 수정 (#445)

* feat: retry연산에서 재시도 시간을 1분으로 변경

* feat: 액세스 토큰 만료 1시간 전에 재발급하는 조건문 추가

* feat: @CheckKisAccessToken 추가

* feat: accessToken 필드 null 처리

* test: 만료 1시간 이전 액세스 토큰 재발급의 테스트 추가

* feat: 프로덕션 서버 스케줄링 서비스 메서드 따로 분리

* [fix] 액세스 토큰 재발급 문제 해결  (#446)

* test: 액세스 토큰 만료시 예외케이스 추가

* fix: Flux 방식에서 단순 반복문으로 변경

- 병렬 과정에서 액세스 토큰 만료시 무한 시도 문제 해결을 위해서 단순화

* test: 테스트 수정

* test: todo 주석 추가

* feat: kisException 객체로 매핑하여 반환하도록 변경

* test: 테스트 실패 해결

* test: 초당 거래 건수 초과 에러 응답하는 예외 케이스 추가

* feat: returnCode, messageCode 필드 추가

* feat: KisException의 서브 클래스 추가

* feat: onErrorResume 및 retryWhen 연산 수정

- 액세스 토큰이 만료되는 경우에는 Mono.empty() 반환
- retryWhen 연산에서 요청건수 초과인 경우에만 재시도하도록 함

* feat: KisClient의 에러 핸들 처리 메서드(handleError) 수정

- 한국투자증권서버로부터 에러 응답을 수신 시 KisErrorResponse로 매핑한 다음에 Exception으로 변환

* feat: 한국투자증권 서버의 에러 응답 객체 구

* rename: 클래스명 변경

* refactor: toException 메서드 변경

- switch 문으로 개선

* test: Exception 생성 부분을 정적 팩토리 호출로 변경

* refactor: null 체크 조건문 삭제

* feat: 재시도 연산이 실패했을시 onErrorResume 추가

* test: 재시도 연산이 실패시 예외 테스트 추가

* test: kisClient 모킹 처리

* test: 다수 종목 갱신 테스트 추가

* refactor: Flux 방식으로 변경

* refactor: onErrorResume 연산 수정

* test: 테스트 코드 수정

* feat: 액세스 토큰 관련 예외 추가

* feat: accessToken 널 체크 추가

* feat: doOnSuccess 연산 추가

* feat: CredeintailsTypeException 조건 추가

* fix: @CheckKisAccessToken 애노테이션 제거

- 비동기로 실행중 액세스 토큰 제거 또는 만료시 aop의 blockoptional에 의해서 에러 발생하여 kisService로 이동하고자 애노테이션을 제거함

* feat: deleteAccessToken api 추가

* feat: kisService에 액세스 토큰 체크 애노테이션 추가

* test: 레디스 클리너 추가

* fix: 메서드명 변경

* refactor: fetchDividend 반환 타입 변경

* rename: 메서드명 변경

* rename: 메서드명 변경

* refactor: delayManager로 변경

* test: delayManager 추가하여 테스트 실패 해결

* test: delayManager를 @SpyBean으로 변경

* test: holidayManager 필드 제거

* feat: 액세스 토큰 재발급 관련 수정

* fix: 테스트 실패 해결

* fix: currentPrice 조회에 에러 폴백 연산 추가

* fix: checkAccessToken 애노테이션 추가

* [fix] 액세스 토큰 갱신 구조 변경 (#449)

* feat: TIMEOUT 필드 이름 변경

* fix: 종목 조회 및 배당 일정 조회 메서드를 Mono 타입으로 반환하도록 변경

* test: 테스트 실패 해결

* test: 상장 종목 조회의 예외 케이스 추가

* fix: Flux 연산 수행중 별도의 쓰레드에서 동작시 blocking하지 않도록 변경

* test: 테스트 실패 해결

* test: todo 추가 및 새로운 테스트 추가

- 도중에 blocking되지 않아야함

* fix: fetchDividend 메서드 반환타입을 Flux로 변경

* test: 테스트 추가

* test: 액세스 토큰 재발급 실패시 에외 케이스 테스트 추가

* fix: checkAccessToken 애노테이션으로 변경

* fix: onErrorResume 연산 추가

* feat: 로깅 추가

* test: 테스트 제거

* feat: 액세스 토큰을 재발급하는 스케줄러 구현

* test: 액세스 토큰 재발급하는 테스트 추가

* feat: 스케줄러 주기 변경

* fix: aop 제거 및 애노테이션 제거

* refactor: 종가 저장소 개선

* feat: 애노테이션 제거

* rename: 패키지 이동

* style: 코드 정리

* [feat] �배당금 엔티티에 필드 추가 및 포트폴리오 필드 추가 (#451)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* [style] 코드 정리 (#452)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* feat: DividendDates 임베디드 클래스 추가

* feat: StockDividendParser 추가

* feat: 생성자 압축

* refactor: 객체지향적으로 변경

* refactor: Stock 필드에 LocalDateTimeService 추가

* refactor: StockParser 추가 및 분리

* style: 코드 정리

* fix: HashTable 변경

* style: equals 재정의

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

* Refactor: file.delete 개선

* style: 코드 정리

* style: sonarLint에 따른 코드 정리

* fix: 테스트 실패 해결

* style:: 코드 정리

* test: 테스트 해결

* style: 코드 정리

* [feat] �배당금 엔티티에 필드 추가 및 포트폴리오 필드 추가 (#451)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* test: 테스트 실패 해결

* [refactor] kisClient 리팩토링 (#433)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리

* [refactor] kisClient 리팩토링 (#432)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리

* [refactor] kisClient 리팩토링 (#433)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리

* test: 테스트 실해 해결

currentPrice 참조과정에서 액세스 토큰 발급이 실패되어 무한 루프에 빠짐

* fix: addCurrentPrice 수행시 액세스 토큰 호출 제거

- fetchCurrentPrice 실행전 aop에 의해서 실행되기 때문에 제거

* fix: 액세스 토큰 발급 문제 해결

* [refactor] currentPriceRepository 개선 (#435)

* rename: 메서드명을 fetchCurrentPrice로 변경

* refactor: 현재가 조회 모듈 리팩토링

* refactor: redis key, value 메서드 추가

* rename: currentPriceRepository 클래스명 변경

* rename: CurrentPriceRedisRepository의 메소드를 인터페이스에 맞게 변경

* [fix] 매입 이력 알람 리스너 문제 해결 (#438)

* refactor: 현재가 갱신 단순 스트림 방식으로 변경

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

* refactor: toArray 메서드로 분리

* feat: Flux 방식으로 변경

* fix: Mono.error 모킹 해결

* feat: 현재가 조회 부분을 반복문에서 람다로 변경

* refactor: Flux 형태로 현잭가 조회 개선

* style: 코드 정리

* style: 코드 정리

* feat: 컬렉션 필드를 불변 컬렉션으로 반환하도록 변경

PortfolioHolding 클래스의 getPurchaseHistory 메서드 같은 경우 서비스에 문제점이 있어서 todo 남김

* feat: purchaseHistory 컬렉션을 반환시 불변 컬렉션으로 반환

* fix: todo 제거

* feat: 불변 컬렉션 반환으로 인한 코드 제거

* style: 코드 정리

* style: 로깅 제거

* fix: @EnableAsync 애노테이션을 추가하여 비동기 활성화 및 이벤트 리스너의 반환 타입을 CompletableFuture로 변경

* test: PurchaseHistoryServiceTest에 있는 매입 이력 이벤트(추가/삭제)에 따른 알림 이벤트 테스트를 제거하고 리스너 테스트에 최대 손실 알림 테스트 추가

* feat: @eventlistener를 @TransactionalEventListener로 변경

* feat: github action 워크플로우에 설정 추가

* feat: clear문 추가

* test: beforeEach에 clear 추가

* fix: 현재가 조회에 retry 연산 추가 (#442)

* hotfix: onErrorResume 연산 제거

- 요청 건수 초과와 같은 이유로 액세스 토큰 발급이 실패하였을때 Mono.empty()를 반환하게 되어 예외가 발생하고 스케줄링 메서드에 의해서 계속 시도하게 되면서 발급 알림이 계속 가는것으로 추측

* [fix] 액세스 토큰 Aspect 수정 (#445)

* feat: retry연산에서 재시도 시간을 1분으로 변경

* feat: 액세스 토큰 만료 1시간 전에 재발급하는 조건문 추가

* feat: @CheckKisAccessToken 추가

* feat: accessToken 필드 null 처리

* test: 만료 1시간 이전 액세스 토큰 재발급의 테스트 추가

* feat: 프로덕션 서버 스케줄링 서비스 메서드 따로 분리

* [fix] 액세스 토큰 재발급 문제 해결  (#446)

* test: 액세스 토큰 만료시 예외케이스 추가

* fix: Flux 방식에서 단순 반복문으로 변경

- 병렬 과정에서 액세스 토큰 만료시 무한 시도 문제 해결을 위해서 단순화

* test: 테스트 수정

* test: todo 주석 추가

* feat: kisException 객체로 매핑하여 반환하도록 변경

* test: 테스트 실패 해결

* test: 초당 거래 건수 초과 에러 응답하는 예외 케이스 추가

* feat: returnCode, messageCode 필드 추가

* feat: KisException의 서브 클래스 추가

* feat: onErrorResume 및 retryWhen 연산 수정

- 액세스 토큰이 만료되는 경우에는 Mono.empty() 반환
- retryWhen 연산에서 요청건수 초과인 경우에만 재시도하도록 함

* feat: KisClient의 에러 핸들 처리 메서드(handleError) 수정

- 한국투자증권서버로부터 에러 응답을 수신 시 KisErrorResponse로 매핑한 다음에 Exception으로 변환

* feat: 한국투자증권 서버의 에러 응답 객체 구

* rename: 클래스명 변경

* refactor: toException 메서드 변경

- switch 문으로 개선

* test: Exception 생성 부분을 정적 팩토리 호출로 변경

* refactor: null 체크 조건문 삭제

* feat: 재시도 연산이 실패했을시 onErrorResume 추가

* test: 재시도 연산이 실패시 예외 테스트 추가

* test: kisClient 모킹 처리

* test: 다수 종목 갱신 테스트 추가

* refactor: Flux 방식으로 변경

* refactor: onErrorResume 연산 수정

* test: 테스트 코드 수정

* feat: 액세스 토큰 관련 예외 추가

* feat: accessToken 널 체크 추가

* feat: doOnSuccess 연산 추가

* feat: CredeintailsTypeException 조건 추가

* fix: @CheckKisAccessToken 애노테이션 제거

- 비동기로 실행중 액세스 토큰 제거 또는 만료시 aop의 blockoptional에 의해서 에러 발생하여 kisService로 이동하고자 애노테이션을 제거함

* feat: deleteAccessToken api 추가

* feat: kisService에 액세스 토큰 체크 애노테이션 추가

* test: 레디스 클리너 추가

* fix: 메서드명 변경

* refactor: fetchDividend 반환 타입 변경

* rename: 메서드명 변경

* rename: 메서드명 변경

* refactor: delayManager로 변경

* test: delayManager 추가하여 테스트 실패 해결

* test: delayManager를 @SpyBean으로 변경

* test: holidayManager 필드 제거

* feat: 액세스 토큰 재발급 관련 수정

* fix: 테스트 실패 해결

* fix: currentPrice 조회에 에러 폴백 연산 추가

* fix: checkAccessToken 애노테이션 추가

* [fix] 액세스 토큰 갱신 구조 변경 (#449)

* feat: TIMEOUT 필드 이름 변경

* fix: 종목 조회 및 배당 일정 조회 메서드를 Mono 타입으로 반환하도록 변경

* test: 테스트 실패 해결

* test: 상장 종목 조회의 예외 케이스 추가

* fix: Flux 연산 수행중 별도의 쓰레드에서 동작시 blocking하지 않도록 변경

* test: 테스트 실패 해결

* test: todo 추가 및 새로운 테스트 추가

- 도중에 blocking되지 않아야함

* fix: fetchDividend 메서드 반환타입을 Flux로 변경

* test: 테스트 추가

* test: 액세스 토큰 재발급 실패시 에외 케이스 테스트 추가

* fix: checkAccessToken 애노테이션으로 변경

* fix: onErrorResume 연산 추가

* feat: 로깅 추가

* test: 테스트 제거

* feat: 액세스 토큰을 재발급하는 스케줄러 구현

* test: 액세스 토큰 재발급하는 테스트 추가

* feat: 스케줄러 주기 변경

* fix: aop 제거 및 애노테이션 제거

* refactor: 종가 저장소 개선

* feat: 애노테이션 제거

* rename: 패키지 이동

* style: 코드 정리

* [feat] �배당금 엔티티에 필드 추가 및 포트폴리오 필드 추가 (#451)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* [style] 코드 정리 (#452)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* feat: DividendDates 임베디드 클래스 추가

* feat: StockDividendParser 추가

* feat: 생성자 압축

* refactor: 객체지향적으로 변경

* refactor: Stock 필드에 LocalDateTimeService 추가

* refactor: StockParser 추가 및 분리

* style: 코드 정리

* fix: HashTable 변경

* style: equals 재정의

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

* Refactor: file.delete 개선

* style: 코드 정리

* style: sonarLint에 따른 코드 정리

* fix: 테스트 실패 해결

* style:: 코드 정리

* test: 테스트 해결

* style: 코드 정리

* [feat] �배당금 엔티티에 필드 추가 및 포트폴리오 필드 추가 (#451)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* test: 테스트 실패 해결

* [refactor] kisClient 리팩토링 (#433)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리
yonghwankim-dev added a commit that referenced this pull request Aug 30, 2024
* feat: 종목 및 배당 일정 최신화 기능 cron 표현식 수정 (#428)

릴리즈 서버는 7시에 수행, 프로덕션은 8시에 수행

* [refactor] 종목 및 배당일정 초기화 코드 개선 (#429)

* feat: 접근 제한자 private 변경 및 트랜잭션 애노테이션 제거

* feat: usd 환율 생성 로직 추가

* style: 코드 정리

* style: 메서드 순서 정리

* feat: 관리자 및 매니저 정보 프로퍼티화

* feat: 관리자 및 매니저 프로퍼티 추가

* refactor: createMemberIfNotFound 메서드 코드 수정

* refactor: 알림 환경설정 초기화 메서드 분리

* refactor: createRoleIfNotFound 메서드명 변경

db에 저장하는 것이기 때문에 save가 더 적절하다고 생각함

* refactor: findOrCreateRole 메서드로 분리

* style: 코드 정리

* rename: SetUpDataLoader 클래스명 변경

* feat: SetupDataLoader 클래스로 분리

* refactor: supplierNotFoundRoleExpceiton 메서드로 분리

* refactor: createExchangeRateIfNotFount 메서드명 변경

* refactor: 스트림 형식으로 변경

* feat: 시크릿 정보 수정

- 역할 정보 추가

* feat: RoleProperties 추가

* feat: 역할별 getter 추가

* refactor: Role 리소스 생성 로직 스트림으로 변경

* refactor: getter 제거 및 클래스명 RoleProperty로 변경

* style: 코드 정리

* test: setupResources 테스트 추가

* test: setupResources 테스트에 멤버 검증문 추가

* test: Authentication 검증문 추가

* test: 검증문 추가

* style: 주석 추가

* test: 환율 검증문 추가

* teset: kisService 객체 모킹

* test: 종목 검증문 추가 및 종목 초기화 로직 추가

* feat: readDividendCsv 메서드 구현

* rename: stocks.csv, dividends.csv 파일을 test/resources로 이동

* feat: 배당금 초기화 추가

* feat: UserProperties 추가

* rename: properties 파일 이동

* feat: 시크릿 정보 변경

- 샘플 유저 추가

* docs: mysql script 제거

* feat: Stock.parse 정적 팩토리 메서드에 예외 캐치 추가

* feat: stocks.csv -> stocks.txt로 변경

* test: 테스트 문제 해결

* feat: parseCsvLine 구현

- Ltd가 포함된 종목은 쉼표를 포함하고 있기 때문에 원할한 쉼표 분할을 위해서 별도의 패턴을 구현함

* feat: Pattern 변경

* test: 테스트 실패 해결

* feat: 시크릿 정보 변경

- csv 파일로 변경

* [refactor] kisClient 리팩토링 (#432)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리

* [refactor] kisClient 리팩토링 (#433)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리

* test: 테스트 실해 해결

currentPrice 참조과정에서 액세스 토큰 발급이 실패되어 무한 루프에 빠짐

* fix: addCurrentPrice 수행시 액세스 토큰 호출 제거

- fetchCurrentPrice 실행전 aop에 의해서 실행되기 때문에 제거

* fix: 액세스 토큰 발급 문제 해결

* [refactor] currentPriceRepository 개선 (#435)

* rename: 메서드명을 fetchCurrentPrice로 변경

* refactor: 현재가 조회 모듈 리팩토링

* refactor: redis key, value 메서드 추가

* rename: currentPriceRepository 클래스명 변경

* rename: CurrentPriceRedisRepository의 메소드를 인터페이스에 맞게 변경

* [fix] 매입 이력 알람 리스너 문제 해결 (#438)

* refactor: 현재가 갱신 단순 스트림 방식으로 변경

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

* refactor: toArray 메서드로 분리

* feat: Flux 방식으로 변경

* fix: Mono.error 모킹 해결

* feat: 현재가 조회 부분을 반복문에서 람다로 변경

* refactor: Flux 형태로 현잭가 조회 개선

* style: 코드 정리

* style: 코드 정리

* feat: 컬렉션 필드를 불변 컬렉션으로 반환하도록 변경

PortfolioHolding 클래스의 getPurchaseHistory 메서드 같은 경우 서비스에 문제점이 있어서 todo 남김

* feat: purchaseHistory 컬렉션을 반환시 불변 컬렉션으로 반환

* fix: todo 제거

* feat: 불변 컬렉션 반환으로 인한 코드 제거

* style: 코드 정리

* style: 로깅 제거

* fix: @EnableAsync 애노테이션을 추가하여 비동기 활성화 및 이벤트 리스너의 반환 타입을 CompletableFuture로 변경

* test: PurchaseHistoryServiceTest에 있는 매입 이력 이벤트(추가/삭제)에 따른 알림 이벤트 테스트를 제거하고 리스너 테스트에 최대 손실 알림 테스트 추가

* feat: @eventlistener를 @TransactionalEventListener로 변경

* feat: github action 워크플로우에 설정 추가

* feat: clear문 추가

* test: beforeEach에 clear 추가

* fix: 현재가 조회에 retry 연산 추가 (#442)

* hotfix: onErrorResume 연산 제거

- 요청 건수 초과와 같은 이유로 액세스 토큰 발급이 실패하였을때 Mono.empty()를 반환하게 되어 예외가 발생하고 스케줄링 메서드에 의해서 계속 시도하게 되면서 발급 알림이 계속 가는것으로 추측

* [fix] 액세스 토큰 Aspect 수정 (#445)

* feat: retry연산에서 재시도 시간을 1분으로 변경

* feat: 액세스 토큰 만료 1시간 전에 재발급하는 조건문 추가

* feat: @CheckKisAccessToken 추가

* feat: accessToken 필드 null 처리

* test: 만료 1시간 이전 액세스 토큰 재발급의 테스트 추가

* feat: 프로덕션 서버 스케줄링 서비스 메서드 따로 분리

* [fix] 액세스 토큰 재발급 문제 해결  (#446)

* test: 액세스 토큰 만료시 예외케이스 추가

* fix: Flux 방식에서 단순 반복문으로 변경

- 병렬 과정에서 액세스 토큰 만료시 무한 시도 문제 해결을 위해서 단순화

* test: 테스트 수정

* test: todo 주석 추가

* feat: kisException 객체로 매핑하여 반환하도록 변경

* test: 테스트 실패 해결

* test: 초당 거래 건수 초과 에러 응답하는 예외 케이스 추가

* feat: returnCode, messageCode 필드 추가

* feat: KisException의 서브 클래스 추가

* feat: onErrorResume 및 retryWhen 연산 수정

- 액세스 토큰이 만료되는 경우에는 Mono.empty() 반환
- retryWhen 연산에서 요청건수 초과인 경우에만 재시도하도록 함

* feat: KisClient의 에러 핸들 처리 메서드(handleError) 수정

- 한국투자증권서버로부터 에러 응답을 수신 시 KisErrorResponse로 매핑한 다음에 Exception으로 변환

* feat: 한국투자증권 서버의 에러 응답 객체 구

* rename: 클래스명 변경

* refactor: toException 메서드 변경

- switch 문으로 개선

* test: Exception 생성 부분을 정적 팩토리 호출로 변경

* refactor: null 체크 조건문 삭제

* feat: 재시도 연산이 실패했을시 onErrorResume 추가

* test: 재시도 연산이 실패시 예외 테스트 추가

* test: kisClient 모킹 처리

* test: 다수 종목 갱신 테스트 추가

* refactor: Flux 방식으로 변경

* refactor: onErrorResume 연산 수정

* test: 테스트 코드 수정

* feat: 액세스 토큰 관련 예외 추가

* feat: accessToken 널 체크 추가

* feat: doOnSuccess 연산 추가

* feat: CredeintailsTypeException 조건 추가

* fix: @CheckKisAccessToken 애노테이션 제거

- 비동기로 실행중 액세스 토큰 제거 또는 만료시 aop의 blockoptional에 의해서 에러 발생하여 kisService로 이동하고자 애노테이션을 제거함

* feat: deleteAccessToken api 추가

* feat: kisService에 액세스 토큰 체크 애노테이션 추가

* test: 레디스 클리너 추가

* fix: 메서드명 변경

* refactor: fetchDividend 반환 타입 변경

* rename: 메서드명 변경

* rename: 메서드명 변경

* refactor: delayManager로 변경

* test: delayManager 추가하여 테스트 실패 해결

* test: delayManager를 @SpyBean으로 변경

* test: holidayManager 필드 제거

* feat: 액세스 토큰 재발급 관련 수정

* fix: 테스트 실패 해결

* fix: currentPrice 조회에 에러 폴백 연산 추가

* fix: checkAccessToken 애노테이션 추가

* [fix] 액세스 토큰 갱신 구조 변경 (#449)

* feat: TIMEOUT 필드 이름 변경

* fix: 종목 조회 및 배당 일정 조회 메서드를 Mono 타입으로 반환하도록 변경

* test: 테스트 실패 해결

* test: 상장 종목 조회의 예외 케이스 추가

* fix: Flux 연산 수행중 별도의 쓰레드에서 동작시 blocking하지 않도록 변경

* test: 테스트 실패 해결

* test: todo 추가 및 새로운 테스트 추가

- 도중에 blocking되지 않아야함

* fix: fetchDividend 메서드 반환타입을 Flux로 변경

* test: 테스트 추가

* test: 액세스 토큰 재발급 실패시 에외 케이스 테스트 추가

* fix: checkAccessToken 애노테이션으로 변경

* fix: onErrorResume 연산 추가

* feat: 로깅 추가

* test: 테스트 제거

* feat: 액세스 토큰을 재발급하는 스케줄러 구현

* test: 액세스 토큰 재발급하는 테스트 추가

* feat: 스케줄러 주기 변경

* fix: aop 제거 및 애노테이션 제거

* refactor: 종가 저장소 개선

* feat: 애노테이션 제거

* rename: 패키지 이동

* style: 코드 정리

* [feat] �배당금 엔티티에 필드 추가 및 포트폴리오 필드 추가 (#451)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* [style] 코드 정리 (#452)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* feat: DividendDates 임베디드 클래스 추가

* feat: StockDividendParser 추가

* feat: 생성자 압축

* refactor: 객체지향적으로 변경

* refactor: Stock 필드에 LocalDateTimeService 추가

* refactor: StockParser 추가 및 분리

* style: 코드 정리

* fix: HashTable 변경

* style: equals 재정의

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

* Refactor: file.delete 개선

* style: 코드 정리

* style: sonarLint에 따른 코드 정리

* fix: 테스트 실패 해결

* style:: 코드 정리

* test: 테스트 해결

* style: 코드 정리

* [feat] �배당금 엔티티에 필드 추가 및 포트폴리오 필드 추가 (#451)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* test: 테스트 실패 해결

* [refactor] kisClient 리팩토링 (#433)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리

* [refactor] kisClient 리팩토링 (#432)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리

* [refactor] kisClient 리팩토링 (#433)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리

* test: 테스트 실해 해결

currentPrice 참조과정에서 액세스 토큰 발급이 실패되어 무한 루프에 빠짐

* fix: addCurrentPrice 수행시 액세스 토큰 호출 제거

- fetchCurrentPrice 실행전 aop에 의해서 실행되기 때문에 제거

* fix: 액세스 토큰 발급 문제 해결

* [refactor] currentPriceRepository 개선 (#435)

* rename: 메서드명을 fetchCurrentPrice로 변경

* refactor: 현재가 조회 모듈 리팩토링

* refactor: redis key, value 메서드 추가

* rename: currentPriceRepository 클래스명 변경

* rename: CurrentPriceRedisRepository의 메소드를 인터페이스에 맞게 변경

* [fix] 매입 이력 알람 리스너 문제 해결 (#438)

* refactor: 현재가 갱신 단순 스트림 방식으로 변경

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

* refactor: toArray 메서드로 분리

* feat: Flux 방식으로 변경

* fix: Mono.error 모킹 해결

* feat: 현재가 조회 부분을 반복문에서 람다로 변경

* refactor: Flux 형태로 현잭가 조회 개선

* style: 코드 정리

* style: 코드 정리

* feat: 컬렉션 필드를 불변 컬렉션으로 반환하도록 변경

PortfolioHolding 클래스의 getPurchaseHistory 메서드 같은 경우 서비스에 문제점이 있어서 todo 남김

* feat: purchaseHistory 컬렉션을 반환시 불변 컬렉션으로 반환

* fix: todo 제거

* feat: 불변 컬렉션 반환으로 인한 코드 제거

* style: 코드 정리

* style: 로깅 제거

* fix: @EnableAsync 애노테이션을 추가하여 비동기 활성화 및 이벤트 리스너의 반환 타입을 CompletableFuture로 변경

* test: PurchaseHistoryServiceTest에 있는 매입 이력 이벤트(추가/삭제)에 따른 알림 이벤트 테스트를 제거하고 리스너 테스트에 최대 손실 알림 테스트 추가

* feat: @eventlistener를 @TransactionalEventListener로 변경

* feat: github action 워크플로우에 설정 추가

* feat: clear문 추가

* test: beforeEach에 clear 추가

* fix: 현재가 조회에 retry 연산 추가 (#442)

* hotfix: onErrorResume 연산 제거

- 요청 건수 초과와 같은 이유로 액세스 토큰 발급이 실패하였을때 Mono.empty()를 반환하게 되어 예외가 발생하고 스케줄링 메서드에 의해서 계속 시도하게 되면서 발급 알림이 계속 가는것으로 추측

* [fix] 액세스 토큰 Aspect 수정 (#445)

* feat: retry연산에서 재시도 시간을 1분으로 변경

* feat: 액세스 토큰 만료 1시간 전에 재발급하는 조건문 추가

* feat: @CheckKisAccessToken 추가

* feat: accessToken 필드 null 처리

* test: 만료 1시간 이전 액세스 토큰 재발급의 테스트 추가

* feat: 프로덕션 서버 스케줄링 서비스 메서드 따로 분리

* [fix] 액세스 토큰 재발급 문제 해결  (#446)

* test: 액세스 토큰 만료시 예외케이스 추가

* fix: Flux 방식에서 단순 반복문으로 변경

- 병렬 과정에서 액세스 토큰 만료시 무한 시도 문제 해결을 위해서 단순화

* test: 테스트 수정

* test: todo 주석 추가

* feat: kisException 객체로 매핑하여 반환하도록 변경

* test: 테스트 실패 해결

* test: 초당 거래 건수 초과 에러 응답하는 예외 케이스 추가

* feat: returnCode, messageCode 필드 추가

* feat: KisException의 서브 클래스 추가

* feat: onErrorResume 및 retryWhen 연산 수정

- 액세스 토큰이 만료되는 경우에는 Mono.empty() 반환
- retryWhen 연산에서 요청건수 초과인 경우에만 재시도하도록 함

* feat: KisClient의 에러 핸들 처리 메서드(handleError) 수정

- 한국투자증권서버로부터 에러 응답을 수신 시 KisErrorResponse로 매핑한 다음에 Exception으로 변환

* feat: 한국투자증권 서버의 에러 응답 객체 구

* rename: 클래스명 변경

* refactor: toException 메서드 변경

- switch 문으로 개선

* test: Exception 생성 부분을 정적 팩토리 호출로 변경

* refactor: null 체크 조건문 삭제

* feat: 재시도 연산이 실패했을시 onErrorResume 추가

* test: 재시도 연산이 실패시 예외 테스트 추가

* test: kisClient 모킹 처리

* test: 다수 종목 갱신 테스트 추가

* refactor: Flux 방식으로 변경

* refactor: onErrorResume 연산 수정

* test: 테스트 코드 수정

* feat: 액세스 토큰 관련 예외 추가

* feat: accessToken 널 체크 추가

* feat: doOnSuccess 연산 추가

* feat: CredeintailsTypeException 조건 추가

* fix: @CheckKisAccessToken 애노테이션 제거

- 비동기로 실행중 액세스 토큰 제거 또는 만료시 aop의 blockoptional에 의해서 에러 발생하여 kisService로 이동하고자 애노테이션을 제거함

* feat: deleteAccessToken api 추가

* feat: kisService에 액세스 토큰 체크 애노테이션 추가

* test: 레디스 클리너 추가

* fix: 메서드명 변경

* refactor: fetchDividend 반환 타입 변경

* rename: 메서드명 변경

* rename: 메서드명 변경

* refactor: delayManager로 변경

* test: delayManager 추가하여 테스트 실패 해결

* test: delayManager를 @SpyBean으로 변경

* test: holidayManager 필드 제거

* feat: 액세스 토큰 재발급 관련 수정

* fix: 테스트 실패 해결

* fix: currentPrice 조회에 에러 폴백 연산 추가

* fix: checkAccessToken 애노테이션 추가

* [fix] 액세스 토큰 갱신 구조 변경 (#449)

* feat: TIMEOUT 필드 이름 변경

* fix: 종목 조회 및 배당 일정 조회 메서드를 Mono 타입으로 반환하도록 변경

* test: 테스트 실패 해결

* test: 상장 종목 조회의 예외 케이스 추가

* fix: Flux 연산 수행중 별도의 쓰레드에서 동작시 blocking하지 않도록 변경

* test: 테스트 실패 해결

* test: todo 추가 및 새로운 테스트 추가

- 도중에 blocking되지 않아야함

* fix: fetchDividend 메서드 반환타입을 Flux로 변경

* test: 테스트 추가

* test: 액세스 토큰 재발급 실패시 에외 케이스 테스트 추가

* fix: checkAccessToken 애노테이션으로 변경

* fix: onErrorResume 연산 추가

* feat: 로깅 추가

* test: 테스트 제거

* feat: 액세스 토큰을 재발급하는 스케줄러 구현

* test: 액세스 토큰 재발급하는 테스트 추가

* feat: 스케줄러 주기 변경

* fix: aop 제거 및 애노테이션 제거

* refactor: 종가 저장소 개선

* feat: 애노테이션 제거

* rename: 패키지 이동

* style: 코드 정리

* [feat] �배당금 엔티티에 필드 추가 및 포트폴리오 필드 추가 (#451)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* [style] 코드 정리 (#452)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* feat: DividendDates 임베디드 클래스 추가

* feat: StockDividendParser 추가

* feat: 생성자 압축

* refactor: 객체지향적으로 변경

* refactor: Stock 필드에 LocalDateTimeService 추가

* refactor: StockParser 추가 및 분리

* style: 코드 정리

* fix: HashTable 변경

* style: equals 재정의

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

* Refactor: file.delete 개선

* style: 코드 정리

* style: sonarLint에 따른 코드 정리

* fix: 테스트 실패 해결

* style:: 코드 정리

* test: 테스트 해결

* style: 코드 정리

* [feat] �배당금 엔티티에 필드 추가 및 포트폴리오 필드 추가 (#451)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* test: 테스트 실패 해결

* [refactor] kisClient 리팩토링 (#433)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리

* fix: 갱신 주기 오타 수정 (#456)
yonghwankim-dev added a commit that referenced this pull request Sep 1, 2024
* feat: 종목 및 배당 일정 최신화 기능 cron 표현식 수정 (#428)

릴리즈 서버는 7시에 수행, 프로덕션은 8시에 수행

* [refactor] 종목 및 배당일정 초기화 코드 개선 (#429)

* feat: 접근 제한자 private 변경 및 트랜잭션 애노테이션 제거

* feat: usd 환율 생성 로직 추가

* style: 코드 정리

* style: 메서드 순서 정리

* feat: 관리자 및 매니저 정보 프로퍼티화

* feat: 관리자 및 매니저 프로퍼티 추가

* refactor: createMemberIfNotFound 메서드 코드 수정

* refactor: 알림 환경설정 초기화 메서드 분리

* refactor: createRoleIfNotFound 메서드명 변경

db에 저장하는 것이기 때문에 save가 더 적절하다고 생각함

* refactor: findOrCreateRole 메서드로 분리

* style: 코드 정리

* rename: SetUpDataLoader 클래스명 변경

* feat: SetupDataLoader 클래스로 분리

* refactor: supplierNotFoundRoleExpceiton 메서드로 분리

* refactor: createExchangeRateIfNotFount 메서드명 변경

* refactor: 스트림 형식으로 변경

* feat: 시크릿 정보 수정

- 역할 정보 추가

* feat: RoleProperties 추가

* feat: 역할별 getter 추가

* refactor: Role 리소스 생성 로직 스트림으로 변경

* refactor: getter 제거 및 클래스명 RoleProperty로 변경

* style: 코드 정리

* test: setupResources 테스트 추가

* test: setupResources 테스트에 멤버 검증문 추가

* test: Authentication 검증문 추가

* test: 검증문 추가

* style: 주석 추가

* test: 환율 검증문 추가

* teset: kisService 객체 모킹

* test: 종목 검증문 추가 및 종목 초기화 로직 추가

* feat: readDividendCsv 메서드 구현

* rename: stocks.csv, dividends.csv 파일을 test/resources로 이동

* feat: 배당금 초기화 추가

* feat: UserProperties 추가

* rename: properties 파일 이동

* feat: 시크릿 정보 변경

- 샘플 유저 추가

* docs: mysql script 제거

* feat: Stock.parse 정적 팩토리 메서드에 예외 캐치 추가

* feat: stocks.csv -> stocks.txt로 변경

* test: 테스트 문제 해결

* feat: parseCsvLine 구현

- Ltd가 포함된 종목은 쉼표를 포함하고 있기 때문에 원할한 쉼표 분할을 위해서 별도의 패턴을 구현함

* feat: Pattern 변경

* test: 테스트 실패 해결

* feat: 시크릿 정보 변경

- csv 파일로 변경

* [refactor] kisClient 리팩토링 (#432)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리

* [refactor] kisClient 리팩토링 (#433)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리

* test: 테스트 실해 해결

currentPrice 참조과정에서 액세스 토큰 발급이 실패되어 무한 루프에 빠짐

* fix: addCurrentPrice 수행시 액세스 토큰 호출 제거

- fetchCurrentPrice 실행전 aop에 의해서 실행되기 때문에 제거

* fix: 액세스 토큰 발급 문제 해결

* [refactor] currentPriceRepository 개선 (#435)

* rename: 메서드명을 fetchCurrentPrice로 변경

* refactor: 현재가 조회 모듈 리팩토링

* refactor: redis key, value 메서드 추가

* rename: currentPriceRepository 클래스명 변경

* rename: CurrentPriceRedisRepository의 메소드를 인터페이스에 맞게 변경

* [fix] 매입 이력 알람 리스너 문제 해결 (#438)

* refactor: 현재가 갱신 단순 스트림 방식으로 변경

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

* refactor: toArray 메서드로 분리

* feat: Flux 방식으로 변경

* fix: Mono.error 모킹 해결

* feat: 현재가 조회 부분을 반복문에서 람다로 변경

* refactor: Flux 형태로 현잭가 조회 개선

* style: 코드 정리

* style: 코드 정리

* feat: 컬렉션 필드를 불변 컬렉션으로 반환하도록 변경

PortfolioHolding 클래스의 getPurchaseHistory 메서드 같은 경우 서비스에 문제점이 있어서 todo 남김

* feat: purchaseHistory 컬렉션을 반환시 불변 컬렉션으로 반환

* fix: todo 제거

* feat: 불변 컬렉션 반환으로 인한 코드 제거

* style: 코드 정리

* style: 로깅 제거

* fix: @EnableAsync 애노테이션을 추가하여 비동기 활성화 및 이벤트 리스너의 반환 타입을 CompletableFuture로 변경

* test: PurchaseHistoryServiceTest에 있는 매입 이력 이벤트(추가/삭제)에 따른 알림 이벤트 테스트를 제거하고 리스너 테스트에 최대 손실 알림 테스트 추가

* feat: @eventlistener를 @TransactionalEventListener로 변경

* feat: github action 워크플로우에 설정 추가

* feat: clear문 추가

* test: beforeEach에 clear 추가

* fix: 현재가 조회에 retry 연산 추가 (#442)

* hotfix: onErrorResume 연산 제거

- 요청 건수 초과와 같은 이유로 액세스 토큰 발급이 실패하였을때 Mono.empty()를 반환하게 되어 예외가 발생하고 스케줄링 메서드에 의해서 계속 시도하게 되면서 발급 알림이 계속 가는것으로 추측

* [fix] 액세스 토큰 Aspect 수정 (#445)

* feat: retry연산에서 재시도 시간을 1분으로 변경

* feat: 액세스 토큰 만료 1시간 전에 재발급하는 조건문 추가

* feat: @CheckKisAccessToken 추가

* feat: accessToken 필드 null 처리

* test: 만료 1시간 이전 액세스 토큰 재발급의 테스트 추가

* feat: 프로덕션 서버 스케줄링 서비스 메서드 따로 분리

* [fix] 액세스 토큰 재발급 문제 해결  (#446)

* test: 액세스 토큰 만료시 예외케이스 추가

* fix: Flux 방식에서 단순 반복문으로 변경

- 병렬 과정에서 액세스 토큰 만료시 무한 시도 문제 해결을 위해서 단순화

* test: 테스트 수정

* test: todo 주석 추가

* feat: kisException 객체로 매핑하여 반환하도록 변경

* test: 테스트 실패 해결

* test: 초당 거래 건수 초과 에러 응답하는 예외 케이스 추가

* feat: returnCode, messageCode 필드 추가

* feat: KisException의 서브 클래스 추가

* feat: onErrorResume 및 retryWhen 연산 수정

- 액세스 토큰이 만료되는 경우에는 Mono.empty() 반환
- retryWhen 연산에서 요청건수 초과인 경우에만 재시도하도록 함

* feat: KisClient의 에러 핸들 처리 메서드(handleError) 수정

- 한국투자증권서버로부터 에러 응답을 수신 시 KisErrorResponse로 매핑한 다음에 Exception으로 변환

* feat: 한국투자증권 서버의 에러 응답 객체 구

* rename: 클래스명 변경

* refactor: toException 메서드 변경

- switch 문으로 개선

* test: Exception 생성 부분을 정적 팩토리 호출로 변경

* refactor: null 체크 조건문 삭제

* feat: 재시도 연산이 실패했을시 onErrorResume 추가

* test: 재시도 연산이 실패시 예외 테스트 추가

* test: kisClient 모킹 처리

* test: 다수 종목 갱신 테스트 추가

* refactor: Flux 방식으로 변경

* refactor: onErrorResume 연산 수정

* test: 테스트 코드 수정

* feat: 액세스 토큰 관련 예외 추가

* feat: accessToken 널 체크 추가

* feat: doOnSuccess 연산 추가

* feat: CredeintailsTypeException 조건 추가

* fix: @CheckKisAccessToken 애노테이션 제거

- 비동기로 실행중 액세스 토큰 제거 또는 만료시 aop의 blockoptional에 의해서 에러 발생하여 kisService로 이동하고자 애노테이션을 제거함

* feat: deleteAccessToken api 추가

* feat: kisService에 액세스 토큰 체크 애노테이션 추가

* test: 레디스 클리너 추가

* fix: 메서드명 변경

* refactor: fetchDividend 반환 타입 변경

* rename: 메서드명 변경

* rename: 메서드명 변경

* refactor: delayManager로 변경

* test: delayManager 추가하여 테스트 실패 해결

* test: delayManager를 @SpyBean으로 변경

* test: holidayManager 필드 제거

* feat: 액세스 토큰 재발급 관련 수정

* fix: 테스트 실패 해결

* fix: currentPrice 조회에 에러 폴백 연산 추가

* fix: checkAccessToken 애노테이션 추가

* [fix] 액세스 토큰 갱신 구조 변경 (#449)

* feat: TIMEOUT 필드 이름 변경

* fix: 종목 조회 및 배당 일정 조회 메서드를 Mono 타입으로 반환하도록 변경

* test: 테스트 실패 해결

* test: 상장 종목 조회의 예외 케이스 추가

* fix: Flux 연산 수행중 별도의 쓰레드에서 동작시 blocking하지 않도록 변경

* test: 테스트 실패 해결

* test: todo 추가 및 새로운 테스트 추가

- 도중에 blocking되지 않아야함

* fix: fetchDividend 메서드 반환타입을 Flux로 변경

* test: 테스트 추가

* test: 액세스 토큰 재발급 실패시 에외 케이스 테스트 추가

* fix: checkAccessToken 애노테이션으로 변경

* fix: onErrorResume 연산 추가

* feat: 로깅 추가

* test: 테스트 제거

* feat: 액세스 토큰을 재발급하는 스케줄러 구현

* test: 액세스 토큰 재발급하는 테스트 추가

* feat: 스케줄러 주기 변경

* fix: aop 제거 및 애노테이션 제거

* refactor: 종가 저장소 개선

* feat: 애노테이션 제거

* rename: 패키지 이동

* style: 코드 정리

* [feat] �배당금 엔티티에 필드 추가 및 포트폴리오 필드 추가 (#451)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* [style] 코드 정리 (#452)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* feat: DividendDates 임베디드 클래스 추가

* feat: StockDividendParser 추가

* feat: 생성자 압축

* refactor: 객체지향적으로 변경

* refactor: Stock 필드에 LocalDateTimeService 추가

* refactor: StockParser 추가 및 분리

* style: 코드 정리

* fix: HashTable 변경

* style: equals 재정의

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

* Refactor: file.delete 개선

* style: 코드 정리

* style: sonarLint에 따른 코드 정리

* fix: 테스트 실패 해결

* style:: 코드 정리

* test: 테스트 해결

* style: 코드 정리

* [feat] �배당금 엔티티에 필드 추가 및 포트폴리오 필드 추가 (#451)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* test: 테스트 실패 해결

* [refactor] kisClient 리팩토링 (#433)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리

* [refactor] kisClient 리팩토링 (#432)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리

* [refactor] kisClient 리팩토링 (#433)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리

* test: 테스트 실해 해결

currentPrice 참조과정에서 액세스 토큰 발급이 실패되어 무한 루프에 빠짐

* fix: addCurrentPrice 수행시 액세스 토큰 호출 제거

- fetchCurrentPrice 실행전 aop에 의해서 실행되기 때문에 제거

* fix: 액세스 토큰 발급 문제 해결

* [refactor] currentPriceRepository 개선 (#435)

* rename: 메서드명을 fetchCurrentPrice로 변경

* refactor: 현재가 조회 모듈 리팩토링

* refactor: redis key, value 메서드 추가

* rename: currentPriceRepository 클래스명 변경

* rename: CurrentPriceRedisRepository의 메소드를 인터페이스에 맞게 변경

* [fix] 매입 이력 알람 리스너 문제 해결 (#438)

* refactor: 현재가 갱신 단순 스트림 방식으로 변경

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

* refactor: toArray 메서드로 분리

* feat: Flux 방식으로 변경

* fix: Mono.error 모킹 해결

* feat: 현재가 조회 부분을 반복문에서 람다로 변경

* refactor: Flux 형태로 현잭가 조회 개선

* style: 코드 정리

* style: 코드 정리

* feat: 컬렉션 필드를 불변 컬렉션으로 반환하도록 변경

PortfolioHolding 클래스의 getPurchaseHistory 메서드 같은 경우 서비스에 문제점이 있어서 todo 남김

* feat: purchaseHistory 컬렉션을 반환시 불변 컬렉션으로 반환

* fix: todo 제거

* feat: 불변 컬렉션 반환으로 인한 코드 제거

* style: 코드 정리

* style: 로깅 제거

* fix: @EnableAsync 애노테이션을 추가하여 비동기 활성화 및 이벤트 리스너의 반환 타입을 CompletableFuture로 변경

* test: PurchaseHistoryServiceTest에 있는 매입 이력 이벤트(추가/삭제)에 따른 알림 이벤트 테스트를 제거하고 리스너 테스트에 최대 손실 알림 테스트 추가

* feat: @eventlistener를 @TransactionalEventListener로 변경

* feat: github action 워크플로우에 설정 추가

* feat: clear문 추가

* test: beforeEach에 clear 추가

* fix: 현재가 조회에 retry 연산 추가 (#442)

* hotfix: onErrorResume 연산 제거

- 요청 건수 초과와 같은 이유로 액세스 토큰 발급이 실패하였을때 Mono.empty()를 반환하게 되어 예외가 발생하고 스케줄링 메서드에 의해서 계속 시도하게 되면서 발급 알림이 계속 가는것으로 추측

* [fix] 액세스 토큰 Aspect 수정 (#445)

* feat: retry연산에서 재시도 시간을 1분으로 변경

* feat: 액세스 토큰 만료 1시간 전에 재발급하는 조건문 추가

* feat: @CheckKisAccessToken 추가

* feat: accessToken 필드 null 처리

* test: 만료 1시간 이전 액세스 토큰 재발급의 테스트 추가

* feat: 프로덕션 서버 스케줄링 서비스 메서드 따로 분리

* [fix] 액세스 토큰 재발급 문제 해결  (#446)

* test: 액세스 토큰 만료시 예외케이스 추가

* fix: Flux 방식에서 단순 반복문으로 변경

- 병렬 과정에서 액세스 토큰 만료시 무한 시도 문제 해결을 위해서 단순화

* test: 테스트 수정

* test: todo 주석 추가

* feat: kisException 객체로 매핑하여 반환하도록 변경

* test: 테스트 실패 해결

* test: 초당 거래 건수 초과 에러 응답하는 예외 케이스 추가

* feat: returnCode, messageCode 필드 추가

* feat: KisException의 서브 클래스 추가

* feat: onErrorResume 및 retryWhen 연산 수정

- 액세스 토큰이 만료되는 경우에는 Mono.empty() 반환
- retryWhen 연산에서 요청건수 초과인 경우에만 재시도하도록 함

* feat: KisClient의 에러 핸들 처리 메서드(handleError) 수정

- 한국투자증권서버로부터 에러 응답을 수신 시 KisErrorResponse로 매핑한 다음에 Exception으로 변환

* feat: 한국투자증권 서버의 에러 응답 객체 구

* rename: 클래스명 변경

* refactor: toException 메서드 변경

- switch 문으로 개선

* test: Exception 생성 부분을 정적 팩토리 호출로 변경

* refactor: null 체크 조건문 삭제

* feat: 재시도 연산이 실패했을시 onErrorResume 추가

* test: 재시도 연산이 실패시 예외 테스트 추가

* test: kisClient 모킹 처리

* test: 다수 종목 갱신 테스트 추가

* refactor: Flux 방식으로 변경

* refactor: onErrorResume 연산 수정

* test: 테스트 코드 수정

* feat: 액세스 토큰 관련 예외 추가

* feat: accessToken 널 체크 추가

* feat: doOnSuccess 연산 추가

* feat: CredeintailsTypeException 조건 추가

* fix: @CheckKisAccessToken 애노테이션 제거

- 비동기로 실행중 액세스 토큰 제거 또는 만료시 aop의 blockoptional에 의해서 에러 발생하여 kisService로 이동하고자 애노테이션을 제거함

* feat: deleteAccessToken api 추가

* feat: kisService에 액세스 토큰 체크 애노테이션 추가

* test: 레디스 클리너 추가

* fix: 메서드명 변경

* refactor: fetchDividend 반환 타입 변경

* rename: 메서드명 변경

* rename: 메서드명 변경

* refactor: delayManager로 변경

* test: delayManager 추가하여 테스트 실패 해결

* test: delayManager를 @SpyBean으로 변경

* test: holidayManager 필드 제거

* feat: 액세스 토큰 재발급 관련 수정

* fix: 테스트 실패 해결

* fix: currentPrice 조회에 에러 폴백 연산 추가

* fix: checkAccessToken 애노테이션 추가

* [fix] 액세스 토큰 갱신 구조 변경 (#449)

* feat: TIMEOUT 필드 이름 변경

* fix: 종목 조회 및 배당 일정 조회 메서드를 Mono 타입으로 반환하도록 변경

* test: 테스트 실패 해결

* test: 상장 종목 조회의 예외 케이스 추가

* fix: Flux 연산 수행중 별도의 쓰레드에서 동작시 blocking하지 않도록 변경

* test: 테스트 실패 해결

* test: todo 추가 및 새로운 테스트 추가

- 도중에 blocking되지 않아야함

* fix: fetchDividend 메서드 반환타입을 Flux로 변경

* test: 테스트 추가

* test: 액세스 토큰 재발급 실패시 에외 케이스 테스트 추가

* fix: checkAccessToken 애노테이션으로 변경

* fix: onErrorResume 연산 추가

* feat: 로깅 추가

* test: 테스트 제거

* feat: 액세스 토큰을 재발급하는 스케줄러 구현

* test: 액세스 토큰 재발급하는 테스트 추가

* feat: 스케줄러 주기 변경

* fix: aop 제거 및 애노테이션 제거

* refactor: 종가 저장소 개선

* feat: 애노테이션 제거

* rename: 패키지 이동

* style: 코드 정리

* [feat] �배당금 엔티티에 필드 추가 및 포트폴리오 필드 추가 (#451)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* [style] 코드 정리 (#452)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* feat: DividendDates 임베디드 클래스 추가

* feat: StockDividendParser 추가

* feat: 생성자 압축

* refactor: 객체지향적으로 변경

* refactor: Stock 필드에 LocalDateTimeService 추가

* refactor: StockParser 추가 및 분리

* style: 코드 정리

* fix: HashTable 변경

* style: equals 재정의

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

* Refactor: file.delete 개선

* style: 코드 정리

* style: sonarLint에 따른 코드 정리

* fix: 테스트 실패 해결

* style:: 코드 정리

* test: 테스트 해결

* style: 코드 정리

* [feat] �배당금 엔티티에 필드 추가 및 포트폴리오 필드 추가 (#451)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* test: 테스트 실패 해결

* [refactor] kisClient 리팩토링 (#433)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리
yonghwankim-dev added a commit that referenced this pull request Sep 1, 2024
* style: 패키지 이동

- co.fineants.api 구조로 변경

* style: 코드 정리

* feat: 사용하지 않는 코드 제거

* fix: 갱신 주기 오타 수정

* Release 0.0.6 (#453)

* feat: 종목 및 배당 일정 최신화 기능 cron 표현식 수정 (#428)

릴리즈 서버는 7시에 수행, 프로덕션은 8시에 수행

* [refactor] 종목 및 배당일정 초기화 코드 개선 (#429)

* feat: 접근 제한자 private 변경 및 트랜잭션 애노테이션 제거

* feat: usd 환율 생성 로직 추가

* style: 코드 정리

* style: 메서드 순서 정리

* feat: 관리자 및 매니저 정보 프로퍼티화

* feat: 관리자 및 매니저 프로퍼티 추가

* refactor: createMemberIfNotFound 메서드 코드 수정

* refactor: 알림 환경설정 초기화 메서드 분리

* refactor: createRoleIfNotFound 메서드명 변경

db에 저장하는 것이기 때문에 save가 더 적절하다고 생각함

* refactor: findOrCreateRole 메서드로 분리

* style: 코드 정리

* rename: SetUpDataLoader 클래스명 변경

* feat: SetupDataLoader 클래스로 분리

* refactor: supplierNotFoundRoleExpceiton 메서드로 분리

* refactor: createExchangeRateIfNotFount 메서드명 변경

* refactor: 스트림 형식으로 변경

* feat: 시크릿 정보 수정

- 역할 정보 추가

* feat: RoleProperties 추가

* feat: 역할별 getter 추가

* refactor: Role 리소스 생성 로직 스트림으로 변경

* refactor: getter 제거 및 클래스명 RoleProperty로 변경

* style: 코드 정리

* test: setupResources 테스트 추가

* test: setupResources 테스트에 멤버 검증문 추가

* test: Authentication 검증문 추가

* test: 검증문 추가

* style: 주석 추가

* test: 환율 검증문 추가

* teset: kisService 객체 모킹

* test: 종목 검증문 추가 및 종목 초기화 로직 추가

* feat: readDividendCsv 메서드 구현

* rename: stocks.csv, dividends.csv 파일을 test/resources로 이동

* feat: 배당금 초기화 추가

* feat: UserProperties 추가

* rename: properties 파일 이동

* feat: 시크릿 정보 변경

- 샘플 유저 추가

* docs: mysql script 제거

* feat: Stock.parse 정적 팩토리 메서드에 예외 캐치 추가

* feat: stocks.csv -> stocks.txt로 변경

* test: 테스트 문제 해결

* feat: parseCsvLine 구현

- Ltd가 포함된 종목은 쉼표를 포함하고 있기 때문에 원할한 쉼표 분할을 위해서 별도의 패턴을 구현함

* feat: Pattern 변경

* test: 테스트 실패 해결

* feat: 시크릿 정보 변경

- csv 파일로 변경

* [refactor] kisClient 리팩토링 (#432)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리

* [refactor] kisClient 리팩토링 (#433)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리

* test: 테스트 실해 해결

currentPrice 참조과정에서 액세스 토큰 발급이 실패되어 무한 루프에 빠짐

* fix: addCurrentPrice 수행시 액세스 토큰 호출 제거

- fetchCurrentPrice 실행전 aop에 의해서 실행되기 때문에 제거

* fix: 액세스 토큰 발급 문제 해결

* [refactor] currentPriceRepository 개선 (#435)

* rename: 메서드명을 fetchCurrentPrice로 변경

* refactor: 현재가 조회 모듈 리팩토링

* refactor: redis key, value 메서드 추가

* rename: currentPriceRepository 클래스명 변경

* rename: CurrentPriceRedisRepository의 메소드를 인터페이스에 맞게 변경

* [fix] 매입 이력 알람 리스너 문제 해결 (#438)

* refactor: 현재가 갱신 단순 스트림 방식으로 변경

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

* refactor: toArray 메서드로 분리

* feat: Flux 방식으로 변경

* fix: Mono.error 모킹 해결

* feat: 현재가 조회 부분을 반복문에서 람다로 변경

* refactor: Flux 형태로 현잭가 조회 개선

* style: 코드 정리

* style: 코드 정리

* feat: 컬렉션 필드를 불변 컬렉션으로 반환하도록 변경

PortfolioHolding 클래스의 getPurchaseHistory 메서드 같은 경우 서비스에 문제점이 있어서 todo 남김

* feat: purchaseHistory 컬렉션을 반환시 불변 컬렉션으로 반환

* fix: todo 제거

* feat: 불변 컬렉션 반환으로 인한 코드 제거

* style: 코드 정리

* style: 로깅 제거

* fix: @EnableAsync 애노테이션을 추가하여 비동기 활성화 및 이벤트 리스너의 반환 타입을 CompletableFuture로 변경

* test: PurchaseHistoryServiceTest에 있는 매입 이력 이벤트(추가/삭제)에 따른 알림 이벤트 테스트를 제거하고 리스너 테스트에 최대 손실 알림 테스트 추가

* feat: @eventlistener를 @TransactionalEventListener로 변경

* feat: github action 워크플로우에 설정 추가

* feat: clear문 추가

* test: beforeEach에 clear 추가

* fix: 현재가 조회에 retry 연산 추가 (#442)

* hotfix: onErrorResume 연산 제거

- 요청 건수 초과와 같은 이유로 액세스 토큰 발급이 실패하였을때 Mono.empty()를 반환하게 되어 예외가 발생하고 스케줄링 메서드에 의해서 계속 시도하게 되면서 발급 알림이 계속 가는것으로 추측

* [fix] 액세스 토큰 Aspect 수정 (#445)

* feat: retry연산에서 재시도 시간을 1분으로 변경

* feat: 액세스 토큰 만료 1시간 전에 재발급하는 조건문 추가

* feat: @CheckKisAccessToken 추가

* feat: accessToken 필드 null 처리

* test: 만료 1시간 이전 액세스 토큰 재발급의 테스트 추가

* feat: 프로덕션 서버 스케줄링 서비스 메서드 따로 분리

* [fix] 액세스 토큰 재발급 문제 해결  (#446)

* test: 액세스 토큰 만료시 예외케이스 추가

* fix: Flux 방식에서 단순 반복문으로 변경

- 병렬 과정에서 액세스 토큰 만료시 무한 시도 문제 해결을 위해서 단순화

* test: 테스트 수정

* test: todo 주석 추가

* feat: kisException 객체로 매핑하여 반환하도록 변경

* test: 테스트 실패 해결

* test: 초당 거래 건수 초과 에러 응답하는 예외 케이스 추가

* feat: returnCode, messageCode 필드 추가

* feat: KisException의 서브 클래스 추가

* feat: onErrorResume 및 retryWhen 연산 수정

- 액세스 토큰이 만료되는 경우에는 Mono.empty() 반환
- retryWhen 연산에서 요청건수 초과인 경우에만 재시도하도록 함

* feat: KisClient의 에러 핸들 처리 메서드(handleError) 수정

- 한국투자증권서버로부터 에러 응답을 수신 시 KisErrorResponse로 매핑한 다음에 Exception으로 변환

* feat: 한국투자증권 서버의 에러 응답 객체 구

* rename: 클래스명 변경

* refactor: toException 메서드 변경

- switch 문으로 개선

* test: Exception 생성 부분을 정적 팩토리 호출로 변경

* refactor: null 체크 조건문 삭제

* feat: 재시도 연산이 실패했을시 onErrorResume 추가

* test: 재시도 연산이 실패시 예외 테스트 추가

* test: kisClient 모킹 처리

* test: 다수 종목 갱신 테스트 추가

* refactor: Flux 방식으로 변경

* refactor: onErrorResume 연산 수정

* test: 테스트 코드 수정

* feat: 액세스 토큰 관련 예외 추가

* feat: accessToken 널 체크 추가

* feat: doOnSuccess 연산 추가

* feat: CredeintailsTypeException 조건 추가

* fix: @CheckKisAccessToken 애노테이션 제거

- 비동기로 실행중 액세스 토큰 제거 또는 만료시 aop의 blockoptional에 의해서 에러 발생하여 kisService로 이동하고자 애노테이션을 제거함

* feat: deleteAccessToken api 추가

* feat: kisService에 액세스 토큰 체크 애노테이션 추가

* test: 레디스 클리너 추가

* fix: 메서드명 변경

* refactor: fetchDividend 반환 타입 변경

* rename: 메서드명 변경

* rename: 메서드명 변경

* refactor: delayManager로 변경

* test: delayManager 추가하여 테스트 실패 해결

* test: delayManager를 @SpyBean으로 변경

* test: holidayManager 필드 제거

* feat: 액세스 토큰 재발급 관련 수정

* fix: 테스트 실패 해결

* fix: currentPrice 조회에 에러 폴백 연산 추가

* fix: checkAccessToken 애노테이션 추가

* [fix] 액세스 토큰 갱신 구조 변경 (#449)

* feat: TIMEOUT 필드 이름 변경

* fix: 종목 조회 및 배당 일정 조회 메서드를 Mono 타입으로 반환하도록 변경

* test: 테스트 실패 해결

* test: 상장 종목 조회의 예외 케이스 추가

* fix: Flux 연산 수행중 별도의 쓰레드에서 동작시 blocking하지 않도록 변경

* test: 테스트 실패 해결

* test: todo 추가 및 새로운 테스트 추가

- 도중에 blocking되지 않아야함

* fix: fetchDividend 메서드 반환타입을 Flux로 변경

* test: 테스트 추가

* test: 액세스 토큰 재발급 실패시 에외 케이스 테스트 추가

* fix: checkAccessToken 애노테이션으로 변경

* fix: onErrorResume 연산 추가

* feat: 로깅 추가

* test: 테스트 제거

* feat: 액세스 토큰을 재발급하는 스케줄러 구현

* test: 액세스 토큰 재발급하는 테스트 추가

* feat: 스케줄러 주기 변경

* fix: aop 제거 및 애노테이션 제거

* refactor: 종가 저장소 개선

* feat: 애노테이션 제거

* rename: 패키지 이동

* style: 코드 정리

* [feat] �배당금 엔티티에 필드 추가 및 포트폴리오 필드 추가 (#451)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* [style] 코드 정리 (#452)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* feat: DividendDates 임베디드 클래스 추가

* feat: StockDividendParser 추가

* feat: 생성자 압축

* refactor: 객체지향적으로 변경

* refactor: Stock 필드에 LocalDateTimeService 추가

* refactor: StockParser 추가 및 분리

* style: 코드 정리

* fix: HashTable 변경

* style: equals 재정의

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

* Refactor: file.delete 개선

* style: 코드 정리

* style: sonarLint에 따른 코드 정리

* fix: 테스트 실패 해결

* style:: 코드 정리

* test: 테스트 해결

* style: 코드 정리

* [feat] �배당금 엔티티에 필드 추가 및 포트폴리오 필드 추가 (#451)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* test: 테스트 실패 해결

* [refactor] kisClient 리팩토링 (#433)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리

* [refactor] kisClient 리팩토링 (#432)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리

* [refactor] kisClient 리팩토링 (#433)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리

* test: 테스트 실해 해결

currentPrice 참조과정에서 액세스 토큰 발급이 실패되어 무한 루프에 빠짐

* fix: addCurrentPrice 수행시 액세스 토큰 호출 제거

- fetchCurrentPrice 실행전 aop에 의해서 실행되기 때문에 제거

* fix: 액세스 토큰 발급 문제 해결

* [refactor] currentPriceRepository 개선 (#435)

* rename: 메서드명을 fetchCurrentPrice로 변경

* refactor: 현재가 조회 모듈 리팩토링

* refactor: redis key, value 메서드 추가

* rename: currentPriceRepository 클래스명 변경

* rename: CurrentPriceRedisRepository의 메소드를 인터페이스에 맞게 변경

* [fix] 매입 이력 알람 리스너 문제 해결 (#438)

* refactor: 현재가 갱신 단순 스트림 방식으로 변경

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

* refactor: toArray 메서드로 분리

* feat: Flux 방식으로 변경

* fix: Mono.error 모킹 해결

* feat: 현재가 조회 부분을 반복문에서 람다로 변경

* refactor: Flux 형태로 현잭가 조회 개선

* style: 코드 정리

* style: 코드 정리

* feat: 컬렉션 필드를 불변 컬렉션으로 반환하도록 변경

PortfolioHolding 클래스의 getPurchaseHistory 메서드 같은 경우 서비스에 문제점이 있어서 todo 남김

* feat: purchaseHistory 컬렉션을 반환시 불변 컬렉션으로 반환

* fix: todo 제거

* feat: 불변 컬렉션 반환으로 인한 코드 제거

* style: 코드 정리

* style: 로깅 제거

* fix: @EnableAsync 애노테이션을 추가하여 비동기 활성화 및 이벤트 리스너의 반환 타입을 CompletableFuture로 변경

* test: PurchaseHistoryServiceTest에 있는 매입 이력 이벤트(추가/삭제)에 따른 알림 이벤트 테스트를 제거하고 리스너 테스트에 최대 손실 알림 테스트 추가

* feat: @eventlistener를 @TransactionalEventListener로 변경

* feat: github action 워크플로우에 설정 추가

* feat: clear문 추가

* test: beforeEach에 clear 추가

* fix: 현재가 조회에 retry 연산 추가 (#442)

* hotfix: onErrorResume 연산 제거

- 요청 건수 초과와 같은 이유로 액세스 토큰 발급이 실패하였을때 Mono.empty()를 반환하게 되어 예외가 발생하고 스케줄링 메서드에 의해서 계속 시도하게 되면서 발급 알림이 계속 가는것으로 추측

* [fix] 액세스 토큰 Aspect 수정 (#445)

* feat: retry연산에서 재시도 시간을 1분으로 변경

* feat: 액세스 토큰 만료 1시간 전에 재발급하는 조건문 추가

* feat: @CheckKisAccessToken 추가

* feat: accessToken 필드 null 처리

* test: 만료 1시간 이전 액세스 토큰 재발급의 테스트 추가

* feat: 프로덕션 서버 스케줄링 서비스 메서드 따로 분리

* [fix] 액세스 토큰 재발급 문제 해결  (#446)

* test: 액세스 토큰 만료시 예외케이스 추가

* fix: Flux 방식에서 단순 반복문으로 변경

- 병렬 과정에서 액세스 토큰 만료시 무한 시도 문제 해결을 위해서 단순화

* test: 테스트 수정

* test: todo 주석 추가

* feat: kisException 객체로 매핑하여 반환하도록 변경

* test: 테스트 실패 해결

* test: 초당 거래 건수 초과 에러 응답하는 예외 케이스 추가

* feat: returnCode, messageCode 필드 추가

* feat: KisException의 서브 클래스 추가

* feat: onErrorResume 및 retryWhen 연산 수정

- 액세스 토큰이 만료되는 경우에는 Mono.empty() 반환
- retryWhen 연산에서 요청건수 초과인 경우에만 재시도하도록 함

* feat: KisClient의 에러 핸들 처리 메서드(handleError) 수정

- 한국투자증권서버로부터 에러 응답을 수신 시 KisErrorResponse로 매핑한 다음에 Exception으로 변환

* feat: 한국투자증권 서버의 에러 응답 객체 구

* rename: 클래스명 변경

* refactor: toException 메서드 변경

- switch 문으로 개선

* test: Exception 생성 부분을 정적 팩토리 호출로 변경

* refactor: null 체크 조건문 삭제

* feat: 재시도 연산이 실패했을시 onErrorResume 추가

* test: 재시도 연산이 실패시 예외 테스트 추가

* test: kisClient 모킹 처리

* test: 다수 종목 갱신 테스트 추가

* refactor: Flux 방식으로 변경

* refactor: onErrorResume 연산 수정

* test: 테스트 코드 수정

* feat: 액세스 토큰 관련 예외 추가

* feat: accessToken 널 체크 추가

* feat: doOnSuccess 연산 추가

* feat: CredeintailsTypeException 조건 추가

* fix: @CheckKisAccessToken 애노테이션 제거

- 비동기로 실행중 액세스 토큰 제거 또는 만료시 aop의 blockoptional에 의해서 에러 발생하여 kisService로 이동하고자 애노테이션을 제거함

* feat: deleteAccessToken api 추가

* feat: kisService에 액세스 토큰 체크 애노테이션 추가

* test: 레디스 클리너 추가

* fix: 메서드명 변경

* refactor: fetchDividend 반환 타입 변경

* rename: 메서드명 변경

* rename: 메서드명 변경

* refactor: delayManager로 변경

* test: delayManager 추가하여 테스트 실패 해결

* test: delayManager를 @SpyBean으로 변경

* test: holidayManager 필드 제거

* feat: 액세스 토큰 재발급 관련 수정

* fix: 테스트 실패 해결

* fix: currentPrice 조회에 에러 폴백 연산 추가

* fix: checkAccessToken 애노테이션 추가

* [fix] 액세스 토큰 갱신 구조 변경 (#449)

* feat: TIMEOUT 필드 이름 변경

* fix: 종목 조회 및 배당 일정 조회 메서드를 Mono 타입으로 반환하도록 변경

* test: 테스트 실패 해결

* test: 상장 종목 조회의 예외 케이스 추가

* fix: Flux 연산 수행중 별도의 쓰레드에서 동작시 blocking하지 않도록 변경

* test: 테스트 실패 해결

* test: todo 추가 및 새로운 테스트 추가

- 도중에 blocking되지 않아야함

* fix: fetchDividend 메서드 반환타입을 Flux로 변경

* test: 테스트 추가

* test: 액세스 토큰 재발급 실패시 에외 케이스 테스트 추가

* fix: checkAccessToken 애노테이션으로 변경

* fix: onErrorResume 연산 추가

* feat: 로깅 추가

* test: 테스트 제거

* feat: 액세스 토큰을 재발급하는 스케줄러 구현

* test: 액세스 토큰 재발급하는 테스트 추가

* feat: 스케줄러 주기 변경

* fix: aop 제거 및 애노테이션 제거

* refactor: 종가 저장소 개선

* feat: 애노테이션 제거

* rename: 패키지 이동

* style: 코드 정리

* [feat] �배당금 엔티티에 필드 추가 및 포트폴리오 필드 추가 (#451)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* [style] 코드 정리 (#452)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* feat: DividendDates 임베디드 클래스 추가

* feat: StockDividendParser 추가

* feat: 생성자 압축

* refactor: 객체지향적으로 변경

* refactor: Stock 필드에 LocalDateTimeService 추가

* refactor: StockParser 추가 및 분리

* style: 코드 정리

* fix: HashTable 변경

* style: equals 재정의

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

* Refactor: file.delete 개선

* style: 코드 정리

* style: sonarLint에 따른 코드 정리

* fix: 테스트 실패 해결

* style:: 코드 정리

* test: 테스트 해결

* style: 코드 정리

* [feat] �배당금 엔티티에 필드 추가 및 포트폴리오 필드 추가 (#451)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* test: 테스트 실패 해결

* [refactor] kisClient 리팩토링 (#433)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리

* style: 패키지 이동

- co.fineants.api 구조로 변경
yonghwankim-dev added a commit that referenced this pull request Sep 3, 2024
* feat: 종목 및 배당 일정 최신화 기능 cron 표현식 수정 (#428)

릴리즈 서버는 7시에 수행, 프로덕션은 8시에 수행

* [refactor] 종목 및 배당일정 초기화 코드 개선 (#429)

* feat: 접근 제한자 private 변경 및 트랜잭션 애노테이션 제거

* feat: usd 환율 생성 로직 추가

* style: 코드 정리

* style: 메서드 순서 정리

* feat: 관리자 및 매니저 정보 프로퍼티화

* feat: 관리자 및 매니저 프로퍼티 추가

* refactor: createMemberIfNotFound 메서드 코드 수정

* refactor: 알림 환경설정 초기화 메서드 분리

* refactor: createRoleIfNotFound 메서드명 변경

db에 저장하는 것이기 때문에 save가 더 적절하다고 생각함

* refactor: findOrCreateRole 메서드로 분리

* style: 코드 정리

* rename: SetUpDataLoader 클래스명 변경

* feat: SetupDataLoader 클래스로 분리

* refactor: supplierNotFoundRoleExpceiton 메서드로 분리

* refactor: createExchangeRateIfNotFount 메서드명 변경

* refactor: 스트림 형식으로 변경

* feat: 시크릿 정보 수정

- 역할 정보 추가

* feat: RoleProperties 추가

* feat: 역할별 getter 추가

* refactor: Role 리소스 생성 로직 스트림으로 변경

* refactor: getter 제거 및 클래스명 RoleProperty로 변경

* style: 코드 정리

* test: setupResources 테스트 추가

* test: setupResources 테스트에 멤버 검증문 추가

* test: Authentication 검증문 추가

* test: 검증문 추가

* style: 주석 추가

* test: 환율 검증문 추가

* teset: kisService 객체 모킹

* test: 종목 검증문 추가 및 종목 초기화 로직 추가

* feat: readDividendCsv 메서드 구현

* rename: stocks.csv, dividends.csv 파일을 test/resources로 이동

* feat: 배당금 초기화 추가

* feat: UserProperties 추가

* rename: properties 파일 이동

* feat: 시크릿 정보 변경

- 샘플 유저 추가

* docs: mysql script 제거

* feat: Stock.parse 정적 팩토리 메서드에 예외 캐치 추가

* feat: stocks.csv -> stocks.txt로 변경

* test: 테스트 문제 해결

* feat: parseCsvLine 구현

- Ltd가 포함된 종목은 쉼표를 포함하고 있기 때문에 원할한 쉼표 분할을 위해서 별도의 패턴을 구현함

* feat: Pattern 변경

* test: 테스트 실패 해결

* feat: 시크릿 정보 변경

- csv 파일로 변경

* [refactor] kisClient 리팩토링 (#432)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리

* [refactor] kisClient 리팩토링 (#433)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리

* test: 테스트 실해 해결

currentPrice 참조과정에서 액세스 토큰 발급이 실패되어 무한 루프에 빠짐

* fix: addCurrentPrice 수행시 액세스 토큰 호출 제거

- fetchCurrentPrice 실행전 aop에 의해서 실행되기 때문에 제거

* fix: 액세스 토큰 발급 문제 해결

* [refactor] currentPriceRepository 개선 (#435)

* rename: 메서드명을 fetchCurrentPrice로 변경

* refactor: 현재가 조회 모듈 리팩토링

* refactor: redis key, value 메서드 추가

* rename: currentPriceRepository 클래스명 변경

* rename: CurrentPriceRedisRepository의 메소드를 인터페이스에 맞게 변경

* [fix] 매입 이력 알람 리스너 문제 해결 (#438)

* refactor: 현재가 갱신 단순 스트림 방식으로 변경

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

* refactor: toArray 메서드로 분리

* feat: Flux 방식으로 변경

* fix: Mono.error 모킹 해결

* feat: 현재가 조회 부분을 반복문에서 람다로 변경

* refactor: Flux 형태로 현잭가 조회 개선

* style: 코드 정리

* style: 코드 정리

* feat: 컬렉션 필드를 불변 컬렉션으로 반환하도록 변경

PortfolioHolding 클래스의 getPurchaseHistory 메서드 같은 경우 서비스에 문제점이 있어서 todo 남김

* feat: purchaseHistory 컬렉션을 반환시 불변 컬렉션으로 반환

* fix: todo 제거

* feat: 불변 컬렉션 반환으로 인한 코드 제거

* style: 코드 정리

* style: 로깅 제거

* fix: @EnableAsync 애노테이션을 추가하여 비동기 활성화 및 이벤트 리스너의 반환 타입을 CompletableFuture로 변경

* test: PurchaseHistoryServiceTest에 있는 매입 이력 이벤트(추가/삭제)에 따른 알림 이벤트 테스트를 제거하고 리스너 테스트에 최대 손실 알림 테스트 추가

* feat: @EventListener를 @TransactionalEventListener로 변경

* feat: github action 워크플로우에 설정 추가

* feat: clear문 추가

* test: beforeEach에 clear 추가

* fix: 현재가 조회에 retry 연산 추가 (#442)

* hotfix: onErrorResume 연산 제거

- 요청 건수 초과와 같은 이유로 액세스 토큰 발급이 실패하였을때 Mono.empty()를 반환하게 되어 예외가 발생하고 스케줄링 메서드에 의해서 계속 시도하게 되면서 발급 알림이 계속 가는것으로 추측

* [fix] 액세스 토큰 Aspect 수정 (#445)

* feat: retry연산에서 재시도 시간을 1분으로 변경

* feat: 액세스 토큰 만료 1시간 전에 재발급하는 조건문 추가

* feat: @CheckKisAccessToken 추가

* feat: accessToken 필드 null 처리

* test: 만료 1시간 이전 액세스 토큰 재발급의 테스트 추가

* feat: 프로덕션 서버 스케줄링 서비스 메서드 따로 분리

* [fix] 액세스 토큰 재발급 문제 해결  (#446)

* test: 액세스 토큰 만료시 예외케이스 추가

* fix: Flux 방식에서 단순 반복문으로 변경

- 병렬 과정에서 액세스 토큰 만료시 무한 시도 문제 해결을 위해서 단순화

* test: 테스트 수정

* test: todo 주석 추가

* feat: kisException 객체로 매핑하여 반환하도록 변경

* test: 테스트 실패 해결

* test: 초당 거래 건수 초과 에러 응답하는 예외 케이스 추가

* feat: returnCode, messageCode 필드 추가

* feat: KisException의 서브 클래스 추가

* feat: onErrorResume 및 retryWhen 연산 수정

- 액세스 토큰이 만료되는 경우에는 Mono.empty() 반환
- retryWhen 연산에서 요청건수 초과인 경우에만 재시도하도록 함

* feat: KisClient의 에러 핸들 처리 메서드(handleError) 수정

- 한국투자증권서버로부터 에러 응답을 수신 시 KisErrorResponse로 매핑한 다음에 Exception으로 변환

* feat: 한국투자증권 서버의 에러 응답 객체 구

* rename: 클래스명 변경

* refactor: toException 메서드 변경

- switch 문으로 개선

* test: Exception 생성 부분을 정적 팩토리 호출로 변경

* refactor: null 체크 조건문 삭제

* feat: 재시도 연산이 실패했을시 onErrorResume 추가

* test: 재시도 연산이 실패시 예외 테스트 추가

* test: kisClient 모킹 처리

* test: 다수 종목 갱신 테스트 추가

* refactor: Flux 방식으로 변경

* refactor: onErrorResume 연산 수정

* test: 테스트 코드 수정

* feat: 액세스 토큰 관련 예외 추가

* feat: accessToken 널 체크 추가

* feat: doOnSuccess 연산 추가

* feat: CredeintailsTypeException 조건 추가

* fix: @CheckKisAccessToken 애노테이션 제거

- 비동기로 실행중 액세스 토큰 제거 또는 만료시 aop의 blockoptional에 의해서 에러 발생하여 kisService로 이동하고자 애노테이션을 제거함

* feat: deleteAccessToken api 추가

* feat: kisService에 액세스 토큰 체크 애노테이션 추가

* test: 레디스 클리너 추가

* fix: 메서드명 변경

* refactor: fetchDividend 반환 타입 변경

* rename: 메서드명 변경

* rename: 메서드명 변경

* refactor: delayManager로 변경

* test: delayManager 추가하여 테스트 실패 해결

* test: delayManager를 @SpyBean으로 변경

* test: holidayManager 필드 제거

* feat: 액세스 토큰 재발급 관련 수정

* fix: 테스트 실패 해결

* fix: currentPrice 조회에 에러 폴백 연산 추가

* fix: checkAccessToken 애노테이션 추가

* [fix] 액세스 토큰 갱신 구조 변경 (#449)

* feat: TIMEOUT 필드 이름 변경

* fix: 종목 조회 및 배당 일정 조회 메서드를 Mono 타입으로 반환하도록 변경

* test: 테스트 실패 해결

* test: 상장 종목 조회의 예외 케이스 추가

* fix: Flux 연산 수행중 별도의 쓰레드에서 동작시 blocking하지 않도록 변경

* test: 테스트 실패 해결

* test: todo 추가 및 새로운 테스트 추가

- 도중에 blocking되지 않아야함

* fix: fetchDividend 메서드 반환타입을 Flux로 변경

* test: 테스트 추가

* test: 액세스 토큰 재발급 실패시 에외 케이스 테스트 추가

* fix: checkAccessToken 애노테이션으로 변경

* fix: onErrorResume 연산 추가

* feat: 로깅 추가

* test: 테스트 제거

* feat: 액세스 토큰을 재발급하는 스케줄러 구현

* test: 액세스 토큰 재발급하는 테스트 추가

* feat: 스케줄러 주기 변경

* fix: aop 제거 및 애노테이션 제거

* refactor: 종가 저장소 개선

* feat: 애노테이션 제거

* rename: 패키지 이동

* style: 코드 정리

* [feat] �배당금 엔티티에 필드 추가 및 포트폴리오 필드 추가 (#451)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* [style] 코드 정리 (#452)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* feat: DividendDates 임베디드 클래스 추가

* feat: StockDividendParser 추가

* feat: 생성자 압축

* refactor: 객체지향적으로 변경

* refactor: Stock 필드에 LocalDateTimeService 추가

* refactor: StockParser 추가 및 분리

* style: 코드 정리

* fix: HashTable 변경

* style: equals 재정의

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

* Refactor: file.delete 개선

* style: 코드 정리

* style: sonarLint에 따른 코드 정리

* fix: 테스트 실패 해결

* style:: 코드 정리

* test: 테스트 해결

* style: 코드 정리

* [feat] �배당금 엔티티에 필드 추가 및 포트폴리오 필드 추가 (#451)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* test: 테스트 실패 해결

* [refactor] kisClient 리팩토링 (#433)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리

* [refactor] kisClient 리팩토링 (#432)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리

* [refactor] kisClient 리팩토링 (#433)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리

* test: 테스트 실해 해결

currentPrice 참조과정에서 액세스 토큰 발급이 실패되어 무한 루프에 빠짐

* fix: addCurrentPrice 수행시 액세스 토큰 호출 제거

- fetchCurrentPrice 실행전 aop에 의해서 실행되기 때문에 제거

* fix: 액세스 토큰 발급 문제 해결

* [refactor] currentPriceRepository 개선 (#435)

* rename: 메서드명을 fetchCurrentPrice로 변경

* refactor: 현재가 조회 모듈 리팩토링

* refactor: redis key, value 메서드 추가

* rename: currentPriceRepository 클래스명 변경

* rename: CurrentPriceRedisRepository의 메소드를 인터페이스에 맞게 변경

* [fix] 매입 이력 알람 리스너 문제 해결 (#438)

* refactor: 현재가 갱신 단순 스트림 방식으로 변경

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

* refactor: toArray 메서드로 분리

* feat: Flux 방식으로 변경

* fix: Mono.error 모킹 해결

* feat: 현재가 조회 부분을 반복문에서 람다로 변경

* refactor: Flux 형태로 현잭가 조회 개선

* style: 코드 정리

* style: 코드 정리

* feat: 컬렉션 필드를 불변 컬렉션으로 반환하도록 변경

PortfolioHolding 클래스의 getPurchaseHistory 메서드 같은 경우 서비스에 문제점이 있어서 todo 남김

* feat: purchaseHistory 컬렉션을 반환시 불변 컬렉션으로 반환

* fix: todo 제거

* feat: 불변 컬렉션 반환으로 인한 코드 제거

* style: 코드 정리

* style: 로깅 제거

* fix: @EnableAsync 애노테이션을 추가하여 비동기 활성화 및 이벤트 리스너의 반환 타입을 CompletableFuture로 변경

* test: PurchaseHistoryServiceTest에 있는 매입 이력 이벤트(추가/삭제)에 따른 알림 이벤트 테스트를 제거하고 리스너 테스트에 최대 손실 알림 테스트 추가

* feat: @EventListener를 @TransactionalEventListener로 변경

* feat: github action 워크플로우에 설정 추가

* feat: clear문 추가

* test: beforeEach에 clear 추가

* fix: 현재가 조회에 retry 연산 추가 (#442)

* hotfix: onErrorResume 연산 제거

- 요청 건수 초과와 같은 이유로 액세스 토큰 발급이 실패하였을때 Mono.empty()를 반환하게 되어 예외가 발생하고 스케줄링 메서드에 의해서 계속 시도하게 되면서 발급 알림이 계속 가는것으로 추측

* [fix] 액세스 토큰 Aspect 수정 (#445)

* feat: retry연산에서 재시도 시간을 1분으로 변경

* feat: 액세스 토큰 만료 1시간 전에 재발급하는 조건문 추가

* feat: @CheckKisAccessToken 추가

* feat: accessToken 필드 null 처리

* test: 만료 1시간 이전 액세스 토큰 재발급의 테스트 추가

* feat: 프로덕션 서버 스케줄링 서비스 메서드 따로 분리

* [fix] 액세스 토큰 재발급 문제 해결  (#446)

* test: 액세스 토큰 만료시 예외케이스 추가

* fix: Flux 방식에서 단순 반복문으로 변경

- 병렬 과정에서 액세스 토큰 만료시 무한 시도 문제 해결을 위해서 단순화

* test: 테스트 수정

* test: todo 주석 추가

* feat: kisException 객체로 매핑하여 반환하도록 변경

* test: 테스트 실패 해결

* test: 초당 거래 건수 초과 에러 응답하는 예외 케이스 추가

* feat: returnCode, messageCode 필드 추가

* feat: KisException의 서브 클래스 추가

* feat: onErrorResume 및 retryWhen 연산 수정

- 액세스 토큰이 만료되는 경우에는 Mono.empty() 반환
- retryWhen 연산에서 요청건수 초과인 경우에만 재시도하도록 함

* feat: KisClient의 에러 핸들 처리 메서드(handleError) 수정

- 한국투자증권서버로부터 에러 응답을 수신 시 KisErrorResponse로 매핑한 다음에 Exception으로 변환

* feat: 한국투자증권 서버의 에러 응답 객체 구

* rename: 클래스명 변경

* refactor: toException 메서드 변경

- switch 문으로 개선

* test: Exception 생성 부분을 정적 팩토리 호출로 변경

* refactor: null 체크 조건문 삭제

* feat: 재시도 연산이 실패했을시 onErrorResume 추가

* test: 재시도 연산이 실패시 예외 테스트 추가

* test: kisClient 모킹 처리

* test: 다수 종목 갱신 테스트 추가

* refactor: Flux 방식으로 변경

* refactor: onErrorResume 연산 수정

* test: 테스트 코드 수정

* feat: 액세스 토큰 관련 예외 추가

* feat: accessToken 널 체크 추가

* feat: doOnSuccess 연산 추가

* feat: CredeintailsTypeException 조건 추가

* fix: @CheckKisAccessToken 애노테이션 제거

- 비동기로 실행중 액세스 토큰 제거 또는 만료시 aop의 blockoptional에 의해서 에러 발생하여 kisService로 이동하고자 애노테이션을 제거함

* feat: deleteAccessToken api 추가

* feat: kisService에 액세스 토큰 체크 애노테이션 추가

* test: 레디스 클리너 추가

* fix: 메서드명 변경

* refactor: fetchDividend 반환 타입 변경

* rename: 메서드명 변경

* rename: 메서드명 변경

* refactor: delayManager로 변경

* test: delayManager 추가하여 테스트 실패 해결

* test: delayManager를 @SpyBean으로 변경

* test: holidayManager 필드 제거

* feat: 액세스 토큰 재발급 관련 수정

* fix: 테스트 실패 해결

* fix: currentPrice 조회에 에러 폴백 연산 추가

* fix: checkAccessToken 애노테이션 추가

* [fix] 액세스 토큰 갱신 구조 변경 (#449)

* feat: TIMEOUT 필드 이름 변경

* fix: 종목 조회 및 배당 일정 조회 메서드를 Mono 타입으로 반환하도록 변경

* test: 테스트 실패 해결

* test: 상장 종목 조회의 예외 케이스 추가

* fix: Flux 연산 수행중 별도의 쓰레드에서 동작시 blocking하지 않도록 변경

* test: 테스트 실패 해결

* test: todo 추가 및 새로운 테스트 추가

- 도중에 blocking되지 않아야함

* fix: fetchDividend 메서드 반환타입을 Flux로 변경

* test: 테스트 추가

* test: 액세스 토큰 재발급 실패시 에외 케이스 테스트 추가

* fix: checkAccessToken 애노테이션으로 변경

* fix: onErrorResume 연산 추가

* feat: 로깅 추가

* test: 테스트 제거

* feat: 액세스 토큰을 재발급하는 스케줄러 구현

* test: 액세스 토큰 재발급하는 테스트 추가

* feat: 스케줄러 주기 변경

* fix: aop 제거 및 애노테이션 제거

* refactor: 종가 저장소 개선

* feat: 애노테이션 제거

* rename: 패키지 이동

* style: 코드 정리

* [feat] �배당금 엔티티에 필드 추가 및 포트폴리오 필드 추가 (#451)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* [style] 코드 정리 (#452)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* feat: DividendDates 임베디드 클래스 추가

* feat: StockDividendParser 추가

* feat: 생성자 압축

* refactor: 객체지향적으로 변경

* refactor: Stock 필드에 LocalDateTimeService 추가

* refactor: StockParser 추가 및 분리

* style: 코드 정리

* fix: HashTable 변경

* style: equals 재정의

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

* Refactor: file.delete 개선

* style: 코드 정리

* style: sonarLint에 따른 코드 정리

* fix: 테스트 실패 해결

* style:: 코드 정리

* test: 테스트 해결

* style: 코드 정리

* [feat] �배당금 엔티티에 필드 추가 및 포트폴리오 필드 추가 (#451)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* test: 테스트 실패 해결

* [refactor] kisClient 리팩토링 (#433)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리

* fix: 갱신 주기 오타 수정 (#456)

* [refactor] 패키지 이동 (#458)

* style: 패키지 이동

- co.fineants.api 구조로 변경

* style: 코드 정리

* feat: 사용하지 않는 코드 제거

* fix: 갱신 주기 오타 수정

* Release 0.0.6 (#453)

* feat: 종목 및 배당 일정 최신화 기능 cron 표현식 수정 (#428)

릴리즈 서버는 7시에 수행, 프로덕션은 8시에 수행

* [refactor] 종목 및 배당일정 초기화 코드 개선 (#429)

* feat: 접근 제한자 private 변경 및 트랜잭션 애노테이션 제거

* feat: usd 환율 생성 로직 추가

* style: 코드 정리

* style: 메서드 순서 정리

* feat: 관리자 및 매니저 정보 프로퍼티화

* feat: 관리자 및 매니저 프로퍼티 추가

* refactor: createMemberIfNotFound 메서드 코드 수정

* refactor: 알림 환경설정 초기화 메서드 분리

* refactor: createRoleIfNotFound 메서드명 변경

db에 저장하는 것이기 때문에 save가 더 적절하다고 생각함

* refactor: findOrCreateRole 메서드로 분리

* style: 코드 정리

* rename: SetUpDataLoader 클래스명 변경

* feat: SetupDataLoader 클래스로 분리

* refactor: supplierNotFoundRoleExpceiton 메서드로 분리

* refactor: createExchangeRateIfNotFount 메서드명 변경

* refactor: 스트림 형식으로 변경

* feat: 시크릿 정보 수정

- 역할 정보 추가

* feat: RoleProperties 추가

* feat: 역할별 getter 추가

* refactor: Role 리소스 생성 로직 스트림으로 변경

* refactor: getter 제거 및 클래스명 RoleProperty로 변경

* style: 코드 정리

* test: setupResources 테스트 추가

* test: setupResources 테스트에 멤버 검증문 추가

* test: Authentication 검증문 추가

* test: 검증문 추가

* style: 주석 추가

* test: 환율 검증문 추가

* teset: kisService 객체 모킹

* test: 종목 검증문 추가 및 종목 초기화 로직 추가

* feat: readDividendCsv 메서드 구현

* rename: stocks.csv, dividends.csv 파일을 test/resources로 이동

* feat: 배당금 초기화 추가

* feat: UserProperties 추가

* rename: properties 파일 이동

* feat: 시크릿 정보 변경

- 샘플 유저 추가

* docs: mysql script 제거

* feat: Stock.parse 정적 팩토리 메서드에 예외 캐치 추가

* feat: stocks.csv -> stocks.txt로 변경

* test: 테스트 문제 해결

* feat: parseCsvLine 구현

- Ltd가 포함된 종목은 쉼표를 포함하고 있기 때문에 원할한 쉼표 분할을 위해서 별도의 패턴을 구현함

* feat: Pattern 변경

* test: 테스트 실패 해결

* feat: 시크릿 정보 변경

- csv 파일로 변경

* [refactor] kisClient 리팩토링 (#432)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리

* [refactor] kisClient 리팩토링 (#433)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리

* test: 테스트 실해 해결

currentPrice 참조과정에서 액세스 토큰 발급이 실패되어 무한 루프에 빠짐

* fix: addCurrentPrice 수행시 액세스 토큰 호출 제거

- fetchCurrentPrice 실행전 aop에 의해서 실행되기 때문에 제거

* fix: 액세스 토큰 발급 문제 해결

* [refactor] currentPriceRepository 개선 (#435)

* rename: 메서드명을 fetchCurrentPrice로 변경

* refactor: 현재가 조회 모듈 리팩토링

* refactor: redis key, value 메서드 추가

* rename: currentPriceRepository 클래스명 변경

* rename: CurrentPriceRedisRepository의 메소드를 인터페이스에 맞게 변경

* [fix] 매입 이력 알람 리스너 문제 해결 (#438)

* refactor: 현재가 갱신 단순 스트림 방식으로 변경

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

* refactor: toArray 메서드로 분리

* feat: Flux 방식으로 변경

* fix: Mono.error 모킹 해결

* feat: 현재가 조회 부분을 반복문에서 람다로 변경

* refactor: Flux 형태로 현잭가 조회 개선

* style: 코드 정리

* style: 코드 정리

* feat: 컬렉션 필드를 불변 컬렉션으로 반환하도록 변경

PortfolioHolding 클래스의 getPurchaseHistory 메서드 같은 경우 서비스에 문제점이 있어서 todo 남김

* feat: purchaseHistory 컬렉션을 반환시 불변 컬렉션으로 반환

* fix: todo 제거

* feat: 불변 컬렉션 반환으로 인한 코드 제거

* style: 코드 정리

* style: 로깅 제거

* fix: @EnableAsync 애노테이션을 추가하여 비동기 활성화 및 이벤트 리스너의 반환 타입을 CompletableFuture로 변경

* test: PurchaseHistoryServiceTest에 있는 매입 이력 이벤트(추가/삭제)에 따른 알림 이벤트 테스트를 제거하고 리스너 테스트에 최대 손실 알림 테스트 추가

* feat: @EventListener를 @TransactionalEventListener로 변경

* feat: github action 워크플로우에 설정 추가

* feat: clear문 추가

* test: beforeEach에 clear 추가

* fix: 현재가 조회에 retry 연산 추가 (#442)

* hotfix: onErrorResume 연산 제거

- 요청 건수 초과와 같은 이유로 액세스 토큰 발급이 실패하였을때 Mono.empty()를 반환하게 되어 예외가 발생하고 스케줄링 메서드에 의해서 계속 시도하게 되면서 발급 알림이 계속 가는것으로 추측

* [fix] 액세스 토큰 Aspect 수정 (#445)

* feat: retry연산에서 재시도 시간을 1분으로 변경

* feat: 액세스 토큰 만료 1시간 전에 재발급하는 조건문 추가

* feat: @CheckKisAccessToken 추가

* feat: accessToken 필드 null 처리

* test: 만료 1시간 이전 액세스 토큰 재발급의 테스트 추가

* feat: 프로덕션 서버 스케줄링 서비스 메서드 따로 분리

* [fix] 액세스 토큰 재발급 문제 해결  (#446)

* test: 액세스 토큰 만료시 예외케이스 추가

* fix: Flux 방식에서 단순 반복문으로 변경

- 병렬 과정에서 액세스 토큰 만료시 무한 시도 문제 해결을 위해서 단순화

* test: 테스트 수정

* test: todo 주석 추가

* feat: kisException 객체로 매핑하여 반환하도록 변경

* test: 테스트 실패 해결

* test: 초당 거래 건수 초과 에러 응답하는 예외 케이스 추가

* feat: returnCode, messageCode 필드 추가

* feat: KisException의 서브 클래스 추가

* feat: onErrorResume 및 retryWhen 연산 수정

- 액세스 토큰이 만료되는 경우에는 Mono.empty() 반환
- retryWhen 연산에서 요청건수 초과인 경우에만 재시도하도록 함

* feat: KisClient의 에러 핸들 처리 메서드(handleError) 수정

- 한국투자증권서버로부터 에러 응답을 수신 시 KisErrorResponse로 매핑한 다음에 Exception으로 변환

* feat: 한국투자증권 서버의 에러 응답 객체 구

* rename: 클래스명 변경

* refactor: toException 메서드 변경

- switch 문으로 개선

* test: Exception 생성 부분을 정적 팩토리 호출로 변경

* refactor: null 체크 조건문 삭제

* feat: 재시도 연산이 실패했을시 onErrorResume 추가

* test: 재시도 연산이 실패시 예외 테스트 추가

* test: kisClient 모킹 처리

* test: 다수 종목 갱신 테스트 추가

* refactor: Flux 방식으로 변경

* refactor: onErrorResume 연산 수정

* test: 테스트 코드 수정

* feat: 액세스 토큰 관련 예외 추가

* feat: accessToken 널 체크 추가

* feat: doOnSuccess 연산 추가

* feat: CredeintailsTypeException 조건 추가

* fix: @CheckKisAccessToken 애노테이션 제거

- 비동기로 실행중 액세스 토큰 제거 또는 만료시 aop의 blockoptional에 의해서 에러 발생하여 kisService로 이동하고자 애노테이션을 제거함

* feat: deleteAccessToken api 추가

* feat: kisService에 액세스 토큰 체크 애노테이션 추가

* test: 레디스 클리너 추가

* fix: 메서드명 변경

* refactor: fetchDividend 반환 타입 변경

* rename: 메서드명 변경

* rename: 메서드명 변경

* refactor: delayManager로 변경

* test: delayManager 추가하여 테스트 실패 해결

* test: delayManager를 @SpyBean으로 변경

* test: holidayManager 필드 제거

* feat: 액세스 토큰 재발급 관련 수정

* fix: 테스트 실패 해결

* fix: currentPrice 조회에 에러 폴백 연산 추가

* fix: checkAccessToken 애노테이션 추가

* [fix] 액세스 토큰 갱신 구조 변경 (#449)

* feat: TIMEOUT 필드 이름 변경

* fix: 종목 조회 및 배당 일정 조회 메서드를 Mono 타입으로 반환하도록 변경

* test: 테스트 실패 해결

* test: 상장 종목 조회의 예외 케이스 추가

* fix: Flux 연산 수행중 별도의 쓰레드에서 동작시 blocking하지 않도록 변경

* test: 테스트 실패 해결

* test: todo 추가 및 새로운 테스트 추가

- 도중에 blocking되지 않아야함

* fix: fetchDividend 메서드 반환타입을 Flux로 변경

* test: 테스트 추가

* test: 액세스 토큰 재발급 실패시 에외 케이스 테스트 추가

* fix: checkAccessToken 애노테이션으로 변경

* fix: onErrorResume 연산 추가

* feat: 로깅 추가

* test: 테스트 제거

* feat: 액세스 토큰을 재발급하는 스케줄러 구현

* test: 액세스 토큰 재발급하는 테스트 추가

* feat: 스케줄러 주기 변경

* fix: aop 제거 및 애노테이션 제거

* refactor: 종가 저장소 개선

* feat: 애노테이션 제거

* rename: 패키지 이동

* style: 코드 정리

* [feat] �배당금 엔티티에 필드 추가 및 포트폴리오 필드 추가 (#451)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* [style] 코드 정리 (#452)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* feat: DividendDates 임베디드 클래스 추가

* feat: StockDividendParser 추가

* feat: 생성자 압축

* refactor: 객체지향적으로 변경

* refactor: Stock 필드에 LocalDateTimeService 추가

* refactor: StockParser 추가 및 분리

* style: 코드 정리

* fix: HashTable 변경

* style: equals 재정의

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

* Refactor: file.delete 개선

* style: 코드 정리

* style: sonarLint에 따른 코드 정리

* fix: 테스트 실패 해결

* style:: 코드 정리

* test: 테스트 해결

* style: 코드 정리

* [feat] �배당금 엔티티에 필드 추가 및 포트폴리오 필드 추가 (#451)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* test: 테스트 실패 해결

* [refactor] kisClient 리팩토링 (#433)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리

* [refactor] kisClient 리팩토링 (#432)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리

* [refactor] kisClient 리팩토링 (#433)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리

* test: 테스트 실해 해결

currentPrice 참조과정에서 액세스 토큰 발급이 실패되어 무한 루프에 빠짐

* fix: addCurrentPrice 수행시 액세스 토큰 호출 제거

- fetchCurrentPrice 실행전 aop에 의해서 실행되기 때문에 제거

* fix: 액세스 토큰 발급 문제 해결

* [refactor] currentPriceRepository 개선 (#435)

* rename: 메서드명을 fetchCurrentPrice로 변경

* refactor: 현재가 조회 모듈 리팩토링

* refactor: redis key, value 메서드 추가

* rename: currentPriceRepository 클래스명 변경

* rename: CurrentPriceRedisRepository의 메소드를 인터페이스에 맞게 변경

* [fix] 매입 이력 알람 리스너 문제 해결 (#438)

* refactor: 현재가 갱신 단순 스트림 방식으로 변경

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

* refactor: toArray 메서드로 분리

* feat: Flux 방식으로 변경

* fix: Mono.error 모킹 해결

* feat: 현재가 조회 부분을 반복문에서 람다로 변경

* refactor: Flux 형태로 현잭가 조회 개선

* style: 코드 정리

* style: 코드 정리

* feat: 컬렉션 필드를 불변 컬렉션으로 반환하도록 변경

PortfolioHolding 클래스의 getPurchaseHistory 메서드 같은 경우 서비스에 문제점이 있어서 todo 남김

* feat: purchaseHistory 컬렉션을 반환시 불변 컬렉션으로 반환

* fix: todo 제거

* feat: 불변 컬렉션 반환으로 인한 코드 제거

* style: 코드 정리

* style: 로깅 제거

* fix: @EnableAsync 애노테이션을 추가하여 비동기 활성화 및 이벤트 리스너의 반환 타입을 CompletableFuture로 변경

* test: PurchaseHistoryServiceTest에 있는 매입 이력 이벤트(추가/삭제)에 따른 알림 이벤트 테스트를 제거하고 리스너 테스트에 최대 손실 알림 테스트 추가

* feat: @EventListener를 @TransactionalEventListener로 변경

* feat: github action 워크플로우에 설정 추가

* feat: clear문 추가

* test: beforeEach에 clear 추가

* fix: 현재가 조회에 retry 연산 추가 (#442)

* hotfix: onErrorResume 연산 제거

- 요청 건수 초과와 같은 이유로 액세스 토큰 발급이 실패하였을때 Mono.empty()를 반환하게 되어 예외가 발생하고 스케줄링 메서드에 의해서 계속 시도하게 되면서 발급 알림이 계속 가는것으로 추측

* [fix] 액세스 토큰 Aspect 수정 (#445)

* feat: retry연산에서 재시도 시간을 1분으로 변경

* feat: 액세스 토큰 만료 1시간 전에 재발급하는 조건문 추가

* feat: @CheckKisAccessToken 추가

* feat: accessToken 필드 null 처리

* test: 만료 1시간 이전 액세스 토큰 재발급의 테스트 추가

* feat: 프로덕션 서버 스케줄링 서비스 메서드 따로 분리

* [fix] 액세스 토큰 재발급 문제 해결  (#446)

* test: 액세스 토큰 만료시 예외케이스 추가

* fix: Flux 방식에서 단순 반복문으로 변경

- 병렬 과정에서 액세스 토큰 만료시 무한 시도 문제 해결을 위해서 단순화

* test: 테스트 수정

* test: todo 주석 추가

* feat: kisException 객체로 매핑하여 반환하도록 변경

* test: 테스트 실패 해결

* test: 초당 거래 건수 초과 에러 응답하는 예외 케이스 추가

* feat: returnCode, messageCode 필드 추가

* feat: KisException의 서브 클래스 추가

* feat: onErrorResume 및 retryWhen 연산 수정

- 액세스 토큰이 만료되는 경우에는 Mono.empty() 반환
- retryWhen 연산에서 요청건수 초과인 경우에만 재시도하도록 함

* feat: KisClient의 에러 핸들 처리 메서드(handleError) 수정

- 한국투자증권서버로부터 에러 응답을 수신 시 KisErrorResponse로 매핑한 다음에 Exception으로 변환

* feat: 한국투자증권 서버의 에러 응답 객체 구

* rename: 클래스명 변경

* refactor: toException 메서드 변경

- switch 문으로 개선

* test: Exception 생성 부분을 정적 팩토리 호출로 변경

* refactor: null 체크 조건문 삭제

* feat: 재시도 연산이 실패했을시 onErrorResume 추가

* test: 재시도 연산이 실패시 예외 테스트 추가

* test: kisClient 모킹 처리

* test: 다수 종목 갱신 테스트 추가

* refactor: Flux 방식으로 변경

* refactor: onErrorResume 연산 수정

* test: 테스트 코드 수정

* feat: 액세스 토큰 관련 예외 추가

* feat: accessToken 널 체크 추가

* feat: doOnSuccess 연산 추가

* feat: CredeintailsTypeException 조건 추가

* fix: @CheckKisAccessToken 애노테이션 제거

- 비동기로 실행중 액세스 토큰 제거 또는 만료시 aop의 blockoptional에 의해서 에러 발생하여 kisService로 이동하고자 애노테이션을 제거함

* feat: deleteAccessToken api 추가

* feat: kisService에 액세스 토큰 체크 애노테이션 추가

* test: 레디스 클리너 추가

* fix: 메서드명 변경

* refactor: fetchDividend 반환 타입 변경

* rename: 메서드명 변경

* rename: 메서드명 변경

* refactor: delayManager로 변경

* test: delayManager 추가하여 테스트 실패 해결

* test: delayManager를 @SpyBean으로 변경

* test: holidayManager 필드 제거

* feat: 액세스 토큰 재발급 관련 수정

* fix: 테스트 실패 해결

* fix: currentPrice 조회에 에러 폴백 연산 추가

* fix: checkAccessToken 애노테이션 추가

* [fix] 액세스 토큰 갱신 구조 변경 (#449)

* feat: TIMEOUT 필드 이름 변경

* fix: 종목 조회 및 배당 일정 조회 메서드를 Mono 타입으로 반환하도록 변경

* test: 테스트 실패 해결

* test: 상장 종목 조회의 예외 케이스 추가

* fix: Flux 연산 수행중 별도의 쓰레드에서 동작시 blocking하지 않도록 변경

* test: 테스트 실패 해결

* test: todo 추가 및 새로운 테스트 추가

- 도중에 blocking되지 않아야함

* fix: fetchDividend 메서드 반환타입을 Flux로 변경

* test: 테스트 추가

* test: 액세스 토큰 재발급 실패시 에외 케이스 테스트 추가

* fix: checkAccessToken 애노테이션으로 변경

* fix: onErrorResume 연산 추가

* feat: 로깅 추가

* test: 테스트 제거

* feat: 액세스 토큰을 재발급하는 스케줄러 구현

* test: 액세스 토큰 재발급하는 테스트 추가

* feat: 스케줄러 주기 변경

* fix: aop 제거 및 애노테이션 제거

* refactor: 종가 저장소 개선

* feat: 애노테이션 제거

* rename: 패키지 이동

* style: 코드 정리

* [feat] �배당금 엔티티에 필드 추가 및 포트폴리오 필드 추가 (#451)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* [style] 코드 정리 (#452)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* feat: DividendDates 임베디드 클래스 추가

* feat: StockDividendParser 추가

* feat: 생성자 압축

* refactor: 객체지향적으로 변경

* refactor: Stock 필드에 LocalDateTimeService 추가

* refactor: StockParser 추가 및 분리

* style: 코드 정리

* fix: HashTable 변경

* style: equals 재정의

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

* Refactor: file.delete 개선

* style: 코드 정리

* style: sonarLint에 따른 코드 정리

* fix: 테스트 실패 해결

* style:: 코드 정리

* test: 테스트 해결

* style: 코드 정리

* [feat] �배당금 엔티티에 필드 추가 및 포트폴리오 필드 추가 (#451)

* feat: Portfolio의 LocalDate 모킹

* feat: StockDividend 필드에 isDeleted 컬럼 추가

* test: 테스트 실패 해결

* [refactor] kisClient 리팩토링 (#433)

* feat: 예외 발생시 로깅

* feat: 예외 처리

* refatcotr: 불필요한 샘플 종목 생성 코드 제거

* feat: AbstractContainerBaseTest 추상화

* feat: AstractContainerBaseTest 추상 클래스로 변경

* feat: CheckedKisAccessToken 애노테이션 추가

- 해당 애노테이션을 통하여 한국투자증권 서버의 액세스 토큰의 만료를 확인합니다.

* test: fetchDividend 테스트 추가

* feat: 애노테이션 기반 AccesTokenExpiration aop 메서드 구현

* test: fetchDividend 테스트에서 액세스 토큰 발급 케이스 테스트 추가

* test: 테스트 문제 해결

* refactor: fetchDividend 기존 aop 제거

* feat: 메서드 바꿔치기

* feat: kisService의 public 메서드에 액세스 토큰 체크 애노테이션 설정

* test: kisAccessToken tearDown 처리

* test: zzFetchCurrentPrice 테스트 추가

해당 테스트는 변경하고자 하는 메서드로써 추후 기존 메서드와 바꿔치기 예정

* refactor: fetchCurrentPrice 시그니처 변경

* test: 테스트명 fetchCurrentPrice로 변경

* refactor: 모의 도메인 webClient 제거

* refactor: 모의 도메인 webClient 스프링 빈 제거

* refactor: fetchClosingPrice 시그니처 변경

* test: fetchClosingPrice 테스트 추가

* refactor: fetchDividendThisYear 메서드 시그니처 변경

* test: fetchDividendAll 테스트 추가

* refactor: fetchDividendAll 메서드 Mono<List<KisDividend>> 반환하도록 변경

* refactor: fetchIpo 메서드의 시그니처 변경

* feat: basicIso 메서드 추출

* feat: basicIso 매개변수명 변경

* feat: fetchSearchStockInfo 메서드 시그니처 변경

* refactor: performGet 메서드 시그니처 변경

* feat: KisProperties로 클래스명 변경

* feat: tokenUrl 시크릿 정보 변경

* refactor: KisProperty 클래스 추가 및 appKey 프로퍼티 변경

* refactor: KisAccessTokenRequest 클래스 생성

* feat: 액세스 토큰 전달 방식 변경

- KisAccessTokenRequest 객체를 만들어 전달하는 것으로 변경

* feat: KisAccessTokenRequest getter, 공백생성자 제거, final 붙힘

* refactor: KisHeader enum 클래스 추가 및 헤더를 교체

* feat: KisHeaderBuilder 구현

* feat: fetchDividend header 변경

* refactor: header 변경

* feat: KisTrIdProperties 클래스 추가

해당 클래스는 한국투자증권 서버의 정보 조회시 필요한 거래 아이디

* refactor: 생성자 변경

* refactor: kisTrIdProperties 객체를 이용하여 변경

* test: kisService에서 액세스 토큰 실패 테스트 제거

* feat: KisQueryParamBuilder 클래스 구현

* refactor: 쿼리파라미터 enum으로 변경

* feat: kis 시크릿 정보 변경

- tr-id 추가

* refactor: fetchDividend 쿼리파라미터 빌더로 변경

* refactor: fetchDiviend 메서드의 쿼리 파라미터 변경

* feat: kisClient의 메서드들의 쿼리 파라미터를 빌더로 변경

* style: 코드 정리

* feat: KisCodeValue 인터페이스 정의 및 구현체 구현

* rename: 패키지 이동

* feat: FidPeriodDivCode enum 클래스 구현

* feat: FidOrgAdjPrc enum 클래스 구현

* feat: 배당금 종류인 GB1 enum 클래스 구현

* feat: 상품유형 코드 enum 클래스 구현

* feat: CustomerType enum 클래스 구현

* style: 코드 정리

* style: 패키지 이동

- co.fineants.api 구조로 변경

* fix: sse 버그 해결 (#460)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[refactor] 현재가 및 종가 갱신 구조 개선
1 participant