개발자 일기/좌충우돌 주니어 개발자 도전기

[ChatGPT 자동 감정 분석 플러그인 개발기]

parklog 2025. 4. 15. 12:03

■ 프로젝트 개요
로컬 폴더(C:\Users\user\Desktop\out)에 저장된 .txt 파일을 자동으로 읽고, 해당 내용을 ChatGPT 입력창에 삽입한 후 “이 글의 감정을 분석해줘”라는 문장을 전송하는 크롬 확장 기반 자동화 시스템을 구축했습니다.

■ 디렉토리 구성
emotion_plugin/

  • background.js: 백그라운드에서 Native 연결 및 입력창 조작
  • popup.html: 버튼 UI
  • popup.js: 버튼 클릭 시 메시지 전송
  • manifest.json: 크롬 확장 메타 정보

native_host/

  • emotion_host.py: 로컬 파일 읽어 Chrome에 전송
  • emotion_host_manifest.json: Native Messaging용 manifest

■ 주요 구성 요소

  • Chrome Extension에서 Native Messaging을 호출해 Python 스크립트 실행
  • Python에서 로컬 파일을 읽어 결과를 stdout으로 전송
  • 크롬 확장 background.js가 메시지를 수신해 ChatGPT 입력창에 삽입 후 자동 클릭

■ 문제 해결 히스토리

  • Native host 인식 불가 → path 이스케이프(\) 및 .json 확장자 확인
  • Chrome이 manifest를 무시함 → Windows 레지스트리 수동 등록
  • 로그 미출력 → emotion_log.txt, env_debug.txt 생성 코드 추가
  • 확장 ID 오등록 → chrome://extensions에서 정확히 복사
  • 경로 오류 → chrome://version에서 User Data 경로 확인

■ 레지스트리 등록
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Google\Chrome\NativeMessagingHosts\com.user.emotion_host]
@="C:\Users\user\AppData\Local\Google\Chrome\User Data\NativeMessagingHosts\emotion_host_manifest.json"

■ 테스트 시나리오

  1. out 폴더에 .txt 파일 생성
  2. ChatGPT 열기
  3. 플러그인 버튼 클릭
  4. 텍스트가 자동으로 입력창에 삽입됨
  5. 자동 전송
  6. emotion_log.txt 생성 여부 확인

■ 향후 확장 계획

  • 분석 결과를 JSON/DB로 저장
  • Threads 글 자동 업로드와 연동
  • 감정 기반 콘텐츠 추천 기능 연결
  • Firefox 확장 호환성 확보