Claude Code 와 Gmail 을 연동한 Discord 브리핑 봇 만들기

Claude Code 와 Gmail 을 연동한 Discord 브리핑 봇 만들기

Claude Code 와 Gmail 을 연동한 Discord 브리핑 봇 만들기

매번 메일함을 열어보기 번거로울 때 유용한 자동화

오늘 만들 것
매번 메일함을 열어보기 번거로울 때 유용한 자동화

하루에도 수십 통씩 쌓이는 이메일 중에서 중요한 알림을 골라내는 작업은 생각보다 많은 피로를 유발하기 마련입니다. 특히 결제 완료 안내나 웹서버 장애 경고 메일처럼 즉각 대응해야 하는 정보라면 실시간 파악이 필수라고 보아야 하겠습니다. 매 순간 메일함에 접속해 새로고침을 누르는 수고를 덜고, 자주 활용하는 메신저 채널로 알림을 수신하는 파이프라인을 완성하면 작업이 훨씬 경쾌해집니다.

구글 API 콘솔을 거쳐 복잡한 권한 승인 단계를 밟지 않더라도 Gmail의 IMAP 설정을 이용하면 비교적 수월하게 이메일을 불러올 수 있어요. 기존의 여러 API 연동 방식에 비해 인증 절차가 간결하여 초보자도 접근하기 쉽다는 장점이 존재합니다. 이번 가이드에서는 AI 코딩 도구인 Claude Code 의 지원을 받아 파이썬 스크립트 기반의 알림 송신기를 설계하는 전 과정을 자세히 다뤄봅니다.

구현을 위한 사전 준비 단계

구현을 위한 사전 준비 단계

자동화 시스템을 만들기 전에 몇 가지 환경 준비가 선행되어야 안전하겠지요. 기본적으로 파이썬 환경이 구성되어 있어야 하며, 코딩 어시스턴트로 Claude Code 환경이 제대로 가동되는 상태여야 막힘없이 진행할 수 있습니다. Gmail 환경설정의 IMAP 활성화 옵션을 미리 켜고 구글 계정 보안 메뉴에서 전용 앱 비밀번호를 생성해 두는 준비 작업도 필수적입니다. 알림을 수신할 Discord 메신저의 웹훅 주소 역시 미리 메모장 같은 공간에 백업해 두면 빌드 속도를 단축하기 편리합니다.

첫 번째 단계: 메일 수집을 처리하는 기본 뼈대 빌드

처음부터 대규모 코드를 일시에 생성하는 방법은 예상치 못한 버그를 야기할 확률을 키웁니다. 가장 먼저 Gmail에서 메일 목록을 올바르게 가져오는지 확인하는 기초 작업부터 단계적으로 진행하는 흐름을 추천해 드려요. 터미널 인터페이스를 통해 아래와 같은 요청 프롬프트를 작성하여 핵심 골격을 도출해 냅니다.

AI에게 보낸 프롬프트
Gmail IMAP을 사용해서 최근 메일 10개를 가져오는 파이썬 스크립트 뼈대를 만들어줘. 메일 제목, 보낸 사람, 날짜를 터미널에 출력하는 간단한 코드면 돼. imaplib 라이브러리를 쓰고 파일명은 mail_checker.py로 해줘.

안내받은 기본 소스 코드를 구동하여 사서함 내 메일들의 제목이 터미널 화면에 가지런히 출력된다면 연동의 첫 관문을 무사히 통과한 셈이지요. 이 단계에서 수신인 정보나 서버 주소가 정확히 연결되었는지 확인하는 절차를 한 번 거치는 편이 안전합니다.

두 번째 단계: 특정 핵심 단어 필터링 규칙 적용

사서함에 수신되는 온갖 이메일을 여과 없이 메신저 채널로 실시간 전송하게 되면 알림 화면이 스팸 광고성 정보로 가득 차게 됩니다. 나에게 꼭 필요한 결제나 서버 경고 정보만 골라내어 전달받을 수 있도록 필터링 규칙을 추가하는 과정이 필수적이지요. 개발 보조를 위해 아래와 같이 Claude Code 에 추가 요구사항을 제시하여 스크립트에 살을 붙여 나갑니다.

AI에게 보낸 프롬프트
mail_checker.py 코드에 Discord 웹훅 전송 기능을 추가해줘. 메일 제목에 '결제', '경고', '중요' 같은 단어가 들어있을 때만 Discord 웹훅으로 메일 정보를 전송하도록 필터링을 걸어줘. 웹훅 URL은 환경 변수에서 읽어오도록 설정해줘.

지정한 특정 단어가 제목에 담겨 있을 때에만 선별하여 처리하므로 불필요한 메일에 알림창을 빼앗길 위험이 차단됩니다. 정보 유출을 차단하기 위하여 접속용 웹훅 토큰 값을 시스템 환경 변수에 격리해 두고 호출하는 설정을 점검해 보시기 바랍니다.

세 번째 단계: 중복 전송을 차단하는 캐싱 기능 추가

여기까지 진행하면 스크립트가 실행될 때마다 기존에 보냈던 메일의 알림을 계속 반복해서 발송하는 비효율적인 양상을 보이게 되지요. 봇이 작동하는 주기마다 동일한 결제 완료 메시지를 여러 차례 연속하여 수신하지 않도록 추가적인 차단 로직을 구현해야만 합니다. 마지막으로 확인한 이메일 번호를 파일에 기록해 두고 대조하게끔 다음 요청을 시도해 봅니다.

AI에게 보낸 프롬프트
매번 스크립트를 실행할 때마다 이미 보낸 메일을 또 보내면 곤란해. 가장 최근에 확인한 메일의 ID(UID)를 로컬 파일(last_uid.txt)에 저장해두고, 그 ID보다 최신 메일만 Discord로 보내도록 중복 방지 로직을 추가해줘.

식별 기록용 텍스트 문서에 최종 수신 번호만 매번 기입해 주는 방식으로도 알림이 폭발하는 사태를 거뜬히 막는 캐시 역할을 수행하게 됩니다. 환경 변수를 셋팅한 뒤 테스트용 메일을 하나 수신함으로 발송해 보며 알림이 한 번만 원활하게 넘어오는지 직접 확인해 보세요.

자주 마주치는 문제와 예외 대처 가이드

자주 마주치는 문제와 예외 대처 가이드

Gmail 연동 과정에서 종종 발생하는 로그인 에러는 대부분 구글 계정 보안 강화 조치에서 기인합니다. 계정 인증에 실패했다는 내용의 예외 메시지가 출력된다면 2단계 인증 설정을 켜고 전용 앱 비밀번호가 코드에 올바르게 매칭되었는지 재조사해 보아야 풀립니다. 일반 접속 패스워드로는 외부 도구의 IMAP 접근이 완전히 거부된다는 점을 머릿속에 기억해 두는 것이 좋습니다.

메시지는 차질 없이 도달하지만 한글 제목 영역이 디코딩 문제로 깨져 보이는 상황이 연출되기도 하지요. 이는 전자우편 헤더의 복잡한 인코딩 방식 때문에 유발되는 현상이므로 email.header 라이브러리의 함수를 사용해 한글 문자열로 디코딩해 주면 깔끔하게 처리됩니다. 어시스턴트 창에 깨진 텍스트 사례를 첨부하여 디코딩 수정 요청을 직접 제안해 보는 방법을 권장합니다.

처음 스크립트를 올리는 시점에 기존 사서함에 누적되어 있던 엄청난 양의 메일들이 동시에 수집되는 번거로운 상황도 생기기 쉽지요. 이 경우 파일 생성 전 미리 빈 문서에 최신 메일의 고유 UID 번호를 임의로 채워두거나, 최초 구동 시에는 최근 한 건의 데이터만 캐싱하고 넘어가도록 예외 코드를 추가해 달라고 요청해 보세요.

스케줄 등록을 통한 백그라운드 자동화 구현

스크립트 작성이 일단락되었다면 이제 사람이 일일이 구동하지 않아도 주기적으로 돌 수 있도록 설정해 줄 필요가 있습니다. 윈도우 스케줄러 환경이나 맥 및 리눅스의 cron 도구를 통하여 5분 혹은 10분 단위로 감시 기능이 작동되도록 예약해 두면 편리하지요. 컴퓨터가 켜져 있는 동안 무인 상태로 동작하므로 나만의 맞춤 브리핑 서비스가 온전히 제 역할을 다하게 됩니다. 추가적으로 본문을 요약하는 거대 언어 모델 API를 접목하여 더욱 짧고 명료한 형태로 가공해 주는 요약 브리핑 단계로 기능을 늘려 나가는 발전도 시도해 보세요.

관련 검색어

  • 🔍 Claude Code 사용법
  • 🔍 Claude Code 비교
  • 🔍 Gmail 사용법
  • 🔍 Gmail 비교
  • 🔍 Discord 사용법
  • 🔍 Discord 비교

댓글 쓰기

다음 이전