Skip to content

지수(KS11·KQ11·KS200·krx_index_1001) 데이터가 2026-09-17 12:22 이후 갱신되지 않음 — KRX 로그인 실패가 조용히 무시되는 것으로 보입니다 #4

Open

Description

@csmyung001

안녕하세요. FinanceDataReader로 KS11을 조회하다가, 2026-09-17 이후 데이터가 갱신되지 않는 것을 확인해 원인을 조사한 내용을 공유드립니다.

증상

  • data/index/ks11, kq11, ks200, krx_index_1001 경로의 마지막 커밋이 2026-09-17T03:22:15Z(12:22 KST)입니다. 마지막 파일도 2026-09-17.csv입니다.
  • 저장소의 다른 자동 커밋은 09-30까지 계속되고 있고, Actions 실행도 실패 표시 없이 완료됩니다.
  • 09-17 행은 장중에 수집된 값입니다(year_ks11/2026.csv 종가 6724.34, KRX 공표 종가 6715.41). 그 뒤로 정정되지 않은 채 남아 있습니다.

추정 원인 (코드 판독 + 재현)

  1. collectors._krx_index_price_2years의 MDCSTAT00301 요청을 비로그인 세션으로 보내면 HTTP 400과 본문 LOGOUT(JSON 아님)이 돌아옵니다(2026-10-01 재현).
  2. krx_auth.login()은 로그인 실패(error_code != CD001)나 예외가 나도 True를 반환하고, 익명 세션으로 계속 진행합니다.
  3. 그래서 지수 요청이 LOGOUT을 받으면 ValueError("KRX 지수 응답 파싱 실패")가 나지만, main.py에서 logger.error로 처리된 뒤 작업은 성공으로 끝납니다.

따라서 09-17 낮 이후 KRX_ID/KRX_PW 로그인이 실패하고 있을 가능성이 높아 보입니다(비밀번호 만료, 계정 상태, 로그인 절차 변경 등). Actions 로그를 볼 수 없어서 로그인 실패 여부는 직접 확인하지 못했습니다.

제안

  • 로그인 실패 시 지수 수집을 실패로 처리해, Actions가 빨간색으로 표시되게 하면 좋겠습니다.
  • 수집 결과가 없을 때도 워크플로를 실패로 처리하면 조용한 정체를 바로 알 수 있습니다.

감사합니다.

Activity

  1. FinanceData commented on Oct 14, 2026

    @FinanceData
    Owner

    관심과 상세한 분석까지 감사드립니다.

    1. 원인 분석

    말씀주신 바와 같이

    • krx_auth.py 및 collectors.py 내의 일부 엔드포인트가 http://로 요청되어 LOGOUT (HTTP 400) 에러가 발생하는 문제가 함께 확인
    • 기존 코드에서 예외 발생 시 logger.error 로그만 남기고 정상 종료(Exit code 0)되어 워크플로 실패를 즉시 감지하기 어려웠던 점

    2. 조치 사항

    1. HTTPS 프로토콜 일괄 전환: collectors.py와 krx_auth.py의 모든 KRX API 엔드포인트를 https://data.krx.co.kr로 수정하여 인증 쿠키가 정상 전송되도록 수정했습니다.
    2. 오류 감지 및 Actions 실패 전파:
      • krx_auth.py: 로그인 실패 시 False를 반환하도록 수정했습니다.
      • main.py: 로그인 실패 또는 수집 중 오류 발생 시 비정상 종료 코드(sys.exit(1))를 반환하도록 개선하여 GitHub Actions에서 즉시 실패(빨간색 표시)를 감지할 수 있도록 조치
    3. 요청 딜레이 적용: KRX 방화벽의 대량 조회 감지 대응

    현재 GitHub Actions가 정상 실행되어 당일 시세 및 리스팅 데이터가 최신 상태로 정상 수집·커밋되었습니다.
    이전 누락데이터 모두 확인하여 추가 업데이트 하였습니다.

    감사합니다!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions