Skip to content

Leeselbin/SEC-VIEWER

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

혹시나 라이센스 문제가될수 있기에 배포는 안하고 백앤드 코드도 private으로 변경

스크린샷 2025-07-24 오후 2 41 31 스크린샷 2025-07-24 오후 2 41 40 스크린샷 2025-07-24 오후 2 43 54 스크린샷 2025-07-24 오후 2 44 00 스크린샷 2025-07-24 오후 2 44 05 스크린샷 2025-07-24 오후 2 44 10 스크린샷 2025-07-24 오후 2 44 17

SEC 기업 재무 데이터 뷰어 (SEC Financial Data Viewer) 📊

이 프로젝트는 React와 TypeScript를 사용하여 미국 증권거래위원회(SEC)의 EDGAR API로부터 기업의 재무 데이터를 조회하는 웹 애플리케이션입니다. 사용자는 특정 기업과 기간을 선택하여 재무제표 항목들을 확인하고, 주요 투자 지표와 연간 성장률 그래프, 그리고 5단계 정량 분석 모델을 통해 기업의 재무 건전성을 직관적으로 파악할 수 있습니다.

프로젝트 설명의 앞서 : 두 가지 분석의 조화

성공적인 투자는 보통 두 가지 분석을 조화롭게 사용합니다.

  • 정량적 분석으로 '좋은 기업'을 찾는다: 먼저 우리가 만든 앱을 통해 재무적으로 튼튼하고 성장 잠재력이 있는 기업을 관심 종목으로 편입합니다. 이는 투자의 가장 중요한 기초가 됩니다.

  • 정성적 분석으로 '매수 시점'을 찾는다: 그 후, 시장 전체가 공포에 빠져 좋은 기업의 주가마저 저렴해졌을 때, 또는 기술적으로 의미 있는 지지선에 도달했을 때 등 자신만의 기준에 따라 매수 타이밍을 잡습니다.


✨ 주요 기능

  • 동적 데이터 조회: 특정 기업과 기간(최근 1, 3, 5, 10년)을 선택하여 재무 데이터 검색

  • 데이터 시각화: 주요 항목(매출, 영업이익, 순이익)의 YoY(전년 대비) 성장률을 막대그래프로 시각화

  • 투자 지표 분석: ROE, ROA, 부채비율 등 핵심 투자 지표를 연도별 테이블로 제공

  • 정량 분석 모델: 5단계 평가 모델을 통해 기업의 재무 건전성을 총점과 등급으로 요약 제공

  • 상세 정보 모달: 상세 재무제표 테이블의 특정 행을 클릭 시 모든 정보를 모달 창으로 표시

  • 상태 관리: React Query (@tanstack/react-query)를 사용하여 API 데이터 페칭, 캐싱, 로딩 및 에러 상태를 관리

  • 배포 환경 구성: Netlify 배포를 위한 프록시 설정 (netlify.toml) 포함

※ 면책 조항: 이 모델은 교육 및 예시 목적으로 제작된 단순화된 평가 방법입니다. 실제 투자 결정은 훨씬 더 복합적인 분석을 통해 신중하게 내려져야 하며, 이 모델은 투자를 권유하거나 보장하지 않습니다.


⚠️ 데이터 관련 주요 참고사항

이 애플리케이션은 SEC EDGAR API로부터 직접 데이터를 가져오므로, 원본 데이터의 특성에 따라 일부 항목이 예상과 다르게 표시될 수 있습니다.

1. 증권사 앱과 지표가 다른 이유 (예: 부채비율)

이 앱에서 계산된 부채비율이 증권사 앱과 다르게 보일 수 있습니다. 이는 '부채'를 정의하는 기준이 다르기 때문이며, 어느 한쪽이 틀린 것이 아닙니다.

구분 이 앱 (회계 기준) 증권사 앱 (금융 분석 기준)
계산 공식 총 부채 / 자기자본 이자 발생 부채 / 자기자본
'부채'의 정의 모든 부채 (차입금, 매입채무 등) 이자 발생 부채 (차입금, 회사채 등)
목적 기업의 전체적인 재무 안정성 평가 순수하게 빌린 돈에 대한 의존도 평가

결론적으로, 이 앱은 회계 원칙에 따른 가장 포괄적인 데이터를 보여주며, 증권사는 금융 분석에 더 초점을 맞춘 특정 데이터를 보여주는 것입니다.

2. 매출 데이터가 'N/A'로 표시되는 경우

기업들은 SEC에 매출을 보고할 때 항상 동일한 항목명(concept)을 사용하지 않습니다. 이 앱은 가장 보편적으로 사용되는 아래의 항목들을 우선순위에 따라 순차적으로 확인하여 매출 데이터를 가져옵니다.

  1. Revenues
  2. SalesRevenueNet
  3. RevenueFromContractWithCustomerExcludingAssessedTax

만약 특정 기업이 위에 명시되지 않은 다른 항목으로 매출을 보고하는 경우, 해당 데이터를 찾지 못하고 N/A로 표시될 수 있습니다.

3. 10-K (연간)와 10-Q (분기) 데이터의 차이점

  • 10-K (연간 보고서): 회계연도 전체에 대해 감사를 거친 최종 확정본입니다. 이 앱의 모든 핵심 지표(YoY, ROE, ROA, 5단계 분석 모델 등)는 가장 신뢰도 높은 이 10-K 데이터를 기준으로 계산됩니다.

  • 10-Q (분기 보고서): 감사를 거치지 않은 예비 성격의 보고서입니다. 연말 최종 결산 시 수치가 조정될 수 있으므로, 4개 분기의 단순 합계가 최종 연간 보고서의 수치와 정확히 일치하지 않을 수 있습니다. '손익계산서 요약' 테이블의 분기 데이터는 연중 실적의 흐름(Trend)을 참고하는 용도로 활용하는 것이 좋습니다.


📈 분석 모델 및 판단 기준

이 앱은 기업의 재무 건전성을 빠르고 직관적으로 파악하기 위해 5단계 정량 평가 모델을 사용합니다. 모든 평가는 가장 최근의 연간 보고서(10-K) 데이터를 기준으로 이루어집니다.

5단계 평가 모델

각 단계별로 1점(나쁨)부터 5점(매우 좋음)까지 점수를 매겨, **총 25점 만점**으로 기업의 현재 상태를 평가합니다.
단계 평가 항목 핵심 질문
1단계 성장성 (매출 YoY) 회사가 얼마나 빠르게 성장하고 있는가?
2단계 수익성 (ROE) 주주의 돈으로 얼마나 효율적으로 이익을 내는가?
3단계 안정성 (부채비율) 재무적으로 얼마나 안정적인가?
4단계 영업 효율성 (영업이익 YoY) 핵심 사업의 이익 창출력이 성장하는가?
5단계 종합 이익률 (순이익 YoY) 최종 이익이 성장하고 있는가?

점수 산정 기준표

점수 성장률 (YoY) 수익성 (ROE) 안정성 (부채비율)
5점 (매우 좋음) 20% 이상 20% 이상 50% 미만
4점 (좋음) 10% ~ 20% 15% ~ 20% 50% ~ 100%
3점 (보통) 5% ~ 10% 10% ~ 15% 100% ~ 150%
2점 (주의) 0% ~ 5% 5% ~ 10% 150% ~ 200%
1점 (나쁨) 0% 미만 5% 미만 200% 이상

최종 평가

총점 평가 등급 해석
21 ~ 25점 매우 긍정적 성장성, 수익성, 안정성 모든 면에서 매우 뛰어난 최상위 기업.
16 ~ 20점 긍정적 펀더멘털이 튼튼하고 우수한 기업. 투자를 적극적으로 고려해볼 만함.
11 ~ 15점 보통 양호하지만 특별한 강점은 없는 보통 수준의 기업. 추가 분석이 필요함.
6 ~ 10점 주의 필요 일부 항목에서 위험 신호가 발견되는 기업. 투자에 신중해야 함.
1 ~ 5점 부정적 재무 건전성에 심각한 문제가 있을 가능성이 높은 기업.
※ 면책 조항: 이 모델은 교육 및 예시 목적으로 제작된 단순화된 평가 방법입니다. 실제 투자 결정은 훨씬 더 복합적인 분석을 통해 신중하게 내려져야 하며, 이 모델은 투자를 권유하거나 보장하지 않습니다.

📈 주요 지표 계산식

이 프로젝트에서 사용된 주요 지표의 계산식은 다음과 같습니다. 모든 계산은 연간 보고서(10-K)를 기준으로 합니다.

  • YoY (전년 대비) 성장률 (%)

    ((현재 연도 값 - 이전 연도 값) / |이전 연도 값|) * 100
    
  • ROE (자기자본이익률, %)

    (당기순이익 / 자본총계) * 100
    (NetIncomeLoss / StockholdersEquity) * 100
    
  • ROA (총자산이익률, %)

    (당기순이익 / 자산총계) * 100
    (NetIncomeLoss / Assets) * 100
    
  • 부채비율 (%)

    (부채총계 / 자본총계) * 100
    (Liabilities / StockholdersEquity) * 100
    

🛠️ 기술 스택

  • React
  • TypeScript
  • React Query (@tanstack/react-query)

🚀 로컬 환경에서 실행하기

  1. 저장소 복제
git clone [your-repository-url]
cd [repository-name]
  1. 의존성 설치
npm install
  1. 로컬 개발용 프록시 설정 로컬 환경에서 CORS 오류를 방지하기 위해 src 폴더에 setupProxy.js 파일이 필요합니다.
// src/setupProxy.js
const { createProxyMiddleware } = require('http-proxy-middleware');

module.exports = function(app) {
  app.use(
    '/api',
    createProxyMiddleware({
      target: 'https://data.sec.gov',
      changeOrigin: true,
    })
  );
};
  1. 개발 서버 실행
npm start

브라우저에서 http://localhost:3000 주소로 접속합니다.


🌐 배포

이 프로젝트는 Netlify를 통해 배포될 수 있도록 설정되어 있습니다. 프로덕션 환경에서의 API 요청은 프로젝트 루트의 netlify.toml 파일에 정의된 프록시 규칙을 통해 처리됩니다.
# netlify.toml
[[redirects]]
  from = "/api/*"
  to = "https://data.sec.gov/api/:splat"
  status = 200

백앤드 배포

이 프로젝트는 CLOUDTYPE을 통해 백앤드 배포하였습니다. -> git repo안에 SEC-VIEWER-BACKEND 에잇다

About

SEC 기업 재무 데이터 뷰어 (SEC Financial Data Viewer) 📊

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published