9장 · 저자 검증 기록
빈 폴더에서 시작해 9장 요청문만으로 시장 화면과 종목 화면, 최근 1년 차트까지 도달 프로젝트 전체 Test 23개 통과(이 장에서 새로 생긴 것 23개) · 금융위원회 실제 응답 확인 최종 확인 2026-08-30
실제로 만들어봤습니다
책에 인쇄된 요청문만으로 금융위원회 공식 주식 데이터를 사용하는 새 프로젝트를 시작해, 시장 화면과 종목 화면, 최근 1년 차트까지 만들 수 있는지 확인했습니다.
- 요청문은 책 9장에 나오는 문장을 글자까지 그대로 썼습니다.
- 9장은 새 프로젝트를 시작하는 장이므로 빈 폴더에서 시작했습니다.
- 책에 없는 추가 지시를 보태지 않았습니다.
9장의 완료 기준은 일곱 가지입니다. 전부 통과했습니다.
| 확인 항목 | 결과 | |
|---|---|---|
| 1 | 시장 화면에서 기준일과 코스피·코스닥 현황, 상승률 상위와 하락률 상위를 본다 | 통과 |
| 2 | 등락률 순위나 검색으로 종목 화면에 들어가 현재가와 기준가 대비 등락을 본다 | 통과 |
| 3 | 종목의 최근 1년 흐름을 시가·고가·저가·종가와 거래량으로 본다 | 통과 |
| 4 | 모든 숫자에 기준일이 붙어 있다 | 통과 |
| 5 | 등락률 순위를 어떤 조건으로 뽑았는지 화면에 적혀 있다 | 통과 |
| 6 | 1년치 거래일이 없는 종목은 실제 구간이 며칠인지 알려준다 | 통과 |
| 7 | 인증키가 브라우저로 전달되지 않는다 | 통과 |
완성된 결과를 공개합니다
| 무엇 | 어디 |
|---|---|
| 9장을 끝낸 프로젝트 | chapters/ch09/source/ai-stock-briefing/ |
| 9장 요청문 | chapters/ch09/prompts.md |
| 실제로 만들어진 시장 현황 | artifacts/market-overview.json |
| 날짜별로 조회한 제공 여부 | artifacts/trading-date-probe.txt |
| 브라우저로 인증키가 나가지 않는 것을 확인한 기록 | artifacts/browser-bundle-check.txt |
| Test 실행 결과 | artifacts/test-run.txt |
장별 Source를 빈 폴더에 단독으로 놓고 준비와 Test 실행, 빌드까지 확인했습니다.
자동 검사도 해봤습니다
| 개수 | |
|---|---|
| 9장 Source에서 돌린 검사 전체 | 23개 |
| 이 장에서 새로 생긴 검사 | 23개 |
9장은 새 프로젝트를 시작하는 장이므로 두 숫자가 같습니다. 돌린 검사 코드는 9장 Source 안에 있습니다.
| 파일 | 무엇을 확인하는가 | 검사 |
|---|---|---|
| tests/e2e/market-flow.spec.ts | 시장 화면에 기준일·출처·순위 조건이 표시되는 것, 등락률 순위의 종목을 눌러 상세와 차트를 거쳐 다시 시장 화면으로 돌아오는 것, 검색 결과가 하나일 때와 여러 개일 때 화면이 다르게 이어지는 것, 없는 종목을 검색하면 다시 시도할 방법을 알려주는 것 | 5개 |
| tests/stock-lookup.test.ts | 실제 KRX상장종목정보로 종목명을 검색하는 것, 종목코드로 현재가·시가·고가·저가·거래량을 가져오는 것, 최근 1년 일별 시세를 날짜 순서대로 가져오는 것, 이력이 짧은 종목은 1년치를 채우지 않는 것 | 6개 |
| tests/latest-trading-date.test.ts | 며칠 연속 0건이어도 데이터가 있는 날짜까지 거슬러 올라가는 것, 월과 연도를 넘어가는 날짜 계산 | 5개 |
| tests/market-data.test.ts | 실제 금융위원회 응답으로 지수와 종목 시세의 기준일이 오는 것, 등락률 순위의 조건과 대상 종목 수가 계산되는 것, 순위에 오른 종목이 모두 보통주이고 거래대금 10억원 이상인 것 | 4개 |
| tests/server-only-key.test.ts | 빌드된 브라우저용 파일에 인증키의 값도 이름도 들어가지 않는 것, 서버 전용 모듈에 가드가 있는 것 | 3개 |
검사는 공식 문서만 보고 끝내지 않고 실제 금융위원회 응답까지 확인합니다. 그래서 응답 형식이나 제공 시점이 바뀌면 검사에서 드러납니다.
저자는 검사와 별도로 직접 확인했습니다.
| 무엇을 확인했나 | 결과 |
|---|---|
| 조회 시점(2026-08-30)에 제공된 가장 최근 거래일 | 2026-08-27, 전체 2,875종목 |
| 그날의 코스피·코스닥 | 코스피 6,912.37(+104.16, +1.53%), 코스닥 837.65(+10.78, +1.30%) |
| 등락률 순위의 집계 대상 | 2,875종목 중 740종목 (KOSPI·KOSDAQ 보통주, 거래 있음, 거래대금 10억원 이상) |
| 최근 10일을 하루씩 조회 | 토·일요일은 0건, 조회일과 그 전날도 아직 0건 |
| KRX상장종목정보로 검색 | 상장 종목 2,760종목에서 종목명과 종목코드로 조회 |
| 브라우저가 받아가는 파일 16개(합계 751,661바이트)에서 인증키 이름과 값 찾기 | 0건 |
값은 artifacts/에 있습니다. 시세는 거래일마다 새로 제공되므로 실행하는 날에 따라 기준일과 종목, 숫자가 달라집니다.
공식 자료와 비교했습니다
화면의 모든 숫자는 금융위원회가 공공데이터포털에 공개한 자료에서 그대로 가져온 값입니다.
금융위원회_주식시세정보 https://www.data.go.kr/data/15094808/openapi.do
금융위원회_지수시세정보 https://www.data.go.kr/data/15094807/openapi.do
금융위원회_KRX상장종목정보 https://www.data.go.kr/data/15094775/openapi.do
세 API는 활용신청을 각각 하지만 같은 인증키 하나를 함께 사용합니다.
등락과 등락률은 전일 종가가 아니라 기준가와 비교한 값입니다. 이 자료가 대비와 등락률을 기준가 기준으로 제공하기 때문이며, 화면에도 기준가와 비교한 값이라고 밝혀두었습니다. 기준가는 대개 전일 종가와 같지만 권리락이나 액면분할, 신규 상장 첫날에는 다릅니다.
직접 확인해볼 수 있습니다
만들어보실 때는 책의 9장을 그대로 따라 하시면 됩니다. 요청문은 chapters/ch09/prompts.md에 책에 나오는 순서대로 있습니다.
9장 Source를 받아 자기 인증키를 넣으면 같은 검사를 그대로 돌려볼 수 있습니다.
이 폴더는 책 9장을 끝낸 상태의 프로젝트야.
내 인증키를 넣을 자리를 알려주고 Test를 전부 실행해서 결과를 보여줘.인증키가 브라우저로 나가지 않는 것도 직접 확인할 수 있습니다.
이 프로젝트를 빌드한 뒤 브라우저가 받아가는 파일에
인증키의 이름이나 값이 들어 있는지 찾아줘.
실제 인증키 값은 출력하지 마.오늘 날짜로 조회하면 왜 0건인지도 직접 볼 수 있습니다.
최근 10일을 하루씩 조회해서 날짜별로 몇 건이 오는지 보여줘.
인증키 값은 출력하지 마.이런 한계가 있습니다
- 실시간 시세가 아닙니다. 하루의 거래가 끝나고 정리된 뒤에 제공되므로, 화면의 숫자는 가장 최근에 제공된 거래일의 값입니다. 그래서 모든 숫자에 기준일을 함께 표시합니다.
- 지수와 종목 시세의 기준일이 다를 수 있습니다. 이때 하나로 합치지 않고 두 날짜를 각각 보여줍니다.
- 등락률 순위의 조건은 이 화면을 위해 정한 기준입니다. 거래대금 10억원 같은 값이 모든 주식 서비스에 통하는 정답은 아니며, 투자 판단 기준도 아닙니다.
- 최근 상장 종목은 1년치 흐름이 없습니다. 이때 1년인 것처럼 보여주지 않고 실제 구간을 알려줍니다.
- 투자 추천이나 목표주가, 주가 예측은 제공하지 않습니다. 가진 데이터로 말할 수 없는 것은 만들지 않았습니다.
- 실행하는 날에 따라 결과가 달라집니다. 기준일과 등락률 순위에 오르는 종목이 매일 바뀝니다.