尚未检测到更新。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 최적화).