본문으로 이동
DLDevelopment Lab책을 읽고, 직접 만드는 실험실
자료실

10장 · 저자 검증 기록

9장을 끝낸 프로젝트에서 10장 요청문만으로 최근 공시·전체 공시·공식 유형·차트의 공시 시점·DART 원문까지 도달 프로젝트 전체 Test 48개 통과(이 장에서 새로 생긴 것 25개) · OpenDART 실제 응답 477건 확인 최종 확인 2026-08-30

실제로 만들어봤습니다

책에 인쇄된 요청문만으로 9장에서 만든 주식 화면에 금융감독원 전자공시시스템 DART의 공시를 연결할 수 있는지 확인했습니다.

  • 요청문은 책 10장에 나오는 문장을 글자까지 그대로 썼습니다.
  • 10장은 9장을 이어가는 장이므로 9장을 끝낸 프로젝트에서 시작했습니다.
  • 책에 없는 추가 지시를 보태지 않았습니다.

10장의 완료 기준은 여섯 가지입니다. 전부 통과했습니다.

확인 항목결과
1종목 화면에서 최근 공시 5건과 조회 기간, 그 기간의 전체 건수를 함께 본다통과
2전체 공시 화면에서 한 페이지에 100건씩 넘겨보며 그 기간의 공시를 모두 본다통과
3OpenDART 공식 공시 유형으로 좁혀 보고 각 유형의 실제 건수를 본다통과
4최근 1년 차트에서 정기공시와 주요사항보고의 시점을 확인한다통과
5보고서명을 눌러 실제 DART 원문을 연다통과
6공시가 0건인 경우와 요청이 실패한 경우가 화면에서 구분된다통과

주가 차트와 공시 목록이 같은 최근 1년을 조회하는 것과, 그 기간의 공시를 하나도 빼지 않는 것까지 확인했습니다.

완성된 결과를 공개합니다

무엇어디
10장을 끝낸 프로젝트chapters/ch10/source/ai-stock-briefing/
10장 요청문chapters/ch10/prompts.md
공식 유형별 실제 건수artifacts/disclosure-type-counts.txt
페이지 나누기와 DART 원문 접속 기록artifacts/pagination-and-dart-original.txt
종목코드와 고유번호 연결 기록artifacts/corp-code-mapping.txt
빈 폴더에서 돌린 Test 실행 결과artifacts/source-test-run.txt

장별 Source를 빈 폴더에 단독으로 놓고 준비와 빌드, Test 실행까지 확인했습니다.

자동 검사도 해봤습니다

개수
10장 Source에서 돌린 검사 전체48개
이 장에서 새로 생긴 검사25개

돌린 검사 코드는 10장 Source 안에 있습니다. 9장에서 만든 검사도 함께 다시 돌렸습니다.

파일무엇을 확인하는가검사
tests/dart-disclosure.test.ts종목코드로 OpenDART 고유번호를 찾는 것, 최근 공시 5건과 조회 기간의 전체 건수가 함께 오는 것, 전체 목록이 요약과 같은 기간을 쓰고 그 기간의 공시를 하나도 빼지 않는 것, 2페이지가 1페이지와 다른 공시를 담는 것, 공식 유형 열 개의 실제 건수를 모두 더하면 기간 전체 건수와 같은 것, 차트에는 정기공시와 주요사항보고만 오고 같은 날짜의 같은 유형 공시가 여러 건이어도 둘 다 남는 것, 공시가 0건인 경우와 실제 오류가 구분되는 것, 접수번호로 만든 DART 원문 링크가 실제로 그 회사의 문서 페이지를 여는 것25개
tests/e2e/market-flow.spec.ts시장 화면에 기준일·출처·순위 조건이 표시되는 것, 순위의 종목을 눌러 상세와 차트를 거쳐 돌아오는 것, 검색 결과가 하나일 때와 여러 개일 때 화면이 다르게 이어지는 것, 없는 종목을 검색하면 다시 시도할 방법을 알려주는 것5개
tests/stock-lookup.test.ts실제 KRX상장종목정보로 종목명을 검색하는 것, 종목코드로 현재가·시가·고가·저가·거래량을 가져오는 것, 최근 1년 일별 시세를 날짜 순서대로 가져오는 것6개
tests/latest-trading-date.test.ts며칠 연속 0건이어도 데이터가 있는 날짜까지 거슬러 올라가는 것, 월과 연도를 넘어가는 날짜 계산5개
tests/market-data.test.ts실제 금융위원회 응답으로 지수와 종목 시세의 기준일이 오는 것, 등락률 순위의 조건과 대상 종목 수가 계산되는 것4개
tests/server-only-key.test.ts빌드된 브라우저용 파일에 인증키의 값도 이름도 들어가지 않는 것, 서버 전용 모듈에 가드가 있는 것3개

검사는 공식 문서만 보고 끝내지 않고 실제 OpenDART 응답과 실제 DART 원문 페이지까지 확인합니다. 그래서 응답 형식이나 공시 유형 구분이 바뀌면 검사에서 드러납니다.

저자는 검사와 별도로 직접 확인했습니다.

무엇을 확인했나결과
조회 시점(2026-08-30)에 SK하이닉스 최근 1년 공시조회 기간 2025-08-30 ~ 2026-08-30, 전체 477건
한 페이지 100건으로 나눈 페이지 수5페이지(100·100·100·100·77), 서로 다른 접수번호 477개, 중복 0건
공식 유형 열 개의 건수 합계477건, 기간 전체 건수와 일치
공시가 0건인 유형외부감사관련·펀드공시·자산유동화 3개, 상태 013으로 응답
같은 날짜에 여러 건이 접수된 날2026-02-06 174건, 2026-01-07 54건, 2025-10-31 42건 (모두 목록에 남음)
OpenDART 회사 고유번호 자료로 종목코드 000660 조회고유번호 00164779 SK하이닉스, 일치 1건
이름에 하이닉스가 들어간 다른 법인4곳, 모두 종목코드가 없고 고유번호도 다름
최근 공시와 가장 오래된 공시의 DART 원문 접속둘 다 HTTP 200, 문서 제목에 SK하이닉스가 표시
없는 접수번호로 만든 링크원문이 열리지 않고 거부 페이지로 응답
브라우저에서 보고서명을 눌러 새 창에 원문 열기실제로 확인

값은 artifacts/에 있습니다. 공시는 계속 새로 접수되므로 실행하는 날에 따라 건수와 페이지 수가 달라집니다.

공식 자료와 비교했습니다

화면의 공시는 회사가 금융감독원 전자공시시스템에 직접 제출한 자료를 그대로 가져온 값입니다. 요약하거나 다시 분류하지 않았습니다.

금융감독원 OpenDART https://opendart.fss.or.kr

금융감독원 전자공시시스템 DART https://dart.fss.or.kr

공시 유형은 이 화면을 위해 만든 구분이 아니라 OpenDART가 제공하는 공식 유형입니다. 정기공시, 주요사항보고, 발행공시, 지분공시, 기타공시, 외부감사관련, 펀드공시, 자산유동화, 거래소공시, 공정위공시 열 개이며, 각 유형의 건수를 모두 더하면 기간 전체 건수와 같습니다.

차트에 표시하는 것은 이 가운데 정기공시와 주요사항보고 두 유형입니다. 중요한 공시를 골랐다는 뜻이 아니라 차트에서 확인할 범위를 공식 분류 기준으로 제한한 것이며, 전체 공시는 목록에 모두 남아 있습니다.

같은 회사를 부르는 값도 서비스마다 다릅니다. 주식 화면의 종목코드 000660은 OpenDART의 고유번호 00164779에 해당하며, 이 연결은 이름이 비슷한지가 아니라 OpenDART가 제공하는 회사 고유번호 자료로 확인했습니다.

직접 확인해볼 수 있습니다

만들어보실 때는 책의 10장을 그대로 따라 하시면 됩니다. 요청문은 chapters/ch10/prompts.md에 책에 나오는 순서대로 있습니다.

10장 Source를 받아 자기 인증키를 넣으면 같은 검사를 그대로 돌려볼 수 있습니다.

이 폴더는 책 10장을 끝낸 상태의 프로젝트야.
내 인증키를 넣을 자리를 알려주고 Test를 전부 실행해서 결과를 보여줘.

유형별 건수를 모두 더하면 전체 건수와 같은지 직접 확인할 수 있습니다.

SK하이닉스 최근 1년 공시를 공식 유형별로 조회해서 건수를 보여주고,
그 합이 기간 전체 건수와 같은지 확인해줘.
인증키 값은 출력하지 마.

공시가 0건인 것과 요청이 실패한 것을 어떻게 구분하는지도 볼 수 있습니다.

공시가 정말 0건인 기간과 잘못된 요청을 각각 보내서
OpenDART가 돌려주는 상태 코드가 어떻게 다른지 보여줘.
인증키 값은 출력하지 마.

이런 한계가 있습니다

  • 공시는 계속 새로 접수됩니다. 실행하는 날에 따라 전체 건수와 페이지 수가 달라집니다. 확인할 것은 건수가 같은지가 아니라, 공시 목록의 조회 기간이 주가 차트와 같은지와 그 기간에서 빠진 공시가 없는지입니다.
  • 공시를 요약하거나 해석하지 않습니다. 보고서명 뒤에 붙은 불필요한 공백만 정리하고 제목 자체는 그대로 씁니다.
  • 중요도를 판단하지 않습니다. 차트에 표시하는 두 유형은 공식 분류이며, 중요한 공시를 골라낸 결과가 아닙니다.
  • 같은 시기에 있었다는 것과 원인이라는 것은 다릅니다. 가격과 공시를 같은 시간축에 놓아 함께 확인하는 것까지만 하고, 공시가 주가 움직임의 원인이라고 말하지 않습니다.
  • 투자 추천이나 목표주가, 주가 예측은 제공하지 않습니다.
  • 목록의 제목이 최종 근거는 아닙니다. 그래서 모든 공시에서 실제 DART 원문으로 내려갈 수 있게 만들었습니다.
Development Lab아이디어를 AI와 함께 나만의 결과물로 만듭니다.

책에서 배운 개발 원칙을 AI와 직접 만들며 확인하는 실험실입니다. 아이디어를 서비스로, 서비스를 나만의 결과물로. AI와 함께 만들고, 직접 확인하며, 내 손으로 완성합니다.

자료실튜터 안내업데이트
SAStudy AI LabILInvestment LabDLDevelopment Lab

© 2026 Study AI Lab. All rights reserved.