2026.11.08 · Vol. III · No. 45
KR · 한국 시장 / Vol. III · Issue 45

한국 공시대상회사 재무 패널 데이터셋 공개

OpenDART 정기보고서에서 2,866개사 15,510개 연도행을 정규화해 JSON·CSV 로 공개한다. 의견과 전망은 담지 않는다.

한국 공시대상회사의 연도별 재무 사실을 한 파일로 묶어 공개한다. 출처는 OpenDART(금융감독원 전자공시시스템)이고, 우리가 한 일은 회사별로 흩어진 정기보고서 재무정보를 하나의 패널로 정규화한 것뿐이다.

무엇이 들어 있나

회사2,866개사
연도행15,510건
회계연도2020~2025
기준일2026-11-03
형식JSON(5.6MB, 회사별 중첩) · CSV(2.2MB, 한 회사-한 연도가 한 줄)
재무제표가 없어 빠진 회사1,132건

칸은 열다섯이다. 종목코드, 회사명, 회계연도, 연결/별도 구분(fs_div), 매출액, 영업이익, 당기순이익, 자산총계, 자본총계, 부채총계, 영업활동현금흐름, 그리고 계산된 비율 네 개 (부채비율, ROE, ROA, 영업활동현금흐름/당기순이익).

읽을 때 주의할 두 가지

fs_div 를 먼저 본다. CFS 는 연결, OFS 는 별도다. 같은 회사의 연도별 기준이 섞여 있는 경우가 있어서, 그 칸을 보지 않고 매출을 나란히 놓으면 숫자가 거짓말을 한다.

null 은 0 이 아니다. 해당 공시에 그 항목이 없었다는 뜻이다. 예를 들어 은행의 매출액 칸은 비어 있다 — 금융업 재무제표에 그 항목이 없기 때문이고, 매출이 0 이라는 뜻이 아니다. 0 으로 채우면 집계가 전부 틀어진다.

무엇이 들어 있지 않나

의견과 전망이 없다. 점수도 순위도 추천도 없다. 이것은 설계이지 게으름이 아니다. 우리가 자료를 다루는 방식의 법적 근거가 “의견과 전망을 담지 않는다” 하나이기 때문이다. 생성 스크립트는 허용할 필드를 열거하고 그 밖은 원본에 무엇이 있어도 버린다. 금지 목록 방식이면 원본에 필드가 늘 때 조용히 통과하기 때문이다.

그 경계에서 뺀 것이 하나 있다. 내부적으로는 “영업손실 연도: 2024, 2025” 같은 기계적 표시를 만들어 쓰는데, 그것은 사실이면서도 어느 사실을 꼽을지가 편집적 강조이고 독자에게 경고 신호로 읽힌다. 사실이라는 것만으로는 들어올 자격이 안 된다고 보고 뺐다.

최대주주 정보가 없다. 공시 1건의 최대주주를 그 회사 글에 적는 것과, 수천 명의 이름과 지분율을 기계 판독 가능한 한 파일로 묶어 내려받게 하는 것은 다른 행위다. 개별 공시를 다룬 글에는 그대로 있고, 이 데이터셋에만 없다.

재무제표가 없는 회사가 빠졌다. 기업인수목적회사(SPAC)나 보고서가 없는 회사다 (건수는 위 표에 있다). 코드가 빠진 것이 재무 상태를 뜻하지는 않는다.

쓰는 방법과 조건

출처만 표기하면 상업적 이용을 포함해 제한이 없다. 「공공데이터의 제공 및 이용 활성화에 관한 법률」에 따른 공공데이터이고, 공공데이터포털의 이용허락범위에 제한 표기가 없다.

실시간 조회 API 는 제공하지 않는다. OpenDART 이용약관이 인증키를 제3자가 쓰게 하는 것을 금지하므로, 우리 키로 외부 요청을 중계하는 형태는 할 수 없다. 할 수 있는 것은 받아서 가공한 결과를 정적 파일로 두는 것이고, 그래서 이 글의 링크가 파일이다.

면책

공시정보는 공시제출인의 책임 하에 작성된 것이며, 금융감독원도 Moo Corp 도 그 정확성과 완전성을 보장하지 않는다. 이 파일은 사실 데이터이고 투자 의견·전망·추천을 담지 않는다. 투자 판단과 그 결과는 이용자에게 속한다.

본 글은 정보 제공 목적이며 투자 권유가 아닙니다.