웹사이트를 뒤지던 내가 AI로 데이터 수집 파이프라인을 만든 과정

한줄 요약

여러 웹사이트에 흩어진 부동산·주식 데이터를 매번 찾아보는 대신, AI 코딩 도구와 대화하며 약 15만 행의 실제 데이터를 하나의 데이터베이스에 모았습니다. 한 번의 수집으로 끝나지 않고 필요할 때 다시 실행할 수 있는 자동화 스크립트까지 만들었습니다.

바쁘시면 이것만 읽어도 돼요:

  • Codex와 Claude Code를 이용해 부동산 실거래, KB부동산 통계, 주식·ETF 데이터를 수집했습니다.

  • 코드를 직접 작성하지 않고 원하는 데이터, 기간, 저장 방식과 확인 조건을 대화로 설명했습니다.

  • 약 15만 행의 데이터를 하나의 DuckDB에 모으고 결측값과 중복까지 검증했습니다.

  • 가장 인상적이었던 점은 한 번 쓰고 끝나는 결과가 아니라 재사용 가능한 자동화 스크립트가 생겼다는 것입니다.

  • AI가 잘못 이해하거나 작업이 막혔을 때는 처음부터 다시 시작하기보다 계속 질문하는 것이 효과적이었습니다.

  • 다음 단계는 데이터를 주기적으로 갱신하고, 대시보드와 에이전트를 연결해 분석 보고자료를 만드는 것입니다.

이런 분들께 도움돼요

  • AI 코딩 도구로 실제로 무엇까지 할 수 있는지 궁금한 입문자

  • 코딩은 모르지만 업무나 관심 분야의 데이터를 직접 모아보고 싶은 사람

  • 여러 웹사이트에서 자료를 반복해서 찾고 내려받는 일을 줄이고 싶은 사람

문제 상황 (Before)

부동산과 주식에 관심이 있어도 필요한 데이터는 한곳에 모여 있지 않았습니다. 아파트 매매와 전월세 거래는 공공데이터에서, 가격 흐름은 KB부동산에서, 주식 가격은 또 다른 서비스에서 찾아야 했습니다.

그때그때 웹사이트를 방문해 조건을 선택하고 자료를 확인하는 방식으로는 서로 다른 데이터를 함께 비교하기 어려웠습니다. 같은 분석을 다시 하려면 검색과 다운로드부터 반복해야 한다는 점도 불편했습니다.

그래서 이번에는 AI에게 단순히 데이터를 찾아달라고 부탁하는 데서 그치지 않고, 필요한 데이터를 직접 수집하고 한곳에 저장하는 환경까지 만들어보기로 했습니다.

사용한 도구

  • Codex CLI: 데이터 수집, 저장, 품질 검증과 자동화 스크립트 제작

  • Claude Code: 프로젝트 폴더와 초기 데이터 분석 환경 구성

  • DuckDB: 부동산과 주식 데이터를 한 파일에 저장하는 로컬 데이터베이스

  • VS Code: 데이터베이스를 열고 직접 조회하는 작업 환경

  • 모델: 세션 기록에서 정확한 모델명은 확인하지 못해 별도로 표기하지 않았습니다.


작업 과정

개발 환경부터 AI에게 부탁했다

시작할 때는 프로젝트 폴더도, 데이터 분석을 위한 환경도 준비되어 있지 않았습니다. 가장 먼저 Claude Code에 폴더 생성과 환경 구성을 요청했습니다.

AI는 프로젝트 전용 가상환경을 만들고 데이터 처리에 필요한 도구들을 준비했습니다. 대용량 분석에는 Polars를 활용하고, 외부 서비스와의 호환성을 위해 pandas도 함께 유지했습니다.

처음 접하는 개발 환경이었지만 제가 모든 구성 요소를 이해한 뒤 시작할 필요는 없었습니다. 우선 원하는 방향을 말하고, AI가 만든 결과를 보며 모르는 부분을 다시 물어보는 방식으로 진행했습니다.


첫 번째 난관은 코드가 아니라 API 키였다

공공데이터를 수집하려면 API 키가 필요했습니다. 키를 준비했다고 생각했지만 AI는 현재 프로젝트에서 키를 찾을 수 없다고 했습니다. 반면 제가 터미널에서 확인하면 키가 보였습니다.

확인 결과 키는 프로젝트 폴더가 아니라 상위 폴더에 저장되어 있었습니다. 일부 도구는 상위 폴더까지 탐색해 키를 읽었지만, 프로젝트 기준으로 검사한 AI에게는 없는 것처럼 보였던 것입니다.

AI는 키 파일을 프로젝트 안으로 옮기고, Git에 올라가지 않도록 제외 규칙을 적용했습니다. 키 값은 화면에 출력하지 않고 정상적으로 읽히는지만 확인했습니다.

이 과정에서 환경변수나 보안 설정처럼 생소한 개념도 직접 설정값을 파고들기보다 “왜 나는 보이는데 너는 안 보이지?”라고 현상을 그대로 질문하는 것만으로 원인을 찾을 수 있었습니다.


말로 설명한 조건이 실제 부동산 데이터베이스가 됐다

본격적인 수집에서는 원하는 범위를 최대한 구체적으로 설명했습니다.

AI는 노원구 아파트 매매 10,524행과 전월세 28,137행을 실제 공공데이터에서 수집했습니다. 원본은 그대로 보관하면서 주소, 평형대, 연식 등을 분석할 수 있는 전처리 기능도 별도로 만들었습니다.

수집 도중 특정 월의 응답이 오래 끝나지 않는 문제도 생겼습니다. AI는 어느 단계에서 지연됐는지 확인하고, 월별 제한 시간과 재시도를 적용해 전체 수집을 마쳤습니다. 오류를 숨기거나 가짜 데이터로 채우지 않고 실제 응답이 모두 정상적으로 들어왔을 때만 데이터베이스를 만들도록 했습니다.


부동산 통계와 주식까지 하나의 DB에 쌓였다

실거래 데이터가 저장된 뒤에는 같은 데이터베이스에 다른 자료도 추가했습니다.

KB부동산의 매매가격지수와 전세가격지수는 각각 7,125행, 전세가율은 95,948행이 저장됐습니다. 기본 조회에 포함되지 않은 시군구는 지역별로 추가 조회해 범위를 넓혔습니다.

이어서 삼성전자와 KODEX 200의 가격도 요청했습니다.

두 종목의 가격 데이터 724행도 같은 데이터베이스에 추가됐습니다. 이렇게 모인 전체 데이터는 약 15만 행이었습니다.

가장 놀라웠던 부분은 코드를 직접 한 줄씩 작성하지 않아도 데이터의 종류, 기간, 저장 방식과 확인 조건을 말로 설명하자 실제 데이터 파이프라인이 만들어졌다는 점입니다. 그동안 생각했던 “딸깍”은 간단한 문서나 이미지를 만드는 수준이었는데, 이제는 외부 데이터를 모으고 검증하는 일까지 가능하다는 것을 체감했습니다.


한 번의 결과가 아니라 다시 쓸 수 있는 자동화가 생겼다

이번 작업에서 가장 마음에 들었던 결과는 데이터 파일 자체보다 자동화 스크립트였습니다.

실거래, KB부동산 통계, 주식·ETF를 각각 다시 수집할 수 있는 스크립트가 만들어졌습니다. 기존 데이터가 있을 때는 자동으로 덮어쓰지 않고 중단하도록 안전장치도 적용됐습니다.

즉, 이번 작업은 데이터 약 15만 행을 한 번 받아본 것으로 끝나지 않았습니다. 관심 지역이나 종목, 기간을 바꿔 다시 활용할 수 있는 수집 기반이 생긴 것입니다.


로컬 DB를 직접 보는 경험도 새로웠다

데이터베이스를 만든 뒤에는 또 다른 질문이 생겼습니다.

그전까지 로컬에서 데이터베이스를 열어본 경험이 없었기 때문에, 데이터가 저장됐다는 설명만으로는 결과가 실감 나지 않았습니다. AI에게 계속 질문하면서 VS Code의 DuckDB 확장을 이용해 테이블을 열고 SQL로 직접 조회하는 방법을 익혔습니다.

웹사이트에서 완성된 표를 보는 것과 달리, 이제는 원하는 조건으로 데이터를 필터링하고 서로 다른 자료를 연결할 수 있는 출발점이 생겼습니다. 수집뿐 아니라 데이터를 다루는 개발 환경까지 경험했다는 점도 새로운 변화였습니다.

결과 (After)

Before vs After

항목

Before

After

데이터 위치

공공데이터, KB부동산, 주식 서비스에 분산

하나의 DuckDB 파일로 통합

데이터 확보

필요할 때마다 웹사이트에서 검색

자동화 스크립트로 다시 수집 가능

수집 범위

화면에서 개별 자료 확인

부동산·주식 데이터 약 15만 행 저장

품질 확인

누락·중복 여부를 직접 판단하기 어려움

행 수, 기간, 결측값과 중복 자동 검증

활용 방식

사이트에서 제공하는 화면 중심

VS Code에서 직접 조회하고 분석 가능

결과물

  • 아파트 매매 실거래: 10,524행

  • 아파트 전월세 실거래: 28,137행

  • KB 매매가격지수: 7,125행

  • KB 전세가격지수: 7,125행

  • KB 전세가율: 95,948행

  • 삼성전자·KODEX 200 가격: 724행

  • 실거래, KB 통계, 주식 가격을 다시 수집할 수 있는 자동화 스크립트 3종

  • 모든 데이터를 통합한 로컬 DuckDB

이 과정에서 배운 AI 활용 팁

효과적이었던 것

  1. 결과를 보며 계속 질문하기

    • 처음부터 완벽한 요청을 만들려고 하기보다 “왜 키가 없다고 하지?”, “어디서 데이터를 볼 수 있지?”처럼 현재 막힌 지점을 그대로 질문하는 것이 효과적이었습니다.

  2. 원하는 결과의 조건을 구체적으로 말하기

    • 지역, 종목, 기간, 저장할 테이블과 검증 항목을 알려주면 AI가 훨씬 안전하고 재사용 가능한 결과를 만들었습니다.

  3. 데이터 수집과 검증을 함께 요청하기

    • 데이터가 저장됐다는 말만 믿지 않고 행 수, 날짜 범위, 결측값과 중복을 다시 확인하도록 요청했습니다.

  4. 모르는 개발 용어보다 원하는 행동을 설명하기

    • 기술 이름을 몰라도 “기존 데이터는 유지해줘”, “키 값은 보여주지 마”, “다시 실행할 수 있게 해줘”처럼 필요한 행동을 말할 수 있었습니다.

이렇게 하면 안 돼요

  1. “데이터 모아줘”라고만 요청하기

    • 지역과 기간이 빠지면 결과 범위가 달라지고, 어디에 어떻게 저장할지도 불명확해집니다.

  2. AI가 멈추거나 다르게 말할 때 그대로 포기하기

    • API 키 문제처럼 사용자 화면과 AI의 판단이 다를 수 있습니다. 현상을 다시 설명하고 원인을 확인해달라고 요청해야 합니다.

  3. 수집 성공만 확인하고 품질 검증을 생략하기

    • 행 수가 있어도 특정 기간이 빠지거나 중복과 결측이 포함될 수 있습니다.

다른 업무에 적용한다면?

이 방식은 부동산과 주식에만 한정되지 않습니다. 여러 서비스에서 반복적으로 자료를 찾는 업무라면 비슷하게 적용할 수 있습니다.

  • 여러 광고 채널의 성과 데이터를 하나로 모으기

  • 쇼핑몰별 상품 가격과 리뷰를 정기적으로 비교하기

  • 공공데이터의 지역별 통계를 수집해 보고서 만들기

  • 회사의 여러 엑셀 파일을 하나의 조회 환경으로 통합하기

  • 관심 산업의 지표를 주기적으로 갱신해 변화 감지하기

핵심은 코드를 먼저 배우는 것이 아니라, 어떤 데이터를 어떤 범위로 모으고 어떻게 확인하고 싶은지 설명하는 것입니다.

앞으로의 계획

다음 단계는 수집된 데이터를 주기적으로 갱신하고 대시보드로 시각화하는 것입니다.

대시보드가 만들어지면 사람이 매번 표를 열어 모든 변화를 확인하는 대신, 에이전트가 최신 분석 데이터를 읽고 주요 변화와 이상 징후를 요약하도록 확장하고 싶습니다. 최종적으로는 데이터 수집, 시각화, 분석과 정기 보고자료 생성까지 하나의 흐름으로 연결하는 것이 목표입니다.

1
2개의 답글
지피터스 뉴스레터

이번 주 AI, 딱 쓸 것만

매주 월요일 아침,
읽고 바로 써먹을 AI 소식만