도시연구cli

[1] 도시연구용 cli 도구 구체화하기

dosi-dev 2025. 8. 27. 00:02

 어제 첫 글 쓰기 전까지만 해도 내가 하루만에 다음글을 쓸지는 몰랐다

하지만 생각보다 재밌어서... 오늘은 도시연구용 cli도구 개발 과정에 대한 기록을 써보려 한다

 

 대부분 그러겠지만 난 아이디어를 떠올리면 구체화부터 한다

가능하면 아이디어를 떠올린 날 하려고 하는데, 왜냐하면 내 기억력이 심각하게 안 좋기 때문이다

아마 내가 잊어먹은 아이디어 중 한국의 스티브잡스가 될 수 있는 아이디어도 있었을거라 생각한다

다만 어디 메모장에 안 적어놓고 잊어먹은게 문제일뿐이다

 

 이 프로젝트는 ai에게 최대한 도움을 받으면서 하고 싶어서 ai에게 구체화도 해달라고 부탁해봤다

 

 

 남들은 어떻게 ai 이용해서 구체화하는지 모르겠지만, 나는 이렇게 내가 일단 할말 다 한다. 

그럼 llm이 그때그때 맥락에 맞게 답을 뽑아낸다

 

 사진은 내가 도시연구용 cli에 래그기술을 넣어주는게 도움이 될거 같아서 언급시키려고 일부러 물어봤다

아마 그냥 막연하게 구체화시켜달라고 해도 래그에 대한 언급이 구체화 계획으로 들어갈 거다

근데 내가 굳이 언급해주는건 이렇게 한번 언급해서 llm이 답변하게 하는게,

최종적으로 구체화 계획서 ai가 적어줄 때 도움이 많이 됐었기 때문이다

 

 

 

 이런식으로 도시연구 cli가 자체적으로 데이터도 수집할 수 있게 언급시켜준다

나는 여태동안 Kosis에서 데이터 가져올 때 손수 가져온 기억밖에 없어서 이게 기술적으로 가능한지는 모른다

다만 일단 구체화계획에 들어가게는 해본다

 

 

 

 이것저것 내 할 말 다하고 Gemini에게 구체화 계획서를 만들라고 시켰다

 

뚝딱

 

 canvas 이용해서 금방 만들어 왔다

 

 

자율형 도시 연구 AI 에이전트 개발 계획서

1. 프로젝트 비전 및 목표

1.1. 비전

연구자가 제시한 단일 주제로부터 시작하여, 문헌 연구, 데이터 수집 및 분석, 최종 보고서 작성에 이르는 도시 연구의 전 과정을 자율적으로 수행하는 지능형 AI 에이전트를 구축한다.

1.2. 목표

본 프로젝트는 단순한 질의응답을 넘어, 연구자의 지능적인 파트너로서 가설을 설정하고, 데이터를 통해 검증하며, 학술적 글쓰기까지 보조하는 '궁극의 연구 보조원'을 개발하는 것을 목표로 한다. 이를 통해 도시 연구의 생산성을 획기적으로 높이고, 데이터 기반의 도시 정책 수립을 지원하며, 복잡한 도시 문제 분석의 대중화에 기여한다.

2. 핵심 기술 및 아키텍처

본 에이전트는 최신 LLM 트렌드를 적극적으로 반영하여, 다음과 같은 세 가지 핵심 기술을 기반으로 설계된다.

2.1. 기반 프레임워크: Gemini CLI

Google의 오픈소스 AI 에이전트인 Gemini CLI를 기본 컨트롤러(Controller)로 사용한다. 터미널 기반의 유연성과 확장성, 그리고 개인 계정 기준의 넉넉한 무료 API 할당량(일 1,000회)은 프로토타이핑 및 개발에 최적의 환경을 제공한다.

2.2. 설계 사상: MCP (Model-Controller-Plugin)

에이전트의 모든 기능은 MCP 아키텍처에 따라 모듈화된다.
  • 🧠 Model (두뇌): Gemini 1.5 Pro. 사용자의 의도를 파악하고, 연구 계획을 수립하며, 플러그인들의 실행 결과를 종합하여 최종 결과물을 생성하는 핵심 추론 엔진.
  • 🕹️ Controller (지휘관): 커스터마이징된 Gemini CLI. 사용자와 모델 사이의 인터페이스 역할을 하며, 모델의 판단에 따라 적절한 플러그인을 호출하고 데이터 흐름을 관리.
  • 🛠️ Plugin (전문가): 특정 작업을 수행하는 외부 도구. 학술 검색, 데이터 수집, 통계 분석 등 연구에 필요한 실질적인 행동을 담당.

2.3. 핵심 기술: RAG (검색 증강 생성)

에이전트의 모든 답변과 분석은 RAG 기술을 통해 사실에 기반하도록 한다. 이를 통해 LLM의 '환각(Hallucination)' 현상을 방지하고, 최신 학술 정보를 실시간으로 연구에 반영하여 결과물의 신뢰도를 확보한다.

3. 단계별 개발 로드맵

프로젝트는 총 4단계의 점진적인 개발 과정을 통해 완성된다.

Phase 1: 기반 구축 및 핵심 상호작용 (MVP)

  • 기간: 1개월
  • 목표: 사용자가 제공한 논문과 데이터를 기반으로 기본적인 분석 및 요약을 수행하는 최소 기능 제품(MVP) 구현.
  • 주요 개발 내용:
    1. Gemini CLI 설치 및 환경 설정: 기본 개발 환경 구축.
    2. 프롬프트 패턴화: GEMINI.md 파일을 활용하여 연구 프로젝트의 기본 컨텍스트(주제, 관점, 주요 개념)를 AI에게 사전 주입하는 방법론 정립.
    3. 셸 스크립트 활용: 자주 사용하는 연구 명령어(논문 요약, 데이터 탐색 등)를 셸 에일리어스(Alias)로 만들어 작업 효율화.
    4. 수동 RAG 구현: 사용자가 @논문.pdf 형식으로 직접 파일을 제공하면, AI가 해당 내용을 기반으로 답변을 생성하는 기능 집중 테스트.

Phase 2: 정보 검색 자동화 (RAG 시스템 구현)

  • 기간: 2개월
  • 목표: AI가 연구 주제에 맞춰 스스로 관련 문헌을 검색하고 학습하는 능동적 RAG 시스템 구축.
  • 주요 개발 내용:
    1. 학술 DB 검색 플러그인 개발:
      • Google Scholar, DBpia, RISS 등 학술 사이트의 API와 연동.
      • 주제어를 입력받아 관련 논문 목록, 초록, 피인용 횟수 등을 수집하는 기능.
    2. PDF 분석 및 추출 플러그인 개발:
      • 수집된 논문 PDF 파일에서 텍스트를 추출.
      • '서론', '연구 방법', '결론' 등 특정 섹션의 내용만 발췌하는 기능.

Phase 3: 데이터 수집 및 분석 자동화

  • 기간: 2개월
  • 목표: AI가 연구 계획에 필요한 정량 데이터를 직접 수집하고 통계적으로 분석하는 기능 구현.
  • 주요 개발 내용:
    1. KOSIS 데이터 수집 플러그인 개발:
      • KOSIS(국가통계포털) OpenAPI 연동.
      • 자연어 명령을 API 쿼리로 변환하여 필요한 통계 데이터를 요청하고, 수신된 데이터를 CSV 파일로 자동 저장하는 기능.
    2. 데이터 분석 및 시각화 플러그인 개발:
      • Python의 Pandas, Matplotlib, Scikit-learn 라이브러리 활용.
      • CSV 파일을 입력받아 기초 통계, 상관관계 분석, 회귀분석 등을 수행하고, 결과를 그래프 이미지로 생성하는 기능.

Phase 4: 완전 자율 워크플로우 통합

  • 기간: 1개월
  • 목표: 모든 플러그인을 유기적으로 결합하여, 주제 입력부터 최종 보고서 초안 작성까지의 전 과정을 자동화하는 완전한 에이전트 워크플로우 완성.
  • 주요 개발 내용:
    1. 문서 작성 및 참고문헌 플러그인 개발:
      • 분석된 모든 내용을 종합하여 논리적인 구조(서론-본론-결론)의 보고서 초안을 생성.
      • 연구 과정에서 인용된 모든 문헌의 서지 정보를 APA 등 학술 양식에 맞춰 자동으로 정리.
    2. 에이전트 의사결정 로직 고도화:
      • '연구 계획 수립 → 문헌 검색 → 데이터 수집 → 분석 → 작성'으로 이어지는 전체 흐름을 AI가 스스로 판단하고 플러그인을 순차적으로 호출하도록 제어 로직 완성.

4. 기대 효과 및 활용 방안

  • 연구 시간 단축: 문헌 조사 및 데이터 수집/전처리 등 반복적인 작업을 자동화하여 연구자가 핵심적인 분석과 해석에 집중할 수 있도록 지원.
  • 데이터 기반 정책 시뮬레이션: 특정 도시 정책(예: 재개발 사업)이 도입되었을 때 예상되는 사회경제적 변화를 과거 데이터와 논문을 기반으로 예측하고 시뮬레이션.
  • 연구의 대중화: 복잡한 통계 분석이나 프로그래밍 기술 없이도, 자연어 명령만으로 깊이 있는 도시 데이터 분석이 가능해져 학생, 시민, 활동가 등 비전문가도 쉽게 활용.

 

 짜잔 구체화 계획서 완성이다

블로그에 이걸 올릴까 말까 고민했는데 누가 내 아이디어를 좋다고 가져갈까 싶어서 그냥 올렸다

근데 어제 7분이나 내 블로그에 방문을 했는데 대체 어떻게 알고 온건지 모르겠다

사실 그래서 아직도 난 이렇게 올려도 괜찮겠지하는 걱정이 남는다 (ㅋㅋ)

 

 Gemini한테 예상 사용 시나리오도 적어달라고 해보았다

생각보다 잘 써주기도 했고, 무엇보다도 내가 원하는 바가 잘 들어나서 이것도 올려본다

 

[사용자]
gemini "서울시 공유 자전거 '따릉이'가 도시 공간 활성화에 미치는 영향에 대한 연구를 시작하고 싶어. 관련 연구 동향부터 데이터 분석, 최종 보고서 초안까지 부탁해."

[AI 에이전트]
알겠습니다. '서울시 따릉이 이용 패턴과 도시 공간 활성화 연관성 분석' 프로젝트를 시작하겠습니다. 연구 워크플로우를 다음과 같이 진행하겠습니다.

▶ STEP 1: 자동 문헌 연구 (RAG)
[Thinking]... '공유 자전거', '도시 활성화', '공간 분석' 키워드로 최신 연구 동향 파악이 필요합니다. '학술 DB 검색 플러그인'을 실행하겠습니다.
[Action] Calling 'academic_search_plugin' with keywords: "bike sharing", "urban vitality", "spatial analysis", "Seoul"
[Result] 국내외 주요 논문 15건의 초록 및 서지 정보 수집 완료.
[Thinking]... 수집된 논문들의 본문을 분석하여 주요 연구 방법론과 결론을 추출해야 합니다. 'PDF 분석 플러그인'을 실행하겠습니다.
[Action] Calling 'pdf_analyzer_plugin' on collected papers.
[Output to User] 문헌 연구 결과, 따릉이 이용률이 높은 지역은 유동인구 증가 및 상권 매출 증대와 양의 상관관계를 보인다는 선행 연구들이 존재합니다. 주로 공간 회귀분석(Spatial Regression)과 핫스팟 분석(Hot Spot Analysis)이 주요 연구 방법론으로 사용되었습니다.

▶ STEP 2: 연구 계획 수립
[Thinking]... 선행 연구를 바탕으로 구체적인 연구 질문과 가설을 설정하고, 필요한 데이터를 정의하겠습니다.
[Output to User] 연구 계획을 제안합니다.

연구 질문: 따릉이 대여/반납이 활발한 지역의 특성은 무엇이며, 이는 주변 상업 시설의 밀도와 어떤 공간적 관계를 맺는가?

가설: 따릉이 대여/반납 핫스팟은 상업 시설 밀도가 높은 지역과 공간적으로 유의미한 클러스터를 형성할 것이다.

필요 데이터:

서울시 따릉이 대여소별 시간대별 대여/반납 데이터

서울시 행정동별 상업 시설(소상공인) 데이터

서울시 행정동 경계 GIS 데이터

▶ STEP 3: 데이터 자동 수집
[Thinking]... 연구 계획에 따라 필요한 데이터를 수집해야 합니다. '서울시 열린데이터광장 플러그인'과 'KOSIS 데이터 수집 플러그인'을 순차적으로 실행하겠습니다.
[Action] Calling 'seoul_data_plugin' for bike sharing usage data.
[Result] '따릉이 대여소별 이용정보.csv' 파일 다운로드 완료.
[Action] Calling 'kosis_data_plugin' for commercial density data.
[Result] '서울시 행정동별 사업체 수.csv' 파일 다운로드 완료.
[Output to User] 연구에 필요한 데이터 2건의 수집을 완료하고 현재 프로젝트 폴더에 저장했습니다.

▶ STEP 4: 데이터 분석 및 결과 도출
[Thinking]... 수집된 데이터를 공간적으로 결합하고 가설을 검증하기 위한 분석 코드를 작성해야 합니다. '데이터 분석 플러그인'을 실행하겠습니다.
[Action] Calling 'data_analyzer_plugin' with instructions: "Load collected CSVs, perform spatial join with GIS data, conduct Hot Spot Analysis (Getis-Ord Gi*) on bike usage, and run bivariate spatial correlation analysis with commercial density."
[Result] Python(geopandas, pysal) 코드 생성 및 실행 완료. 분석 결과 및 시각화 자료 생성.
[Output to User] 데이터 분석을 완료했습니다.

결과 1: 따릉이 이용 핫스팟은 주로 도심 업무지구(강남, 종로)와 대학가 주변에 집중되는 것으로 나타났습니다. (첨부: hotspot_map.png)

결과 2: 따릉이 이용 핫스팟과 상업 시설 밀집 지역 간의 공간적 자기상관(Moran's I) 계수는 0.68로, 통계적으로 유의미한 양의 군집 패턴을 보입니다.

▶ STEP 5: 최종 결과 해석 및 보고서 초안 작성
[Thinking]... 모든 연구 과정과 결과를 종합하여 학술적 형식의 보고서 초안을 작성해야 합니다. '문서 작성 플러그인'을 실행하겠습니다.
[Action] Calling 'report_writer_plugin' with all previous steps' context.
[Output to User] '서울시 따릉이 이용 패턴과 도시 공간 활성화 연관성 분석' 연구 보고서 초안 작성을 완료했습니다. 아래 목차에 따라 내용이 구성되었으며, 참고문헌 목록도 자동으로 생성되었습니다. 검토 후 수정할 부분을 알려주세요.

1. 서론

연구의 배경 및 필요성

2. 이론적 배경 및 선행 연구 검토

공유 모빌리티와 도시 공간에 대한 논의

3. 연구 설계 및 방법

데이터 수집 및 분석 방법론 (공간 자기상관 분석 등)

4. 분석 결과

따릉이 이용 패턴의 공간적 특성

이용 패턴과 상업 시설 밀도의 연관성 분석

5. 결론 및 정책적 제언

연구 요약 및 시사점

참고문헌

 

 수많은 티스토리글을 구글 검색할 때마다 보면서 한번쯤 이 '코드블럭'이라는 기능을 써보고 싶었다 

같은 텍스트를 복사 붙여넣기 해도 참 예뻐보인다

내가 공대남이라 그런지도 모르지만 난 이런 느낌이 참 마음에 든다

 

 다시 주제로 돌아와 아무튼 내가 이게 원하는 도시연구 cli도구의 최종 모습이다

여기서 사용자는 "따릉이가 도시공간 활성화에 미치는 영향 연구하고 싶어" 이거 하나만 말해도,

llm이 척척 선행연구 읽어보고 검토한 후, 연구 계획 세워서 진행한다

연구 과정에서는 데이터도 자기가 알아서 수집하고 분석한다

이 모든 과정과 분석 결과에 대한 해석까지 담아서 보고서로 만든다

 

 만들 수만 있다면 정말 대박일거라고 생각한다

오늘은 구체화까지 끝냈으니 내일부터는 본격적으로 개발에 들어가보려 한다

개발에 들어가서도 cli 코딩 보조 도구를 열심히 써보려고 한다

ai를 이용한 연구 도구를 개발하기 위해 ai로 구체화하고 ai로 개발하고 참 아이러니하다는 생각이 든다

'도시연구cli' 카테고리의 다른 글

도시연구 CLI 개발 현황과 앞으로의 방향  (0) 2025.09.28