inflearn logo
강의

Khóa học

Chia sẻ kiến thức

(AI Quant) Tạo hệ thống phân tích cổ phiếu tự động mà không cần viết một dòng mã 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

37

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. 캐시 무효화 트리거 설정:

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

참고 가능한 기존 답변

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

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

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

네이버 API KIS API 강의

0

39

2

테마맵 만들기 위해.

0

38

2

호두 AI님 강의 차이점에 대해 문의 드립니다.

0

47

3

네이버증권 데이터 크롤링 불법?

0

71

2

62강 노션 링크 사용권한 승인 부탁드립니다.

0

35

2

62강 노션 링크 사용권한 승인 부탁드립니다.

0

32

1

PROJECT_STRUCTURE.md 파일 공유좀 해주세요

0

39

2

노션 사용권한 불편합니다.

0

40

2

노션 사용 권한 없음

0

41

2

Notion에서 이 페이지에 대한 사용 권한 없음

0

44

2

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

0

38

2

노션 사용권한 요청

0

47

2

시각화_가이드 자료는?

0

50

2

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

0

43

1

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

0

36

2

뉴스 검색에서 날짜 필터링

0

50

2

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

0

46

2

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

0

47

2

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

0

59

2

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

0

54

1

best of best 점수 합산

0

58

1

질문이 있습니다.

0

69

2

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

0

69

2

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

0

115

2