부동산 스터디 2주차 구현내용 - 요약

- 소개
동사니 메신저봇은 유튜브 부동산 영상의 핵심 요약, 톤/신뢰도 분석, MD 문서 분석을 한 번에 처리하는 자동화 봇입니다.

메신저봇R 환경에서 빠르게 영상 인사이트를 얻고, Firebase Functions와 연동해 결과를 저장/요약하려는 목적이었습니다.

  • 시도하고자 했던 것과 그 이유를 알려주세요.
    메신저봇R에서 %%동사니 명령만으로 유튜브 영상 분석과 MD 문서 요약을 제공하고 싶었습니다. 사용자는 복잡한 설정 없이 링크만 던지면 분석을 받고, 필요할 때 요약을 재요청할 수 있어야 했습니다.

진행 방법
어떤 도구를 사용했고, 어떻게 활용하셨나요?

  • 메신저봇R 0.7.39a/99(API2 문법)에서 이벤트 리스너 기반 명령어 처리 구성

  • Firebase Functions로 영상 분석/요약/MD 분석 API 호출

  • Utils/Formatter 분리로 URL 검증, 파일 로드, 응답 메시지 포맷 책임 분리

Tip: 사용한 프롬프트 전문을 꼭 포함하고, 내용을 짧게 소개해 주세요.
아래 프롬프트로 “동사니 봇 설계/정리/요약”을 요청했습니다.

메신저봇R 환경에서 동작하는 부동산 유튜브 분석 봇을 만들고 싶습니다. 요구사항: 1) %%동사니 [YouTube URL]로 영상 분석 요청 2) %%동사니 요약으로 최근 분석 결과 요약 3) %%동사니 도움말로 사용 가이드 출력 4) Firebase Functions(analyzeVideo/summarizeData/analyzeMd) 연동 5) MD 폴더(part2/part3/part4) 목록 조회 및 번호 선택 분석 코드 구조는 설정/유틸/클라이언트/포맷터/핸들러로 나눠 주세요.

Tip: 활용 이미지나 캡처 화면을 꼭 남겨주세요.
(이미지/캡처 첨부: 메신저봇 대화 화면, 분석 결과 출력 화면) --> 작성중

Tip: 코드 전문은 코드블록에 감싸서 작성해주세요. ( / 을 눌러 '코드 블록'을 선택)

(요약 코드)

// 동사니 메신저봇 요약 구조 // 1) 설정 var CONFIG = { COMMAND_PREFIX: "%%동사니", FIREBASE_FUNCTION_URL: "https://asia-southeast1-dongsani-bot.cloudfunctions.net", MD_BASE_DIR: "/storage/emulated/0/DongSani/ChatAPT_Week2_Prompt", MD_PARTS: ["part2", "part3", "part4"], HTTP_TIMEOUT: 120000 }; // 2) 유틸 var Utils = { isYouTubeUrl: function(url) { return /youtube\.com\/watch|youtu\.be\/|youtube\.com\/embed\//.test(url); }, extractYouTubeId: function(url) { /* 다양한 URL에서 ID 추출 */ }, readTextFile: function(path) { /* UTF-8 파일 읽기 */ }, listMarkdownFiles: function(baseDir, parts) { /* MD 목록 수집 */ } }; // 3) Firebase API 클라이언트 var FirebaseClient = { analyzeVideo: function(url, userId, cb) { /* POST /analyzeVideo */ }, summarizeData: function(userId, cb) { /* POST /summarizeData */ }, analyzeMd: function(payload, cb) { /* POST /analyzeMd */ } }; // 4) 응답 포맷터 var ResponseFormatter = { formatAnalysisResult: function(data) { /* 제목/요약/톤/신뢰도 */ }, formatSummaryResult: function(data) { /* 통계/상위 영상 */ }, formatError: function(err) { /* 자막없음/할당량/네트워크 */ } }; // 5) 명령어 핸들러 var CommandHandler = { handle: function(msg) { // 도움말/요약/URL 분석/MD 분석 분기 }, handleAnalyze: function(url, room) { /* 영상 분석 처리 */ }, handleSummary: function(room) { /* 요약 처리 */ }, handleMdHelp: function(room) { /* MD 목록 출력 */ }, handleMdSelection: function(room, idx) { /* 번호 선택 분석 */ }, handleMdBatch: function(room, part) { /* 파트/전체 분석 */ } }; // 6) 이벤트 연결 function onMessage(msg) { if (msg.content.indexOf(CONFIG.COMMAND_PREFIX) !== 0) return; CommandHandler.handle(msg); } bot.addListener(Event.MESSAGE, onMessage);

결과와 배운 점

  • 배운 점: 기능을 유틸/클라이언트/포맷터/핸들러로 분리하면 유지보수가 쉬워짐

  • 꿀팁: 메신저봇 응답은 “즉시 안내 → 결과 전달” 흐름으로 설계하면 UX가 안정적

  • 시행착오: 자막 없는 영상이나 API 할당량 초과 케이스 대응이 필요했음

  • 도움 필요한 부분: Firebase Functions 쪽 응답 구조 표준화가 더 필요

  • 앞으로의 계획: 분석 결과를 DB에 누적하고 주간 리포트 기능 추가

도움 받은 글 (옵션)
(참고한 지피터스 글/외부 사례 링크)

부동산 스터디장님 2주차 강의내용

1
1개의 답글

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요