StockVS

리소스

분석 방법론

StockVS 작동 방식

StockVS는 자동화된 파이프라인으로 생성됩니다: 데이터 수집, 매일 밤의 빌드, 자동 검증, 그리고 발행이며, 각 단계는 아래에서 설명합니다.

데이터 수집

시장 데이터는 오픈소스 yfinance 라이브러리를 통해 Yahoo Finance에서 제공됩니다: 일별 가격 및 거래량, 배당, 주요 통계를 포함한 기업 및 펀드 프로필, 주식의 연간 손익계산서, ETF의 상위 보유 종목입니다. 대상 종목은 미국과 캐나다 거래소의 공개 상장 목록에서 가져오며, 뉴스 헤드라인은 Finnhub 뉴스 서비스에서 제공됩니다. 예탁증서(ADR)의 경우, 시가총액은 ADR 가격에 ADR 상당 주식 수를 곱한 값이며, 이는 Yahoo Finance가 보고하는 방식입니다. ADR이 프리미엄으로 거래될 때 기업의 본국 시장 가치와 다를 수 있습니다(예: TSM, SKHY).

데이터 파이프라인

수집 작업은 각 종목의 가격과 프로필, 그리고 주식의 뉴스 헤드라인을 PostgreSQL 데이터베이스에 기록합니다. 매일 밤 정적 사이트 빌드가 이 데이터베이스를 바탕으로 모든 페이지를 생성하고, 자동 검증이 그 결과를 검사합니다. 검증 중 하나라도 실패하면 아무것도 업로드되지 않고 이전 버전이 그대로 서비스됩니다. 검증을 통과한 빌드는 Cloudflare 네트워크 뒤편의 정적 호스팅에 업로드되며, 이후 새 페이지 중 무작위로 추출한 샘플을 불러와 정상적으로 응답하는지 확인합니다.

업데이트 일정

가격은 각 거래일 장 마감 후 수집되며, 수집이 끝나면 그날 밤의 빌드가 시작되므로 페이지에는 보통 그날 저녁에 그날의 종가가 표시됩니다. 주말 빌드는 마지막 거래일의 데이터를 사용합니다. 기업 프로필과 주요 통계는 평일마다 갱신되고, ETF 보유 종목과 ETF 전체 가격 이력은 매주 갱신되며, 각 기업의 손익계산서는 대략 분기마다 한 번씩, 신규 상장 종목은 일주일 안에 갱신됩니다. 주식 뉴스 헤드라인은 대기업의 경우 매일, 소규모 기업의 경우 며칠에 한 번씩 갱신됩니다. 평일 수집이 실패하면 그날 밤의 빌드는 실행되지 않고 이전 버전이 그대로 서비스되며, 모니터링 시스템이 경보를 발생시킵니다.

수치 계산 방식

최근 기간, 연간, 월별 수익률은 저장된 일별 종가를 바탕으로 계산됩니다. 이 종가는 각각 다운로드된 시점에 Yahoo Finance가 주식 분할과 배당을 반영해 조정한 값입니다. 변동성은 일별 수익률의 연환산 표준편차입니다. 시가총액, 밸류에이션 비율, 마진, 주당순이익, 배당수익률은 Yahoo Finance가 보고하는 값을 그대로 표시하며, 합리적인 범위를 벗어난 값은 표시하지 않습니다. 수치는 미국 달러 또는 캐나다 달러 등 원래 보고 통화를 그대로 유지하며 환산하지 않습니다. 두 통화에 걸친 합계는 통화별로 따로 제시됩니다. 업종과의 비교에는 업종 중앙값을 사용하며, 퍼센트 간의 차이는 퍼센트포인트로 표시됩니다.

분석 작성 방식

주식 및 ETF 페이지의 분석은 지원되는 각 언어별로 사전에 작성된 문장 템플릿에 데이터베이스의 수치를 채워 넣어 구성됩니다. 데이터가 없으면 자리표시자를 남기는 대신 해당 문장 자체를 생략합니다. 템플릿은 데이터와 업종 중앙값과의 비교를 설명할 뿐, 평가나 추천, 예측은 포함하지 않습니다. 사이트를 빌드할 때 언어 모델은 전혀 작동하지 않으며, 개별 주식이나 펀드에 대한 글을 작성하는 모델도 없습니다. 일부 뉴스 헤드라인 옆의 추상적인 그림은 이미지 모델로 한 번 생성된 것으로, 실제 기사 내용을 묘사하지 않습니다.

품질 관리

데이터 수집 단계에서는, 가격은 해당 종목 자체의 시장이 열려 있던 날짜의 것만 저장되며, 당일 가격은 장이 마감된 이후에만 저장됩니다. 일별 업데이트가 저장된 종가를 실시간 시세로 덮어쓰는 일은 없습니다. 데이터 피드에서 잘려서 들어온 이름이 저장된 전체 이름을 대체하지 않으며, 더 이상 가격이 들어오지 않는 종목은 실행 보고서에 표시됩니다. 페이지에서는 더 이상 최신이 아닌 가격에 마지막 거래일이 함께 표시되며, 여러 시장에 중복 상장된 기업은 한 번만 집계됩니다.

매일 밤 발행하기 전에, 자동 검증이 완성된 사이트를 페이지별 또는 표본 방식으로 읽어들입니다. 빌드의 규모는 마지막으로 발행된 버전과 비슷해야 하며, 사이트맵에 나열된 페이지 수 이상을 포함해야 하고, 가격은 일정이 요구하는 만큼 최신이어야 합니다. 구조화된 데이터는 형식이 올바라야 하고, 가격 날짜는 거래일이어야 하며 미래의 날짜일 수 없고, 각 페이지는 단 하나의 데이터 날짜만을 가져야 하며, 페이지 간 건수와 합계가 서로 일치해야 합니다. 어떤 표도 같은 기업을 두 번 나열하거나 서로 다른 통화를 합산해서는 안 됩니다. 분석문과 목록 요약문은 해당 페이지 언어의 문자 체계를 사용해야 합니다.

알려진 제한 사항

StockVS는 실시간 시세를 제공하지 않습니다. 데이터는 종가 기준이며, Yahoo Finance가 종가 발표를 늦게 하거나 수집이 실패하면 일부 페이지가 하나 이상의 거래일만큼 뒤처질 수 있습니다. 수치의 정확도는 Yahoo Finance 데이터 자체의 정확도에 따라 달라집니다. 모든 재무 지표가 모든 주식이나 ETF에 대해 제공되지는 않습니다. 과거 데이터의 확보 기간은 종목마다 다릅니다. 대부분의 가격 이력은 하루씩 누적되어 확장되므로 이후에 이루어진 주식 분할이나 배당 조정이 예전 가격까지 반영되지 않을 수 있고, 장기 수익률이 다른 자료와 차이가 날 수 있습니다. 거래가 중단된 종목도 페이지는 그대로 유지되며 마지막 가격에는 더 이상 최신이 아니라는 표시가 붙습니다. 기업 설명은 영어 주식 페이지에만 표시됩니다.

정정

오류는 위에서 설명한 자동 검증과 발행된 페이지 검토를 통해 발견됩니다. 각 오류는 데이터, 계산, 템플릿 등 그 발생 지점에서 수정되며, 다음 야간 재빌드를 통해 영향을 받는 모든 페이지에 반영됩니다. 정정 내용은 프로젝트 내부 이슈 트래커에 기록됩니다. 현재 오류를 신고할 수 있는 공개 채널은 없습니다.