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

[BE] 3.02 주식차트 정보 기능 구현 수정 #6 #47

Merged
merged 6 commits into from
Nov 11, 2024

Conversation

sieunie
Copy link
Collaborator

@sieunie sieunie commented Nov 8, 2024

✅ 주요 작업

  • getFullUrl, getHeader 만들어 두신거 적용
  • 소켓 이벤트, API/소켓 response 형식 변경
  • 서비스 에러를 HTTP 에러로 변경
  • getAccessToken 로직 오류 수정 (소켓에서 터지는 오류 해결했습니당)

💭 고민과 해결과정

  • 기존에는 throw new Error()를 통해 예외를 발생시키기만 하고 다른 처리가 없었는데, nest에서 제공하는 HTTP Exception이 존재한다는 것을 알게 되었다. 아래와 같은 예외를 발생시키면 응답이 HTTP 코드로 오게 된다.
        throw new UnauthorizedException('액세스 토큰을 조회하지 못했습니다.');

image

  • Cron으로 5분마다 차트 조회하는 로직에서 계속 액세스 토큰을 가지고 오지 못하는 문제가 발생해, accessToken 관련 로직을 디버깅해본 결과 실제 토큰 유효기간은 거의 하루인 반면, 우리 서버에 저장되는 유효기간은 2분 남짓이었다. 한국투자증권에서는 토큰을 5분에 한 번 발급 가능하도록 제한을 두었는데, 우리 서버에서는 유효기간을 2분으로 설정해 만료되었다고 간주하고 거의 2분마다 다시 요청해서 발생하는 문제였다. 기존에 data.expires_in을 활용한 로직을 data.access_token_token_expires로 수정해 해결하였다.

@sieunie sieunie requested review from uuuo3o and jinddings November 8, 2024 03:05
@sieunie sieunie self-assigned this Nov 8, 2024
@sieunie sieunie linked an issue Nov 8, 2024 that may be closed by this pull request
@uuuo3o
Copy link
Collaborator

uuuo3o commented Nov 8, 2024

Cron으로 5분마다 차트 조회하는 로직에서 계속 액세스 토큰을 가지고 오지 못하는 문제가 발생해, accessToken 관련 로직을 디버깅해본 결과 실제 토큰 유효기간은 거의 하루인 반면, 우리 서버에 저장되는 유효기간은 2분 남짓이었다. 한국투자증권에서는 토큰을 5분에 한 번 발급 가능하도록 제한을 두었는데, 우리 서버에서는 유효기간을 2분으로 설정해 만료되었다고 간주하고 거의 2분마다 다시 요청해서 발생하는 문제였다. 기존에 data.expires_in을 활용한 로직을 data.access_token_token_expires로 수정해 해결하였다.

🟢 헉 코드가 잘못 됐었나보네요! 안그래도 오늘 발표한 이후로 계속 서버 켜놨는데 간헐적으로 에러가 발생하더라구요. 발생하는 부분이 딱 시은님께서 적어두신 Cron 쪽 코드였는데 이런 문제가 있었네요 ㅠㅠ 수정 감사합니다!!!

description: '실시간 차트',
type: [StockIndexListChartElementDto],
})
chart: StockIndexListChartElementDto[];
Copy link
Collaborator

Choose a reason for hiding this comment

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

🟢 여기가 어제 그룹 리뷰 때 말한 잘못 만들었다고 수정하신다고 하신 부분인가요?! 어떤 식으로 변경됐는지 나중에 한번 설명 기대하겠습니다ㅎㅎ

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

네넵 이 부분이랑 소켓 이벤트 발생시키고 response 전달하는 부분도 수정했습니다!

);
)
.catch((err) => {
throw new InternalServerErrorException(
Copy link
Collaborator

Choose a reason for hiding this comment

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

🟢 저도 에러 처리를 그냥 log만 찍어놓듯이 작성해놨는데 이렇게 수정해봐야겠어요!

@uuuo3o
Copy link
Collaborator

uuuo3o commented Nov 8, 2024

고생하셨습니다!
그런데 이거는 뜬금없이 궁금해졌는데 코파일럿에게 코드 리뷰 시켜보신 적 있나요?
저 이번 주는 완전 어우 풀리퀘 바쁘다 바빠 이 상태여서 한번도 안시켜봤는데 다른 분들은 혹시 하셨나 궁금하네요

@sieunie
Copy link
Collaborator Author

sieunie commented Nov 8, 2024

아맞다 코파일럿 완전 까먹고있었어요ㅋㅋㅋㅋㅋ 다음주에는 해봐야겠네용

@uuuo3o uuuo3o added BE 백엔드 REFACTORING 코드 리팩터링 labels Nov 8, 2024
Copy link
Collaborator

@jinddings jinddings left a comment

Choose a reason for hiding this comment

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

수고하셨습니다!

@sieunie sieunie merged commit 5920449 into back/main Nov 11, 2024
2 checks passed
@sieunie sieunie deleted the feature/api/stockindex-#6 branch November 15, 2024 07:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BE 백엔드 REFACTORING 코드 리팩터링
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[BE] 3.02 주식 차트 정보 기능 구현
3 participants