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] 26.08 이동 평균선 계산 로직 추가 (#183) #199

Merged
merged 6 commits into from
Nov 27, 2024

Conversation

jinddings
Copy link
Collaborator

@jinddings jinddings commented Nov 26, 2024

✅ 주요 작업

💭 고민과 해결과정

    if (date1 === '') {
      const today = new Date();
      const prevDay = new Date();
      if (periodDivCode === 'D') prevDay.setDate(today.getDate() - 60);
      if (periodDivCode === 'M') prevDay.setDate(today.getDate() - 1200);
      if (periodDivCode === 'Y') prevDay.setDate(today.getDate() - 20000);
      prevDay.setDate(today.getDate() - 365);
      newDate2 = new Date().toISOString().slice(0, 10).replace(/-/g, '');
      newDate1 = prevDay.toISOString().slice(0, 10).replace(/-/g, '');
    }

평균선을 계산하기 위해선 기존에 30개만 가져오던 데이터에서 일별 차트의 경우 최소 5일 최대 20의 데이터를 더 가져와야 했습니다.
이를 위해선 처음에 prevDay를 50일로 설정했으나 주식의 경우 주말, 공휴일 데이터가 없기 때문에 50일 전이라 해도 그보다 적은 데이터를 반환하는 현상이 발생함에 따라 60일 전부터의 데이터를 조회하도록 하였습니다.

@jinddings jinddings self-assigned this Nov 26, 2024
@jinddings jinddings requested review from uuuo3o and sieunie and removed request for uuuo3o November 26, 2024 04:20
@jinddings jinddings linked an issue Nov 26, 2024 that may be closed by this pull request
Copy link
Collaborator

@uuuo3o uuuo3o left a comment

Choose a reason for hiding this comment

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

고생하셨습니다.

@@ -98,7 +98,7 @@ export class RankingService {

return {
topRank: parsedTopRank,
userRank: userRank,
userRank,
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.

헉 시정하겠습니다

@uuuo3o
Copy link
Collaborator

uuuo3o commented Nov 26, 2024

평균선을 계산하기 위해선 기존에 30개만 가져오던 데이터에서 일별 차트의 경우 최소 5일 최대 20의 데이터를 더 가져와야 했습니다.
이를 위해선 처음에 prevDay를 50일로 설정했으나 주식의 경우 주말, 공휴일 데이터가 없기 때문에 50일 전이라 해도 그보다 적은 데이터를 반환하는 현상이 발생함에 따라 60일 전부터의 데이터를 조회하도록 하였습니다.

이거 그러면 프론트분께 이야기된 건가요??
차트 데이터를 그릴 때 데이터를 이렇게 변경하게 되었다구..?

기존에 제 코드에서는 프론트분께서 날짜 입력하면 최대 100개까지, 미입력시에는 오늘 날짜를 기준으로 30개씩만 가지고 올 수 있게 되어있었거든요

@uuuo3o
Copy link
Collaborator

uuuo3o commented Nov 26, 2024

      if (periodDivCode === 'D') prevDay.setDate(today.getDate() - 60);
      if (periodDivCode === 'M') prevDay.setDate(today.getDate() - 1200);
      if (periodDivCode === 'Y') prevDay.setDate(today.getDate() - 20000);
      prevDay.setDate(today.getDate() - 365);

그리고 여기 코드, if문에서 prevDay.setDate 를 계산하고 있는데... 마지막에 365 뺀 코드가 있어서 앞에 if문과 상관없이 prevDay.setDate(today.getDate() - 365); 코드로 덮어씌워지는 거 아닌가요??

Copy link
Collaborator

@sieunie sieunie left a comment

Choose a reason for hiding this comment

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

고생하셨습니다! 진님께서 말씀해주신 부분만 체크해주시면 될 것 같습니당ㅎㅎ

Comment on lines +95 to +96
newDate2 = new Date().toISOString().slice(0, 10).replace(/-/g, '');
newDate1 = prevDay.toISOString().slice(0, 10).replace(/-/g, '');
Copy link
Collaborator

Choose a reason for hiding this comment

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

🟢 이 부분 좀 더 간단하게 하는 내장 메소드 없나 찾아봤는데 없네요...ㅋㅋ 고생하셨습니다!!

@jinddings
Copy link
Collaborator Author

      if (periodDivCode === 'D') prevDay.setDate(today.getDate() - 60);
      if (periodDivCode === 'M') prevDay.setDate(today.getDate() - 1200);
      if (periodDivCode === 'Y') prevDay.setDate(today.getDate() - 20000);
      prevDay.setDate(today.getDate() - 365);

그리고 여기 코드, if문에서 prevDay.setDate 를 계산하고 있는데... 마지막에 365 뺀 코드가 있어서 앞에 if문과 상관없이 prevDay.setDate(today.getDate() - 365); 코드로 덮어씌워지는 거 아닌가요??

헉.....감사합니다

@jinddings jinddings closed this Nov 26, 2024
@jinddings jinddings reopened this Nov 26, 2024
@jinddings
Copy link
Collaborator Author

평균선을 계산하기 위해선 기존에 30개만 가져오던 데이터에서 일별 차트의 경우 최소 5일 최대 20의 데이터를 더 가져와야 했습니다.
이를 위해선 처음에 prevDay를 50일로 설정했으나 주식의 경우 주말, 공휴일 데이터가 없기 때문에 50일 전이라 해도 그보다 적은 데이터를 반환하는 현상이 발생함에 따라 60일 전부터의 데이터를 조회하도록 하였습니다.

이거 그러면 프론트분께 이야기된 건가요?? 차트 데이터를 그릴 때 데이터를 이렇게 변경하게 되었다구..?

기존에 제 코드에서는 프론트분께서 날짜 입력하면 최대 100개까지, 미입력시에는 오늘 날짜를 기준으로 30개씩만 가지고 올 수 있게 되어있었거든요

해당 내용은 코드를 작성하기 전에 산님과 이야기 나눠보았습니다!
실제로는 빈 문자열을 전송해서 30개씩만 가지고 오시고 계시더라구요.

@uuuo3o uuuo3o merged commit 286bbbc into back/main Nov 27, 2024
2 checks passed
@jinddings jinddings deleted the feature/api/calculateMAL-#183 branch December 5, 2024 01:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[BE] 26.08 이동 평균선 계산 로직 추가
3 participants