6장 · 저자 검증 기록
5장 도착점에서 시작해 6장 요청문만으로 두 API 연결과 Test까지 도달 저장해둔 응답 예시로 실행하는 Test 11개 통과 · 두 API의 실제 응답 확인 최종 확인 2026-08-30
실제로 만들어봤습니다
책에 인쇄된 요청문만으로 새 프로젝트를 시작하고, 두 개의 외부 API를 실제로 연결할 수 있는지 확인했습니다.
- 요청문은 책 6장에 나오는 문장을 글자까지 그대로 썼습니다.
- 5장까지의 공통 작업 원칙만 있는 상태에서 빈 폴더에 apartment-explorer를 새로 시작했습니다.
- 책에 없는 추가 지시를 보태지 않았습니다.
6장의 완료 기준은 여섯 가지입니다. 전부 통과했습니다.
| 확인 항목 | 결과 | |
|---|---|---|
| 1 | 새 프로젝트에서 공통 작업 원칙을 다시 지시하지 않아도 Claude가 참고한다 | 통과 |
| 2 | 직접 해야 하는 일(로그인·키 발급)이 나오면 그 지점에서 멈추고 안내한다 | 통과 |
| 3 | TypeScript를 사용하는 Next.js 프로젝트 기본 구조가 준비된다 | 통과 |
| 4 | 두 개의 키가 프로그램 코드와 Git 기록에 들어가지 않는다 | 통과 |
| 5 | 두 API에서 실제 데이터를 가져온다 | 통과 |
| 6 | 실제 API를 호출하지 않고 저장해둔 응답 예시로 확인하는 Test가 통과한다 | 통과 |
두 개의 키는 한 번도 프로그램 코드나 Git 기록에 들어가지 않았습니다. 키는 Git에서 제외되는 파일에만 있고, 저장소에는 값이 비어 있는 .env.example만 있습니다.
완성된 결과를 공개합니다
6장을 끝내면 apartment-explorer 프로젝트에 두 API 연결과 그 응답을 읽는 Test가 남습니다.
| 무엇 | 어디 |
|---|---|
| 6장을 끝낸 프로젝트 | chapters/ch06/source/apartment-explorer/ |
| 6장 요청문 | chapters/ch06/prompts.md |
장별 Source를 빈 폴더에 단독으로 놓고 준비와 Test 실행까지 확인했습니다. 두 개의 키가 없어도 저장해둔 응답 예시로 Test 11개가 모두 통과합니다.
완성된 아파트 찾기 서비스는 8장에서 완결됩니다.
자동 검사도 해봤습니다
| 개수 | |
|---|---|
| 6장 Source에서 돌린 검사 전체 | 11개 |
| 이 장에서 새로 생긴 검사 | 11개 |
돌린 검사 코드는 6장 Source 안에 있습니다.
| 파일 | 무엇을 확인하는가 | 검사 |
|---|---|---|
| src/lib/molit.test.ts | 실거래 응답에서 아파트명·거래금액·전용면적·계약일을 읽는 것, 거래 해제 거래와 정상 거래를 구분하는 것, 해제 여부 항목이 없는 응답도 오류 없이 처리하는 것, 인증 오류 응답을 오류로 알리는 것, 정상 응답 코드의 두 형태를 모두 정상으로 읽는 것 | 8개 |
| src/lib/kakao.test.ts | 주소에서 좌표와 도로명주소를 읽는 것, 주변 지하철역을 거리순으로 읽는 것, 주변 초등학교를 읽는 것 | 3개 |
검사는 실제 API를 호출하지 않고 프로젝트에 저장해둔 응답 예시로 실행됩니다. 인터넷 상태나 그날의 데이터에 따라 결과가 달라지지 않고, 발급받은 키의 사용량도 쓰지 않습니다.
저자는 검사와 별도로 두 API의 실제 응답도 확인했습니다.
| 무엇을 확인했나 | 결과 |
|---|---|
| 국토교통부 실거래가 API의 1년치 응답 (서울 강남구 대치동, 2025-08-29 ~ 2026-08-29) | 거래 2,918건, 그중 거래 해제 165건 |
| Kakao Local API의 주소 검색 (대치더클래스) | 서울 강남구 대치동 1031로 좌표 확인 |
| Kakao Local API의 주변 장소 | 대치역 3호선 371m, 서울대곡초등학교 467m |
값은 artifacts/api-check.json에 있습니다.
공식 자료와 비교했습니다
가져온 데이터는 부동산 사이트의 매물 호가가 아니라 국토교통부에 신고된 실제 매매 거래입니다. 사용한 데이터는 공공데이터포털의 국토교통부_아파트 매매 실거래가 자료입니다.
국토교통부_아파트 매매 실거래가 자료 https://www.data.go.kr/data/15126469/openapi.do
이름이 비슷한 다른 데이터가 함께 있어서, 책의 요청문에는 이 주소를 함께 적어 어떤 데이터를 사용하는지 고정했습니다.
거래 해제 정보도 이 자료가 함께 제공합니다. 1년치 2,918건 중 165건이 해제된 거래로 표시되어, 신고 뒤 취소된 거래를 정상 거래와 구분할 수 있었습니다.
위치와 주변 장소는 Kakao Local API의 주소 검색과 장소 검색 결과를 사용했습니다.
직접 확인해볼 수 있습니다
책의 6장을 그대로 따라 하시면 됩니다. 요청문은 chapters/ch06/prompts.md에 책에 나오는 순서대로 있습니다.
두 개의 키는 각자 발급받아야 합니다. 키 없이 검사만 돌려보고 싶으면 6장 Source를 받아 Claude에게 이렇게 말하면 됩니다.
이 프로젝트에서 실제 API를 호출하지 않는 Test만 실행해줘.
결과와 무엇을 확인하는 Test인지 알려줘.내 키가 안전하게 분리되어 있는지도 직접 확인할 수 있습니다.
지금 이 프로젝트에서 내 키가 프로그램 코드나 Git 기록에 들어가 있는지 확인해줘.
실제 키 값은 화면에 출력하지 말고 결과만 알려줘.이런 한계가 있습니다
- 실거래가는 과거에 신고된 거래입니다. 지금 시장에 나와 있는 매물 가격이나 앞으로의 가격이 아닙니다.
- 거래 해제된 거래도 함께 옵니다. 해제된 거래를 정상 거래로 세면 값이 달라지므로, 6장에서 그 둘을 구분해두었습니다.
- 주변 장소의 거리는 좌표 사이의 직선거리입니다. 실제 걷는 거리와는 다릅니다.
- 키를 발급받은 직후에는 바로 사용되지 않는 경우가 있습니다. 등록되지 않은 서비스키라는 응답을 받으면 잠시 뒤 다시 확인하시면 됩니다.
- API가 돌려주는 항목의 이름과 개수는 제공 기관이 바꿀 수 있습니다. 그래서 응답을 읽는 부분에 Test를 두었습니다.