DartLab mascot

종목코드 하나 →
기업의 전체 이야기

AI 가 dartlab 엔진을 직접 호출해 분석한다. 사람도 같은 엔진을 한 줄로 쓴다.
한국 DART + 미국 SEC EDGAR 공시, 미리 정리된 데이터.

>>> dartlab.ask("삼성전자 재무건전성 분석해줘")

panel 로 공시를 수평화하고, 공시 뷰어로 브라우저에서 바로 비교 — 1분 50초

이미 끝나 있는 것

구조화 완료, 바로 사용

한국 DART
모든 공시를 미리 구조화
미국 SEC EDGAR
같은 인터페이스, 다른 나라
계정 정규화
하나의 매출액, 수십 가지 변형 아님
섹션 표준화
모든 변형을 같은 토픽으로 매핑
자동 구조화
원본 공시 → DataFrame. 클렌징 불필요.
비율 사전계산
수익성·유동성·가치평가 — 로드 시 준비 완료
실시간 시각화

전 상장사가 어떻게
연결되는지 — 10초 안에

전 상장사 · 모든 산업 · 모든 공급망 관계를 한 화면에. 버블을 클릭해 산업으로 드릴다운, 종목을 선택해 5년 재무 · 공급망 HHI · AI 분석 · 심층 보고서까지 카드 하나로. 이번 회계연도 급변동 자동 감지.

dartlab 은 공시·재무 데이터를 시각화한다. 투자 자문 아님. DART 원본 공시·애널리스트 리포트와 함께 검증할 것.

● 3시간 전 갱신 반도체 · 348 ⚠ 급변동 12건
전종목 스크리닝

2,600개 회사를 한 테이블에서 바로 비교

산업·수익성·재무건전성·가치·공시 변화까지 같은 화면에서 정렬하고, 자동 발굴 신호로 후보군을 먼저 좁힌 뒤 회사별 재무 그래프와 최근 정기공시를 확인한다.

기업의 모든 진실은 이미 공시에 있다

단지 읽기 어려울 뿐. 사업보고서는 200쪽이 넘고, 분기보고서는 쌓여가고, 필요한 데이터는 문서·포맷·연도에 흩어져 묻혀 있다.

현실
200쪽 PDF 를 스크롤해서 한 섹션 찾기
재무 숫자는 한 도구, 텍스트는 다른 도구
작년 위험요소 비교? 수동 복붙
DART 도구는 EDGAR 에서 안 됨 (반대도)
공시를 AI 에 먹이기? 프롬프트 엔지니어링 몇 시간
2,700 개 종목 스크리닝? 직접 만들기
DartLab 으로
모든 공시 topic, panel 로 구조화 완료
텍스트 + 숫자 + 보고서, 하나의 Company 객체
5년치 나란히 — `diff()` 한 줄
DART · EDGAR 동일한 `Company` 인터페이스
구조화된 panel topic 이 바로 LLM 컨텍스트로
전 상장사 횡단 스캔
DartLab 없이
# 1. DART 에서 PDF 다운로드
pdf = download_report("005930", "2024")
# 2. PDF 에서 표 추출
tables = parse_pdf_tables(pdf)
# 3. 수동 계정 매핑
mapped = manual_map(tables, my_schema)
# 4. 분기마다 반복...
# 5. 종목마다 반복...
# 6. 포맷 일치를 기도
DartLab 으로
import dartlab

c = dartlab.Company("005930")
c.show("BS")       # 표준화된 재무상태표
c.show("ratios")   # 47 개 재무비율
c.diff()   # 5년치 변화
표준화

34,249 계정 매핑. 수작업 0.

기업마다 다른 XBRL 계정 ID 로 공시한다. DartLab 은 4 단계 파이프라인으로 정규화해 회사간 비교가 자동으로 동작한다.

1
접두사 제거
ifrs-full_, dart_, ifrs_, ifrs-smes_
ifrs-full_Revenue
--> Revenue
4 종 접두사
2
ID 동의어
영문 계정 ID 정규화
NetIncome
--> ProfitLoss
59 규칙
3
계정명 동의어
한글 계정명 통일
영업수익
--> 매출액
104 규칙
4
학습 매핑
누적 매핑 테이블
ProfitLoss
--> net_income
34,249
표준화 전 — 원본 XBRL
삼성전자ifrs-full_Revenue
SK하이닉스dart_Revenue
LG에너지솔루션Revenue
같은 개념인데 3 개 회사가 3 개 다른 계정 ID
표준화 후
삼성전자revenue
SK하이닉스revenue
LG에너지솔루션revenue
전부 revenue 로 — 회사간 비교가 그냥 동작
~97%
매핑율
3,143
표준 계정
34,249
XBRL 매핑
Panel

세로로 쌓인 공시를 하나의 수평 맵으로

진짜 제품은 파서 목록이 아니라 지도다.

섹션 정렬
2023
companyOverview | business | risk
2024Q1
companyOverview | business
2024Q2
companyOverview | business
2024
companyOverview | business | risk
같은 토픽 행, 기간별 커버리지만 다름. 누락 기간은 비어있을 뿐 지도가 깨지지 않는다.
소스 인지 머지
panel
finance
report
companyOverview
BS
audit
위험 텍스트
IS
dividend
retrievalBlocks
ratios
employee
──→
같은 spine 으로 머지
`show(...)` 과 `trace(...)` 가 같은 company spine 위에 올라간다 — 별도 구조를 만들지 않는다.
숫자 → 출처
samsung.trace("revenue")
primarySource: finance
fallback: panel
block: 2024 Q4 · 손익계산서
모든 숫자가 어느 공시·섹션·블록에서 왔는지 드러낸다. 블랙박스 숫자 0.
기간 → 변화
samsung.diff("riskManagement")
2024 → 2023
+ 추가 공급망 집중도
~ 수정 환율 노출 단락
= 동일 감사 의견
기업이 기간 사이에 조용히 고친 부분이 드러난다. 눈이 아니라 텍스트로 diff.
공시 뷰어 · 무설치

그 수평 맵을, 브라우저에서 직접

panel 은 제각각인 공시를 항목 × 기간 한 격자로 수평화한다 — 비교의 좌표축이다. 공시 뷰어는 그 격자를 설치도 코드도 없이 브라우저에서 만지게 한다. 셀을 누르면 공시 원문 근거로, 비교 모드를 켜면 여러 회사가 같은 행에 나란히 선다.

통합 아키텍처

전문 금융 자율 작업대 + 분석 엔진 + Skill OS 환류

1 차 데이터 (DART · SEC EDGAR · 향후 EDINET) → 분석 엔진 → 자율 작업대 → 시장 검증 → 사람 환류.

DartLab 통합 아키텍처 — 입구 · 자율 작업대 (chat-native + 운용 자원 3 종) · story 종합 · 공식 분석 5 (analysis · credit · macro · quant · industry) · 횡단 처리 3 (gather · company · scan) · core · 외부 1 차 소스 · 3 자 진화 루프

① 사람·외부 LLM (MCP) → ② 입구 두 갈래 → ③ 자율 작업대 + 운용 자원 3 종 (Skill OS · Capability · Tools 11) → ④ story 종합 → ⑤ 분석 엔진 5 → ⑥ 횡단 처리 3 → ⑦ core → ⑧ 외부 1 차 소스 · ⑨ 3 자 진화 루프

Company 레이어 — 4 네임스페이스

하나의 회사, 4 개 네임스페이스

지도는 그대로. 소스 책임만 다르다.

docs

구조 spine

섹션 경계, 서술형 본문, retrieval 블록, 그리고 회사 지도가 공시에 발붙이게 하는 원본 증거 레이어를 관리한다.

`panel` 표준 spine
`retrievalBlocks` · `contextSlices`
서술형 · 상세 토픽
출시됨
finance

공식 숫자

재무상태표·손익계산서·현금흐름표·비율·비교 가능 시계열을 관리한다. 숫자 토픽은 여기 값이 우선.

정규화된 재무제표
분기 비교 시계열
숫자 토픽 소스 권위
출시됨
report

정형 공시

감사·배당·임직원·임원 등 정기보고서 정형 API 관리. 이 토픽은 docs 가 1차 권위가 아니다.

정기보고서 API
정형 거버넌스 데이터
보고서 토픽 소스 권위
출시됨
profile

머지된 Company 레이어

사용자가 기본으로 보는 것: 같은 panel spine 위에 만든 단일 Company 표면. 지금은 Python 워크플로우, 다음은 AI 인터페이스.

`c.panel(topic)`
`c.show(...)`
`c.trace(...)`
Current Default
동작 방식

종목코드에서 회사 지도까지

파서 목록을 먼저 보지 않는다. Company 보드에서 시작한다.

01

설치

한 줄 — uv add dartlab. 별도 데이터 준비 불필요.

$ uv add dartlab
02

Company 생성

공개 진입점에서 시작. 없는 데이터는 HuggingFace 에서 자동 다운로드.

c = dartlab.Company("005930")
03

panel = 회사

topics 로 catalog 를 보고 panel(topic) 으로 같은 기간 축의 공시·재무 보드를 연다. show · diff · trace 는 그 위의 뷰다.

c.panel("businessOverview")
코드 → 결과

sections 가 곧 회사 전체

DataFrame 하나. 모든 토픽. 모든 기간. 실제로 받는 게 이렇다.

sections.py
from dartlab import Company

samsung = Company("005930")
board = samsung.sections

board # 표준 회사 지도
board.shape # (329, 106)
출력
shape: (329, 106)
chaptertopicblockType20242023
IcompanyOverviewtext1969년 설립…1969년 설립…
IIbusinessOverviewtext반도체 사업…반도체 사업…
IIbusinessOverviewtable매출 (5×3)매출 (5×3)
IIIriskManagementtext환율 위험…환율 위험…
VauditOpiniontext적정 의견적정 의견
AI 분석

코드 불필요. 그냥 물어본다.

DartLab 이 데이터를 구조화해 LLM 에 먹인다. 자연어로 질문 — 터미널에서도, Python 에서도.

터미널
$ dartlab ask "삼성전자 재무건전성 분석해줘"

삼성전자 (005930) 분석 중...
재무·비율·인사이트 로드 중...

삼성전자는 재무건전성이 견고:
• 부채비율 31.8% (섹터 평균 45.2%)
• 유동비율 258.6% — 안전선 한참 위
• ROE 회복: 4 분기 동안 1.6% → 10.2%
• 이자보상배율 22.1배
Python
import dartlab

# 한 줄 — stdout 으로 스트리밍
dartlab.ask("AAPL 위험 분석")

# 옵션 지정
dartlab.ask(
"삼성전자 배당 분석",
provider="openai",
include=["dividend", "IS"]
)

# 5 개 provider: ollama · openai ·
# oauth-codex · codex · custom
AI 는 read-only 가 아니다 — 엔진 가정을 바꿀 수 있다
you 삼성전자 DCF 계산해봐
ai c.analysis("valuation") implied WACC 18.2% — 이 프로파일에는 높아 보임
you WACC 9%로 재계산
ai c.analysis("valuation", overrides={"wacc": 0.09})
수정된 적정가치 밴드: 91,200 ~ 115,400 원 / 주
AI 는 read-only 요약자가 아니다. 엔진 가정을 override — WACC · 성장률 · 비교군 · 할인 기간 — 같은 세션 안에서 재계산한다. 운전대는 사용자가 잡는다.

2 단 아키텍처가 구조화된 회사 데이터를 어떤 LLM 에든 먹인다. 기본 분석은 모든 provider 에서 동작. Tool-calling provider 는 더 깊이 들어간다.

실제 데이터

삼성전자 — 실제 출력

Company("005930") 한 줄로 받아보는 결과

python
공시 panel — 토픽과 블록을 기간 축으로 수평화
>>> samsung.panel("businessOverview")
chaptertopicblockType202420232022
IcompanyOverviewtext1969년 설립…1969년 설립…1969년 설립…
IIbusinessOverviewtext반도체·디스플레이…반도체·디스플레이…반도체·디스플레이…
IIbusinessOverviewtable매출 비중 (5×3)매출 비중 (5×3)매출 비중 (5×3)
IIIriskManagementtext환율 위험 노출…환율 위험 노출…
VauditOpiniontext적정적정적정
shape: (329, 106) — panel 토픽 329 × 기간 106
모듈 카탈로그

42 개 모듈, 단일 구조

모든 모듈이 같은 sections spine 위. 별도 스키마 0.

서술 구조 · 섹션 경계 · retrieval 블록

1
sections
토픽 × 기간 수평화 — 회사 지도
2
retrievalBlocks
RAG 용 텍스트 블록
3
contextSlices
증거 레이어 슬라이스
4
companyOverview
회사 개요
5
businessOverview
사업 내용
6
riskManagement
위험관리
7
auditOpinion
감사 의견
8
segments
부문 정보
9
salesOrder
영업 실적
10
notes
K-IFRS 주석 래퍼
42 개 모듈, 같은 sections spine 위
Skills

분석과 운영은 Skills에서 시작한다

종목 분석, 공시 검토, 신용 위험, 매크로, 차트뿐 아니라 테스트, 릴리즈, 아키텍처, UI 같은 운영 규칙까지 같은 skill resolver에서 확인한다.

자체 AI 외부 AI MCP Web UI Notebook
01

목적 검색

분석과 운영 질문을 skill catalog에서 먼저 찾고 절차를 고른다.

02

원천 연결

엔진 능력은 capability, 운영 규칙은 sourceRef로 연결한다.

03

검증 게이트

실행 환경, 근거 요구사항, 작업별 검증 기준을 함께 확인한다.

커버리지

DART + EDGAR — 동일한 인터페이스

한국 DART 와 미국 SEC EDGAR 를 하나의 Company 인터페이스로

같은 코드, 다른 시장
한국 (DART)
c = Company("005930")
c.topics
c.panel("businessOverview")
c.show("businessOverview")
c.show("BS")
c.show("ratios")
c.diff("businessOverview")
c.insights.grades()
US (EDGAR)
c = Company("AAPL")
c.panel()
c.show("business")
c.show("BS")
c.show("ratios")
c.diff("10-K::item7Mdna")
c.insights.grades()
D
DART
Korean Electronic Disclosure
Stable
Sections mapping99.95%
Finance mapping97.07%
Verified companies283
Feature coverage14/14
E
EDGAR
SEC Filing (10-K, 10-Q)
Beta
Sections mapping100.00%
Verified companies974
10-K / 10-Q pairs6
Feature coverage10/14
FeatureDARTEDGAR
panel 수평화
show(topic)
trace(topic)
diff(topic)
BS · IS · CF 정규화
재무비율 시계열
timeseries
report API (28 종)
insights (7 영역 등급)
섹터 분류
시가총액 순위
AI 기업 분석
Excel export
Desktop GUI

Company("005930") for DART · Company("AAPL") for EDGAR — same interface, same methods

성능

단순하기 때문에 빠르다

Polars + Parquet + 단일 구조 = 불필요한 변환 0

응답 시간 (삼성전자)
Company 생성 ~2 초
데이터 로드 + sections 빌드
sections 쿼리 <100ms
329 토픽 × 106 기간 즉시
show(topic) <50ms
단일 토픽 블록 추출
BS / IS / CF <100ms
정규화된 재무제표
ratios 시계열 <200ms
TTM 기반 trailing 계산
diff(topic) <300ms
기간 대비 텍스트 비교
기술 스택
런타임 Polars (Pandas 아님)
데이터 포맷 Parquet (컬럼나)
자동 다운로드 HuggingFace Datasets
증분 mtime 기반 delta sync
캐시 Company 객체 재사용
Python 3.12+ 필요
왜 빠른가

단일 구조. 모든 쿼리가 sections 위에서 실행 — 데이터 변환 불필요.

Polars. Pandas 대비 5~10 배 빠른 DataFrame 연산.

Parquet. 컬럼나 포맷 — 필요한 컬럼만 읽는다.

안정성 & 로드맵

투명한 안정성 등급

무엇이 안정이고 무엇이 실험인지 명확히

Stable
  • Company facade
  • DART panel / show / trace / diff
  • DART panel / finance / report
  • search / listing
  • BS · IS · CF · ratios · timeseries
Beta
  • EDGAR Company (sections · finance)
  • insights (7 영역 등급)
  • rank / sector
  • Excel export
  • Server API (FastAPI 40+ 엔드포인트)
  • MCP 서버 (60 도구)
Experimental
  • AI 분석 (7 provider)
  • AI GUI (Desktop)
  • 네트워크 스캐너 (신규)

로드맵

지금 v0.6
  • panel 텍스트 구조
  • EDGAR panel 정합성
  • 네트워크 스캐너
다음 v0.7
  • panel 머지 뷰
  • TopicView 구현
  • show() 완성
이후 v0.8+
  • EDINET 엔진
  • AI GUI 개선
  • Rust 파이프라인 (panel)
할 수 있는 것

DartLab 이 답하는 질문

모든 질문이 같은 회사 지도에서 시작한다. glue 코드도, 컨텍스트 전환도 없다.

"이 회사의 진짜 신용위험은?"

공시 데이터만으로 재구성한 독립 신용평가 (dCR) — 상환능력 · 자본구조 · 유동성 · 현금흐름 품질 · 공시 리스크. 신평사 등급도, 블랙박스도 아님. 한 줄: c.credit().

"맥락 속의 숫자를 보여줘"

재무제표만 보면 절반의 이야기를 놓친다. DartLab 은 BS/IS/CF 옆에 그 숫자를 설명하는 서술을 같이 둔다 — 같은 회사 · 같은 타임라인 · 같은 객체.

"전 시장을 스크리닝"

전 상장사 2,700 개를 거버넌스 · 인력 추세 · 자본 환원 · 부채 리스크로 스캔. 한 줄: dartlab.governance("all"). 필터링·랭킹·비교.

"연구용 데이터셋 만들기"

수백 개 기업의 정규화된 텍스트 + 재무 데이터. NLP · ML 학습 · 학술 연구 즉시 사용. 클렌징·정렬 불필요 — 이미 끝나 있음.

"실제 증거 기반 AI 분석"

원본 PDF 가 아니라 구조화된 회사 컨텍스트를 LLM 에 먹인다. 7 개 provider 지원. AI 가 hallucinate 하지 않고 실제 공시 위에서 추론.

"한국·미국 동일 도구"

한국 DART 와 미국 EDGAR 가 같은 Company 인터페이스. 한 번 배워 양 시장 적용. 같은 API 로 삼성과 Apple 비교.

시작하기

설치

설치 직후 바로 분석 시작

uv
$ uv add dartlab
AI 분석
$ uv add dartlab[ai] && uv run dartlab ai
자동 다운로드

별도 데이터 준비 불필요. 종목코드만 넘기면 없는 데이터는 HuggingFace 에서 자동 다운로드.

from dartlab import Company
c = Company("005930")   # 자동 다운로드
빠른 시작

3줄이면 끝

종목코드 하나면 회사 이름·공시 상태·전 분기 재무제표가 자동으로 딸려온다.

python
import
dartlab

c = dartlab.Company("005930")   # 삼성전자
c.show("IS")                    # 손익계산서 전 분기
c.show("CF")                    # 현금흐름표 — 문자열만 바꾸면 끝
실습은 노트북 섹션에서

Colab · Molab · 로컬 마리모 — 같은 코드를 세 경로로 바로 돌려볼 수 있다.

노트북으로
노트북

실습 노트북

11개 주제, Colab · Molab · 로컬 마리모 — 같은 코드로 돌려볼 수 있다.

01

Company

종목코드 하나로 재무/공시

02

gather

가격 · 수급 · 매크로 · 뉴스

03

scan

전종목 횡단

04

quant

25지표 + 9신호

05

analysis

14축 + 전망 · 가치평가

06

macro

사이클 · 금리 · 자산

07

credit

dCR 7축 등급

08

story

구조화 보고서

09

ai

ask · chat

10

search

공시 검색

11

listing

법인 · 공시 목록

로컬 마리모 편집

Marimo 노트북은 로컬에서 편집하는 게 가장 빠르다. 아래 명령어를 실행하면 브라우저에 편집기가 자동으로 뜬다. 파일 이름만 바꾸면 다른 노트북도 같은 방식.

shell
$ uv run --with marimo marimo edit notebooks/marimo/01_company.py

Marimo 는 코드만, Colab 은 마크다운 설명 + 코드 — 같은 구성을 두 포맷으로 유지한다.

DartLab mascot

PDF 가 아니라 기업을 읽는다

종목코드 하나. 모든 공시 구조화. 모든 기간 비교 가능.

PDF 며칠 분량의 작업이 Python 한 줄로 끝난다.