DOCS/journey/plans/251215_coldmail_email_db_storage.md
Claude-51124 234dd504c5 feat: 콜드메일 이메일 원본 데이터 DB 저장 계획 추가
- ir_deck_evaluations 테이블에 email_metadata JSONB 컬럼 추가 계획
- 이메일 원본 데이터(제목, 본문, 보낸사람) 저장하여 나중에 분석 가능하도록
- DB 저장(분석용)과 Slack Lists(보여주기용) 목적 구분 명확화
2025-12-15 21:52:25 +09:00

2.8 KiB

콜드메일 이메일 원본 데이터 DB 저장 계획

날짜: 2025-12-15 작성자: Auto 관련 파일:

  • rb8001/app/services/coldmail_processor.py
  • rb8001/app/state/ir_valuation_repository.py

목표

콜드메일 처리 시 이메일 원본 데이터(제목, 본문, 보낸사람)를 DB에 저장하여 나중에 분석(대표 이름 추출 등) 가능하도록 함.


배경

현재 문제

  • 이메일 원본 데이터가 DB에 저장되지 않음
  • 이메일 본문에서 대표 이름 추출 등 분석 불가
  • skill-email은 실시간 조회만 하고 저장하지 않음

데이터 저장 전략

  • DB 저장 (분석용): 이메일 원본 데이터 전체 (제목, 본문, 보낸사람 등)
  • Slack Lists (보여주기용): 투자 검토용 핵심 정보만 (회사명, 대표명, 이메일 주소, IR Deck 파일)

구현 계획

Phase 1: 테이블 스키마 변경

파일: rb8001/app/state/ir_valuation_repository.py

변경 내용:

  • ir_deck_evaluations 테이블에 email_metadata JSONB 컬럼 추가 (nullable)

스키마:

ALTER TABLE ir_deck_evaluations 
ADD COLUMN email_metadata JSONB;

CREATE INDEX IF NOT EXISTS idx_ir_deck_eval_email_metadata 
ON ir_deck_evaluations USING GIN (email_metadata);

JSONB 구조 (콜드메일인 경우):

{
  "email_id": "skill-email 원본 ID",
  "subject": "이메일 제목",
  "body": "이메일 본문",
  "from_email": "보낸사람 이메일",
  "from_name": "보낸사람 이름",
  "received_at": "수신일시 (ISO 8601)"
}

참고: Slack/프론트엔드에서 업로드한 IR 자료는 이메일이 아니므로 email_metadata = NULL


Phase 2: 콜드메일 처리 시 저장 로직 추가

파일: rb8001/app/services/coldmail_processor.py

변경 내용:

  • process_coldmail() 함수에서 이메일 정보 추출
  • IR 평가 결과 저장 시 email_metadata 포함

구현 위치: coldmail_processor.py:107 (IR 분석 후)

저장 시점:

  • IR Deck 평가 결과와 함께 ir_deck_evaluations 테이블에 저장
  • 또는 별도 IRValuationRepository.create_evaluation() 호출 시 email_metadata 파라미터 추가

Phase 3: 대표 이름 추출 로직 개선

파일: rb8001/app/services/coldmail_processor.py

변경 내용:

  • 이메일 본문에서 대표 이름 추출 로직 추가 (LLM 또는 정규식)
  • 우선순위: 이메일 본문 → IR Deck PDF → From 헤더

참고: 현재는 From 헤더 우선 → IR Deck PDF 순서로 되어 있음 (최근 수정됨)


참고 문서

  • journey/troubleshooting/251014_coldmail_ir_analysis_scenario.md: 콜드메일 처리 시나리오
  • journey/troubleshooting/251206_ir_deck_system_current_status.md: IR Deck 시스템 현황
  • book/300_architecture/312_문서_작성_원칙.md: 문서 작성 원칙