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

8장 · 저자 검증 기록

7장 도착점에서 시작해 8장 요청문만으로 아파트 찾기 화면과 공개까지 도달 프로젝트 전체 Test 43개 통과(이 장에서 새로 생긴 것 19개) · 공개된 주소에서 검색 확인 최종 확인 2026-08-30

실제로 만들어봤습니다

책에 인쇄된 요청문만으로 7장의 아파트 찾기에 브라우저 화면을 붙이고 인터넷에 공개할 수 있는지 확인했습니다.

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

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

확인 항목결과
1브라우저 화면에서 조건을 입력해 아파트를 찾는다통과
2실거래 가격 범위가 현재 매물 가격이 아니라는 것을 화면에서 알 수 있다통과
3결과 0건과 검색이 끝나지 못한 것을 구분해 알려준다통과
4국토교통부 데이터 오류와 Kakao 데이터 오류를 서로 구분해 알려준다통과
5두 개의 키가 브라우저로 전달되지 않는다통과
67장까지의 검색 규칙이 그대로 유지되고 기존 Test도 계속 통과한다통과

7장의 검색 규칙은 한 줄도 바꾸지 않았습니다. 8장에서 더한 것은 그 규칙을 사람이 브라우저에서 사용할 수 있게 하는 화면과, 그 화면을 인터넷에서 실행하는 자리입니다.

완성된 결과를 공개합니다

공개된 주소에서 지금 바로 검색해볼 수 있습니다.

https://apartment-explorer.vercel.app
무엇어디
8장을 끝낸 프로젝트chapters/ch08/source/apartment-explorer/
8장 요청문chapters/ch08/prompts.md
공개된 주소에서 검색한 결과artifacts/live-search.json
지역을 세 가지 형태로 입력한 결과artifacts/region-forms.json
서울과 행정구역 구조가 다른 지역의 결과artifacts/other-districts.json
브라우저로 키가 나가지 않는 것을 확인한 기록artifacts/browser-bundle-check.txt

장별 Source를 빈 폴더에 단독으로 놓고 준비와 Test 실행, 빌드까지 확인했습니다. 두 개의 키가 없어도 저장해둔 응답 예시로 Test 43개가 모두 통과합니다.

자동 검사도 해봤습니다

개수
8장 Source에서 돌린 검사 전체43개
이 장에서 새로 생긴 검사19개

돌린 검사 코드는 8장 Source 안에 있습니다.

파일무엇을 확인하는가검사
src/app/ApartmentSearchForm.test.tsx화면이 조건 입력과 검색 버튼을 보여주는 것, 실거래 가격이 현재 매물 가격이 아니라는 안내를 보여주는 것, 결과에서 요구된 항목과 거래 내역을 보여주는 것, 0건과 입력 범위 오류·지역 확인 실패·지역 모호·국토교통부 데이터 오류·Kakao 데이터 오류·예상하지 못한 오류를 서로 다른 문구로 보여주는 것10개
src/lib/apartmentSearch.test.ts7장의 검색 규칙이 유지되는 것, 외부 데이터를 가져오지 못한 경우가 결과 0건과 구분되는 것, 그 원인이 국토교통부인지 Kakao인지 그 밖인지 구분되는 것11개
src/lib/molit.test.ts실거래 응답을 읽는 것, 거래 해제 거래를 구분하는 것, 정상 응답 코드의 두 형태를 모두 정상으로 읽는 것, 응답이 오지 않을 때 정해진 시간 안에서 다시 시도하고 그래도 오지 않으면 원인을 밝히는 것11개
src/lib/region.test.ts법정동과 행정동 이름을 조회 지역으로 연결하는 것, 확인할 수 없는 주소와 모호한 주소를 임의로 연결하지 않는 것5개
src/lib/kakao.test.ts주소에서 좌표를 읽는 것과 주변 지하철역·초등학교를 읽는 것, 응답이 오지 않을 때 국토교통부 요청과 같은 방식으로 다시 시도하는 것6개

검사는 실제 API를 호출하지 않고 프로젝트에 저장해둔 응답 예시로 실행됩니다. 그날의 데이터에 따라 결과가 달라지지 않고, 발급받은 키의 사용량도 쓰지 않습니다.

저자는 검사와 별도로 공개된 주소에서 직접 확인했습니다.

무엇을 확인했나결과
서울 강남구 대치동 · 전용 8090㎡ · 실거래 20억30억원 · 지하철역 800m · 초등학교 1km조건을 만족하는 아파트 단지 7곳
사용한 실거래 데이터 (2025-08-29 ~ 2026-08-29)거래 2,918건, 그중 거래 해제 165건
같은 아파트를 법정동 이름 · 행정동 이름 · 도로명주소로 입력세 형태 모두 같은 조회 지역으로 연결, 결과도 동일
경기 성남시 분당구 정자동 (시 아래 구가 있는 구조)거래 5,121건 중 조건을 만족하는 단지 9곳
경기 수원시 영통구 영통동 (시 아래 구가 있는 구조)거래 6,690건 중 조건을 만족하는 단지 8곳
브라우저가 내려받는 파일 7개(합계 575,962바이트)에서 키 이름 찾기0건

값은 artifacts/에 있습니다. 실거래 데이터는 계속 추가되고 변경되므로 접속하는 날에 따라 건수와 결과 단지가 달라집니다.

공식 자료와 비교했습니다

검색에 사용한 가격은 부동산 사이트의 매물 호가가 아니라 국토교통부에 신고된 실제 매매 거래입니다.

국토교통부_아파트 매매 실거래가 자료 https://www.data.go.kr/data/15126469/openapi.do

공개된 서비스가 사용하는 무료 요금제의 범위도 공식 문서에서 확인했습니다.

Vercel Hobby plan https://vercel.com/docs/plans/hobby

지역 이름은 Kakao Local API의 주소 검색으로 확인한 뒤 실거래가 조회에 필요한 법정동으로 연결했습니다. 그래서 법정동 이름뿐 아니라 평소 쓰는 행정동 이름이나 도로명주소를 입력해도 같은 지역으로 연결됩니다. 하나로 정할 수 없으면 임의로 고르지 않고 후보를 보여줍니다.

직접 확인해볼 수 있습니다

공개된 주소에 접속해 조건을 입력해보시면 됩니다.

https://apartment-explorer.vercel.app

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

두 개의 키가 브라우저로 나가지 않는 것도 직접 확인할 수 있습니다. 8장 Source를 받아 Claude에게 이렇게 말하면 됩니다.

이 프로젝트를 빌드한 뒤 브라우저가 받아가는 파일에
국토교통부 서비스키와 Kakao REST API 키의 이름이나 값이 들어 있는지 찾아줘.
실제 키 값은 출력하지 마.

화면이 오류를 어떻게 구분하는지도 확인할 수 있습니다.

아파트가 0건인 경우와 국토교통부 데이터를 가져오지 못한 경우,
Kakao 데이터를 가져오지 못한 경우를
화면이 서로 다른 문구로 보여주는지 Test로 확인해서 보여줘.

이런 한계가 있습니다

  • 실거래가는 과거에 신고된 거래입니다. 지금 시장에 나와 있는 매물 가격이나 앞으로의 가격이 아닙니다. 20억~30억원 실거래가 있다는 것은 그 가격에 살 수 있다는 뜻이 아닙니다.
  • 최근 1년 동안 거래가 없었던 아파트는 결과에서 빠집니다. 그 아파트가 조건에 맞지 않는다는 뜻이 아니라, 판단할 실제 거래가 없다는 뜻입니다.
  • 거리는 좌표 사이의 직선거리입니다. 실제 걷는 거리나 이동 시간과는 다릅니다.
  • 초등학교가 가깝다는 것은 통학구역이나 교육환경을 뜻하지 않습니다.
  • 접속하는 날에 따라 결과가 달라집니다. 실거래 데이터가 계속 추가되고, 신고된 거래가 나중에 해제될 수도 있습니다.
  • 공개된 주소는 무료 요금제로 운영됩니다. 같은 시간에 많은 사람이 검색하면 응답이 느려질 수 있습니다.
Development Lab아이디어를 AI와 함께 나만의 결과물로 만듭니다.

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

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

© 2026 Study AI Lab. All rights reserved.