inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Tạo hệ thống phân tích chứng khoán tự động mà không cần viết một dòng code nào feat. Claude CLI

📝 Thực hành 6-5: Tạo và kiểm tra API giá thời gian thực

캐쉬가 업데이트 안됩니다.

Đã giải quyết

8

androidkangzerg0271

7 câu hỏi đã được viết

0

PriceCache는 한 번 채우면 무한정 유지됩니다. 그리고 캐시를 주기적으로 갱신하는 주체가 없습니다. 그래서 한 번 들어간 값은 bulk_update를 다시 불러주기 전까지 영원히 고정됩니다.

python flask next.js 인공지능(ai)

Câu trả lời 2

0

skysungsisi0926

안녕하세요!

말씀하신 대로 강의의 PriceCache는 한 번 들어간 값을 자동으로 갱신하거나 만료시키는 주체가 없습니다. bulk_update()를 다시 불러주기 전까지 값이 고정되는게 맞아요.

그런데 왜 강의 실습은 멀쩡히 돌아갈까요?

realtime-prices API의 폴백 로직에 있습니다. 우리는 bulk_update()를 어디서도 호출하지 않기 때문에 캐시가 항상 비어 있고 → 모든 요청이 "캐시 미스" → 전부 yfinance로 실시간 조회됩니다. 즉 데모에서는 캐시가 사실상 안 쓰이고, yfinance가 매번 싱싱한 값을 대신 답해주기 때문에 문제가 안 보이는 거예요.

이번 파트의 목표는 "싱글턴 / 스레드 안전(Lock) / 버전 기반 SSE 같은 구조를 손에 익히는 것" 이었습니다. 실시간 가격을 계속 밀어 넣는 갱신 파이프라인은 의도적으로 다음 단계로 미뤄둔 단순화예요. (강의가 너무 무거워지지 않도록요.)


실전에서 진짜 "실시간 캐시"로 완성하고 싶다면, 두 가지만 채우면 됩니다 — Claude Code에 이렇게 시켜보세요:

▎ price_cache.py와 kr_market.py를 보강해줘.

▎ 1. PriceCache에 백그라운드 갱신 스레드를 추가해줘.

▎ - 앱이 시작될 때 데몬 스레드 1개를 띄움

▎ - _tracked에 등록된 종목들을 N초(예: 10초)마다 yfinance로 조회

▎ - 조회 결과로 bulk_update() 호출 → _version 자동 증가

▎ 2. get_prices()에 TTL 만료를 추가해줘.

▎ - updated_at이 ttl초(예: 30초)보다 오래된 값은 "stale"로 보고

▎ - 반환에서 제외하거나 yfinance로 다시 폴백

이 두 개(①갱신 스레드 + ②TTL 만료)를 넣으면, 비로소 SSE의 버전이 실제로 바뀌면서 화면이 진짜로 실시간 갱신되고, 갱신 스레드가 잠깐 멈춰도 낡은 값이 그대로 나가지 않게 됩니다.

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 강저그님.

PriceCache가 한 번 채워지면 값이 고정되어 갱신되지 않는 문제를 겪고 계신 것 같습니다. 이 문제는 캐시 메커니즘의 특성상 발생할 수 있으며, 주기적으로 캐시를 갱신할 필요가 있습니다. 이를 해결하기 위한 몇 가지 조언을 드리겠습니다.

캐시 갱신 방법

  1. 주기적 갱신 로직 추가:

    • 특정 시간이 경과했을 때 자동으로 캐시를 초기화하고 다시 채우는 로직을 추가합니다. 예를 들어, 특정 시간마다 bulk_update 함수를 실행하여 최신 데이터를 반영합니다.
  2. TTL(Time-To-Live) 설정:

    • 캐시에 TTL을 설정하여 일정 시간이 지나면 자동으로 무효화되도록 설정합니다. 이를 통해 주기적으로 데이터를 갱신할 수 있습니다.
  3. 캐시 무효화 트리거 설정:

    • 특정 이벤트가 발생할 때 캐시를 무효화하는 트리거를 설정합니다. 예를 들어, 입력 데이터가 변경되면 캐시를 무효화하여 재갱신할 수 있습니다.

참고 가능한 기존 답변

이와 관련된 문제에 대해 다른 수강생들이 도움을 받았던 게시물을 소개합니다:
- 캐시 갱신 관련 질문: 캐시 갱신 문제와 관련된 다양한 해결책을 안내하고 있습니다.

캐시 메커니즘은 성능 향상에 중요한 역할을 하지만, 잘못 설정되면 오래된 데이터를 반환할 수 있습니다. 위의 방법들을 활용하여 캐시가 최신 상태로 유지되도록 설정하시기 바랍니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

VCP 시그널 상태 추가 스크립트 에서 return_pct 조건

0

6

2

노션 사용권한 요청

0

25

2

시각화_가이드 자료는?

0

26

2

거래대금에 대한 필터링 문제

0

29

1

41강에 vcp 결과가 다르게 나옵니다.

0

24

2

뉴스 검색에서 날짜 필터링

0

32

2

scorer.py 에 뉴스/재료 점수 부분이 없어요.

0

33

2

제가 만든 파일로 강의 수강을 이어가도 되나요?

0

31

2

14강은 언제 올라올까요??

0

48

2

Part03 프롬프트 14 기간 조정(횡보 후 돌파) 입력 시 claude에서 수정안 발생

0

42

1

best of best 점수 합산

0

49

1

질문이 있습니다.

0

60

2

안녕하세요? 섹션14는 강의가 언제부터 올라오나요? 너무나 궁금하고 기대가 됩니다~ ^^

0

62

2

antigravity 2.0은 화면이 많이 다르네요.

0

90

2

36. 텔레그램 연동(특강) 노션 링크

0

55

2

오류 문구 입니다.

0

52

1

Part2 - 19번 ~ 20번 강의 사이에 일부 내용이 생략된듯합니다.

0

70

2

Gemini 모델 변경 문의

0

66

2

part2 gemini api 연동

0

62

3

늘 컴퓨터를 켜두어야 하는 것에 대한 질문입니다.

0

51

1

노션 승인 관련

0

65

2

Part2 자료에 대한 질문입니다.

0

57

3

강의 일정

0

57

2

Notion 권한 승인 요청 드립니다.

0

59

2