尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證한국·미국 주식/ETF 펀더멘탈 & 시장환경 분석기 (Streamlit)
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
과거 5년 데이터를 기반으로 펀더멘탈 4개 항목 + 시장환경 4개 항목을 평가하는 프로토타입입니다. Next.js(프론트엔드) + Vercel Python Function(분석 백엔드)으로 구성되어 있으며, Vercel에 직접 배포할 수 있습니다. analysis.py/data_sources.py는 예전 Streamlit 버전과 동일한 로직이며, api/index.py가 프론트엔드 요청을 받아 이 모듈들을 호출해 결과를 JSON으로 반환합니다. vercel dev는 Next.js 프론트엔드와 api/index.py(Python) Function을 함께 구동합니다. Vercel CLI가 없다면 npm i -g vercel로 설치하세요. http://localhost:3000에서 확인할 수 있습니다. 핵심 로직(점수 계산, 티커 정규화, 등급 판정 등)에 대한 단위테스트가 포함되어 있습니다. yfinance 설치 없이도 실행 가능합니다 (pandas/numpy만 있으면 됩니다).檢視完整 README ↗
과거 5년 데이터를 기반으로 펀더멘탈 4개 항목 + 시장환경 4개 항목을 평가하는 프로토타입입니다. Next.js(프론트엔드) + Vercel Python Function(분석 백엔드)으로 구성되어 있으며, Vercel에 직접 배포할 수 있습니다.
app/ # Next.js App Router (프론트엔드)
page.tsx # 세션 확인 후 로그인/대시보드 분기
api/auth/*/route.ts # OAuth 콜백, 관리자 로그인, 로그아웃 (Node.js 런타임)
components/ # React UI 컴포넌트
lib/ # i18n, 세션(JWT), OAuth URL 빌더, 타입, 상수
api/
index.py # FastAPI 앱 — POST /api/analyze (Vercel Python Function)
_lib/
analysis.py # 순수 계산/점수화 로직 (외부 의존성 없음 → 테스트 대상)
data_sources.py # yfinance/FRED API 등 외부 데이터 수집
# (api/index.py와 나란히 두면 Vercel이 개별 함수로 오인해
# 번들에서 누락시키므로 하위 패키지로 분리했습니다)
test_analysis.py # analysis.py 단위테스트 (43개, 표준 unittest만 사용)
requirements.txt # Python 함수 의존성
vercel.json # Python 함수 설정 (maxDuration 등)
analysis.py/data_sources.py는 예전 Streamlit 버전과 동일한 로직이며, api/index.py가
프론트엔드 요청을 받아 이 모듈들을 호출해 결과를 JSON으로 반환합니다.
npm install
pip install -r requirements.txt
cp .env.example .env.local # 값 채우기 (최소 SESSION_SECRET 필요)
vercel dev
vercel dev는 Next.js 프론트엔드와 api/index.py(Python) Function을 함께 구동합니다.
Vercel CLI가 없다면 npm i -g vercel로 설치하세요. http://localhost:3000에서 확인할 수 있습니다.
핵심 로직(점수 계산, 티커 정규화, 등급 판정 등)에 대한 단위테스트가 포함되어 있습니다. yfinance 설치 없이도 실행 가능합니다 (pandas/numpy만 있으면 됩니다).
python -m unittest test_analysis.py -v
현재 43개 테스트가 모두 통과하도록 작성되어 있습니다. 커버 범위:
코드를 수정한 뒤에는 이 명령어로 다시 돌려서 회귀(regression)가 없는지 확인하세요.
data_sources.py는 실제 네트워크 호출이 필요해 이 저장소에는 자동테스트가 없습니다. 배포 전에는vercel dev로 직접 몇 개 종목을 조회해 정상 동작을 확인하시길 권장합니다.
.env.example 참고):
SESSION_SECRET (필수 — 로그인 세션 서명용 임의의 긴 문자열)FRED_API_KEY (선택 — 없으면 시장환경 분석이 "데이터 없음"으로 표시됨)ADMIN_ID / ADMIN_PW (선택 — 기본값 admin/admin1234)GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET, KAKAO_REST_API_KEY (선택 — 없으면 해당 로그인
버튼이 비활성화된 채로 표시됨)REDIRECT_URI = 배포 도메인 (예: https://your-app.vercel.app). Google/Kakao 콘솔의
승인된 리디렉션 URI에는 ${REDIRECT_URI}/api/auth/callback 을 등록해야 합니다.api/index.py)는 종목당 여러 외부 API(yfinance, FRED)를 순차/병렬 호출하므로
Hobby 플랜의 10초 실행시간 제한에 걸릴 수 있습니다. 경쟁사 비교가 포함된 개별주식 분석은
Pro 플랜(최대 60초, vercel.json에서 maxDuration 설정) 사용을 권장합니다.st.cache_data와 동일한 의도의 best-effort 최적화).