Skip to content
@Biz-Node

Biz-Node

BizNode

기업 관계를 그래프로, 리스크를 경로로

GraphRAG 기반 지능형 기업 관계 분석 워크스페이스


DART 공시와 비즈니스 뉴스를 하나의 지식그래프로 엮어, 개별 기업만 봐서는 보이지 않는 N차 연쇄 파급 리스크를 추적합니다. 그리고 모든 주장에 원문 근거를 붙입니다.


Python Neo4j PostgreSQL ChromaDB LangGraph Docker

2026 한이음 드림업 · 금융/핀테크 · 팀 쑥부르스도나스


왜 만드는가

주식 투자자가 1,400만 명을 넘어서며 기업 분석 수요는 단순 재무 지표를 넘어섰습니다. 그런데 정작 기업 간 연결성을 볼 수 있는 도구는 없습니다.

현재의 한계BizNode의 접근

정보가 분절되어 있다 주가는 증권 앱, 지분·재무는 DART, 트렌드는 언론사 뉴스로 흩어져 있어 한 사건의 파급을 종합하기 어렵다

하나의 지식그래프로 통합 공시와 뉴스를 같은 온톨로지로 엮어 노드 하나를 클릭하면 그 기업을 둘러싼 생태계 전체가 드러난다

AI가 관계를 추론하지 못한다 키워드 검색이나 단순 문서 RAG는 텍스트 파싱에만 의존해 기업-인물-기관-사건의 다차원 관계를 연결하지 못한다

GraphRAG 다중 홉 추론 그래프 구조와 문맥 검색을 융합해 1차를 넘어 2·3차까지 이어지는 연쇄 경로를 구조적으로 계산한다

출처를 댈 수 없다 금융 도메인에서 LLM은 수치와 주체를 혼동하는 치명적 환각을 일으키는데, 그 답이 어디서 왔는지 확인할 방법이 없다

모든 엣지에 원문 근거 관계 하나하나가 공시 원문·기사 문장과 직접 연결된다. 엣지를 클릭하면 근거가 즉시 나온다

낡은 정보가 현재로 보인다 2년 전 종료된 계약이 오늘의 리스크로 표시되면 판단이 어긋난다

관계에 시간을 부여 valid_from · last_seen · is_current로 신선도를 판정하고, 종료된 관계는 이력으로 남기되 현재에서 제외한다


무엇을 보여주는가

                    ┌── SUPPLIES_TO ──▶ 엔비디아
청주공장 화재         │
    │               ├── SUPPLIES_TO ──▶ 애플 · 구글
    └─ HAS_EVENT ──▶ SK하이닉스                        영향도 0.41
                     │
                     └── COMPETES_WITH ── 삼성전자      (반사 수혜)

사건에서 출발해 공급망을 따라가며 어디까지 번지는지를 계산합니다. 동시에 경쟁 관계를 타고 누가 반사이익을 얻는지도 함께 봅니다.

「보도된 파급」과 「그래프가 추론한 파급」을 구분해 제시합니다. 기사가 말한 것과 시스템이 계산한 것을 섞지 않는 것이 신뢰의 출발점입니다.

리스크 파급은 채널마다 감쇠가 다릅니다.

공급 차질   사건사가 우리에게 납품 → 생산이 즉시 막힌다      (급성 · 감쇠 0.55)
매출 상실   사건사가 우리의 고객   → 매출이 서서히 준다      (만성 · 감쇠 0.35)

중소형 공급사에게는 매출 상실이 유일한 파급 채널인 경우가 많습니다. 이 구분이 없으면 「리스크 파급」이 빈 화면이 됩니다.


어떻게 만드는가

지식 온톨로지 — 노드는 열고, 엣지는 닫는다

관계 표현이 제각각이면(납품 · 공급 · 부품을 댐) 다중 홉 추론 경로가 끊깁니다. 그래서 엣지 타입을 12종으로 통제하고, 세부 의미는 하위 계층으로 내립니다.

Level 1  Category (5)     프론트 필터 · 범례
Level 2  Edge Type (12)   Cypher 탐색 · 다중 홉 추론      ← 유한하게 고정
Level 3  Subtype          상세 패널의 정확한 의미          ← 자유롭게 확장
카테고리엣지허용 방향
소유·지배 OWNS_STAKE_INCompany/Person/Org → Company
IS_EXECUTIVE_OFPerson → Company/Org
거래·협력 SUPPLIES_TOCompany → Company
PARTNERS_WITHCompany/Org ⇄ Company/Org
ACQUIRESCompany → Company
리스크·분쟁 SUESCompany/Person/Org → 동일
COMPETES_WITHCompany/Product ⇄ 동일
REGULATESOrganization → Company/Product
제품·기술 DEVELOPSCompany → Product
DEPENDS_ONCompany/Product → Product
이벤트·영향 HAS_EVENTCompany/Product → Event
IMPACTSEvent → Company/Product

허용 방향 매트릭스가 스키마의 방어선입니다. LLM이 Product → Person 같은 관계를 만들어도 적재 직전에 차단됩니다. 규칙 기반 추출에서는 쓸 일이 없던 장치가, LLM 추출에서 진가를 발휘합니다.

같은 두 기업 사이에 여러 엣지가 공존할 수 있습니다. 삼성전자와 SK하이닉스는 DRAM에서 경쟁하면서 파운드리로 공급하고 표준화에 협력합니다. 이는 데이터 오류가 아니라 사실의 정확한 표현이므로 전부 유지합니다.

데이터 파이프라인 — 정형이 골격, 비정형이 살

        ┌────────────── Phase 1 · 정형 ──────────────┐
        │                                            │
 DART   │  ⓐ 정형 API      기업개황 · 주주 · 임원 · 출자        │
 공시   │  ⓑ 공시 원본     공급계약 · 합병 · 소송 · 사건        │  confidence 1.0
        │  ⓒ 사업보고서    제품 · 주요계약 · 계열회사           │
        └────────────────────┬───────────────────────┘
                             │  corp_code = 마스터 식별자
        ┌────────────────────▼─── Phase 2 · 비정형 ──┐
        │                                            │
 뉴스   │  수집 → 적합성 필터 → LLM 트리플 추출         │  경쟁 · 규제 · 사건
        │      → 개체해소(ER) → 관계 정규화 → 검증      │  익명 상대의 실명
        └────────────────────────────────────────────┘

왜 순차인가 — 뉴스 개체해소의 첫 단계가 corp_code 정확 매칭입니다. 정형 골격이 먼저 있어야 뉴스에서 나온 기업이 제자리에 붙습니다. 동시에 수집하면 기준점이 없어 두 번 일하게 되고, 문제가 생겼을 때 원인도 못 가립니다.

공시가 감춘 것을 뉴스가 채웁니다 — 공시의 「계약상대: 비공개」가 뉴스에는 실명으로 나옵니다. 5% 미만 지분, 소액 공급계약, 경쟁 구도, 화재·파업·제재처럼 공시 의무가 없는 관계도 뉴스에만 있습니다.

하이브리드 지식베이스 — 세 저장소, 하나의 그래프

저장소담는 것왜 여기인가
Neo4j
Graph
노드·엣지
N차 연결망 구조
다중 홉 경로 탐색은 그래프 DB의 고유 영역.
관계 필터링과 파급 계산이 여기서 일어난다
ChromaDB
Vector
관계 근거 스니펫
기업 프로파일 요약
선별 임베딩 — 원문 전체가 아니라
관계가 도출된 근거만 벡터화한다
PostgreSQL
RDB
기업 마스터 · 재무
공시·뉴스 메타
정량 수치와 시계열.
pg_trgm으로 개체해소 블로킹까지 담당

Vector DB는 문서 검색 인덱스가 아니라 그래프의 의미 계층입니다. 청크마다 edge_id · corp_code가 붙어 있어, 그래프에서 경로를 찾으면 그 경로 위 엣지의 근거로 곧장 도달합니다. 반대로 의미 검색으로 찾은 청크에서 그래프로 진입할 수도 있습니다.

저장은 전부, 임베딩은 선별 — 원문은 보관하되 벡터화하지 않습니다. 전문 임베딩은 비용만 늘리는 게 아니라 검색 정확도를 떨어뜨립니다. 사업보고서 수백 페이지 중 실제로 쓰는 것은 세 개 섹션뿐입니다.


무엇을 쓰는가

워크스페이스 — 담은 것과 참조하는 것

┌──────────────────────────────────┬─────────────────┐
│  (중) 그래프 캔버스                  │  (우) 패널        │
│                                  │                 │
│   ● 담은 기업    사용자가 직접 담음    │  노드 클릭        │
│   ○ 참조 기업    규칙이 계산해 그림    │   → 요약 · 재무   │
│                                  │  엣지 클릭        │
│   엣지 = 담은 기업이 한쪽 끝인 관계만   │   → 근거 · 출처   │
└──────────────────────────────────┴─────────────────┘

참조 기업을 저장하지 않는 이유 — 담은 기업을 하나 빼면 참조 목록이 저절로 달라져야 합니다. 저장하면 「왜 아직 저게 남아 있지?」가 생깁니다.

참조는 문턱이 아니라 두 축의 순위로 뽑습니다. 「리스크 2건 이상」 같은 문턱은 크게 보도된 1건짜리 사건을 버립니다.

축① 구조    이어주는 멤버 수  →  엣지 출처 수
축② 위험    사건의 기사 수 합  →  사건 수

각 축 상위 K + 동점이면 함께

기사 수가 위험의 무게입니다 — 세상이 얼마나 크게 다뤘나. 사건 수만 세면 크게 보도된 1건이 밀리지만, 기사 수를 보면 뒤집힙니다.

팩트체크 — 관계를 클릭하면 근거가 나온다

심텍 ──[공급]──▶ 삼성전자                    SUPPLIES_TO / 공급

이 관계는 무엇인가    파는 쪽은 심텍, 사는 쪽은 삼성전자
                    ※ 화살표만으로는 방향 맹점이 생긴다 — 역할을 말로 쓴다
언제·얼마나 확실한가   신선도 최신 · 확신도 0.9 · 뒷받침 출처 2건
                    계약금액 442억 · 매출 대비 7.66%
근거 문장            "…글로벌 빅5 메모리 칩 메이커를 주요 고객사로 확보"
출처                 2026-04-06 핀포인트뉴스                        ↗
검증                 ✅ 통과 · 기사 전문 재검증까지 확인

신뢰할 수 없는 값은 지우지 않고 표시합니다. 근거가 관계를 뒷받침하지 못하면 조회에서 걸러내되, 무엇이 왜 걸렸는지 남깁니다. 무엇이 없는지도 정보입니다.


사용 시나리오

1.  "SK하이닉스에 생산 차질을 일으킬 만한 일이 있었나?"
         │
         ├─ [그래프]  리스크 사건 조회 — 화재 · 라인 전환 연기 · 담합 피소
         │
2.  근거를 확인한다
         │
         ├─ [벡터]   evidence_id로 원문 문장 회수 + 기사 URL
         │
3.  "어디까지 번지나"
         │
         ├─ [그래프]  SUPPLIES_TO 하류로 파급 계산 (질의 시점 2홉)
         │           청주 화재 → SK하이닉스 → 엔비디아 · 애플
         │
4.  워크스페이스에 담고, 그 시점의 결과를 스냅샷으로 보관

기술 스택

저장    Neo4j 5  ·  ChromaDB  ·  PostgreSQL 16 (+pg_trgm)  ·  Redis
추론    LangGraph 멀티 에이전트  ·  OpenAI GPT-4o / 4o-mini
수집    OpenDART API  ·  구글 뉴스 RSS  ·  네이버 검색 API  ·  trafilatura
화면    React  ·  TypeScript  ·  Vite  ·  Cytoscape.js  ·  Tailwind CSS
운영    Python 3.11  ·  FastAPI  ·  Docker Compose

멀티 에이전트 라우팅 — Main Agent가 질의 의도를 분석해 Graph(관계 탐색) · News(맥락 검색) · Finance(수치 조회) 에이전트에 작업을 분배하고, 결과를 융합해 답변합니다. 단일 LLM에 모든 컨텍스트를 밀어 넣는 방식의 토큰 낭비와 병목을 피합니다.

질의 유형별로 탐색 엣지를 제한합니다. 「공장 화재 파급」은 공급 관계만, 「악재 반사이익」은 경쟁 관계만 탑니다. 불필요한 연쇄를 읽고 환각을 일으키는 것을 구조적으로 차단합니다.


어디에 쓰이는가

금융 투자

관계 기반 인과 추론으로 심층 리서치를 제공하고, 보도되기 이전 단계의 지배구조·순환출자 리스크를 시각적으로 포착

공급망 관리

특정 지역·업종의 위기가 자사 N차 협력사까지 전달되는 경로를 파악해 차질을 최소화

규제 준수 · ESG

협력사의 환경·인권 위반이 자사 브랜드에 끼칠 영향을 역추적. 고립된 노드로 정보 투명성이 낮은 협력사 식별

거대 기관의 전유물이던 다중 홉 기반 N차 관계망 분석을 웹 워크스페이스로 대중화하는 것이 목표입니다.


저장소

저장소 내용
biznode-pipeline 수집 · 추출 · 검증 · 적재 배치
biznode-api 그래프 조회 · 리스크 파급 계산
biznode-web 워크스페이스 · 그래프 캔버스

각 저장소의 README · CODEMAP · 데이터 수집 방법서에 설계 근거와 실측이 정리되어 있습니다.


쑥부르스도나스 · 한성대학교

"관계를 세는 것이 아니라, 경로를 보여주는 것"

Popular repositories Loading

  1. BizNode-AI-Data BizNode-AI-Data Public

    2026 한이음 비즈노드 AI 및 데이터 관련 레포지토리입니다.

    Python

  2. .github .github Public

Repositories

Showing 2 of 2 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…