서론
회사 웹 창구로 도착하는 이메일이 스팸에 섞여서 놓치는 경우가 늘고 있습니다.
원래의 문의 메일과 불필요한 메일을 구분하고 싶습니다. 렌탈 서버이지만 기존 환경에서 어떻게든 해결하고 싶다는 생각이 들었습니다.
그런 상황에서 마침 Cloudflare에서 새로운 AI 모델인 'Clef'가 출시되었기 때문에, 사쿠라 렌탈 서버 위에서 작동하는 메일 분류 시스템을 만들어 보았습니다.
전제 환경
먼저 이번 환경을 정리하겠습니다.
- DNS는 Cloudflare로 관리합니다.
- 메일 서버는 사쿠라 렌탈 서버에서 운영합니다.
- Go 언어가 설치되어 있고, 바이너리 생성이 가능합니다.
- 메일 폴더는 사용자 홈 내에 존재합니다.
- 웹 창구용 계정은 이미 있으며, 전달 주소로 사용하고 있었습니다.
- Cron으로 임의의 명령을 주기적으로 실행할 수 있습니다.
- Cloudflare Workers AI의 무료 트레이(free tier) API 키를 확보했습니다.
Cloudflare Clef란?
2026년 10월 1일에 Cloudflare에서 출시한, 회사 최초의 오픈 소스 결정 모델(Decision Model)입니다.
일반적인 생성 AI가 '글을 쓰는' 것에 초점을 맞춘다면, Clef는 '질문에 대한 확률'을 반환하는 모델입니다. 입력으로 텍스트, JSON, 이미지, 비디오 등의 '상태(state)'를 받아 정의된 질문 스키마에 대해 각 선택지의 확률(퍼센티지)을 출력합니다.
이번에 사용한 @cf/cloudflare/clef는 27B 파라미터의 멀티모달 모델이며, Workers AI 위에서 이용 가능합니다. 무료 트레이가 존재하기 때문에, 메일 트래픽이 적은 회사 환경에서는 말 그대로 '비용 0'으로 운영할 수 있습니다.
목표했던 것
해야 할 일은 간단합니다.
- 메일 디렉토리를 열어 본문을 가져옵니다.
- Cloudflare Clef에 보내서 '회사와 관련된 메일인지'를 퍼센티지로 판정받습니다.
- 판정 결과를 Subject(제목)에 추가합니다.
- 전달용 주소로 sendmail을 이용해 전송합니다.
- 렌탈 서버 내에서 모든 것을 완료합니다.
구현 과정
1. 메일 가져오기 및 분석
사쿠라 렌탈 서버에서는 메일이 사용자 홈 내의 메일 폴더에 저장되어 있습니다. Go 표준 라이브러리나 메일 파싱용 라이브러리를 사용하여, 메일 파일을 순회하며 신규 메일의 본문을 추출했습니다.
2. Cloudflare Clef 요청
Clef는 Decision API를 통해 이용합니다. 메일 본문을 state로, 질문 스키마를 정의하여 요청을 보냅니다.
이번에는 '이 메일은 당사와 관련된 문의인가?'를 0~100%의 점수로 판정받는 형태로 스키마를 설계했습니다. Workers AI의 Decision API 엔드포인트에 HTTP POST를 보내면, 퍼센티지가 포함된 판정 결과가 돌아옵니다.
3. Subject 수정 및 전달
판정 점수를 Subject의 맨 앞에 붙여서, 전달받을 주소로 sendmail을 이용해 전송합니다. 수신 측 메일 클라이언트에서는 [AI:92%]와 같은 Subject를 보면 중요도를 한눈에 알 수 있습니다.
4. Cron으로 주기적 실행
Go로 빌드한 바이너리를 Cron으로 몇 분 간격으로 실행하기만 하면 됩니다. 상시 구동 프로세스(데몬)가 필요하지 않기 때문에, 렌탈 서버의 제약 조건 내에서 충분히 작동합니다.
이 구성을 선택한 이유
렌탈 서버에는 상시 구동 프로세스를 돌릴 수 없거나, 데이터베이스를 늘리고 싶지 않은 등의 제약이 있습니다. 그래서 'Cron으로 주기적으로 시작해서 처리하고 종료하는' 가장 단순한 형태를 선택했습니다.
메일 트래픽 자체가 매우 적기 때문에, 확장성을 고려할 필요도 없습니다. 기존의 전달 계정을 그대로 활용할 수 있었던 것도 큰 포인트였습니다.
그리고 무엇보다 Cloudflare Workers AI의 무료 트레이를 사용하면, AI 추론 비용이 실질적으로 0원입니다.
운영해 본 후
Subject에 [AI:85%]나 [AI:12%] 같은 점수가 들어가면서, 수신 측에서 스팸과 실제 문의 메일을 즉시 구분할 수 있게 되었습니다. 이전에는 스팸 폴더를 자주 확인해야 했던 작업이 거의 필요 없게 되었습니다.
렌탈 서버라는 '클래식'한 환경에서도 현대의 AI API와 결합하면 충분히 실용적인 자동화가 가능하다는 것을 체감했습니다.
요약
- 사쿠라 렌탈 서버 + Go + Cloudflare Clef + Cron
- 상주 프로세스 없음, 데이터베이스 없음, 추가 비용 없음
- AI가 메일의 중요도를 자동 점수화하여 제목(Subject)에 반영
소규모 환경에서도 기존 리소스를 조합하는 것만으로도 AI 도입의 장벽은 의외로 낮습니다. Cloudflare Clef 같은 결정 모델은 '생성'이 아닌 '판정' 용도에 특화되어 있어, 이러한 업무 자동화 시나리오에 매우 적합하다고 느꼈습니다.
Discussion