채팅 내용을 인보이스로 변환하는 Chat2Invoice
요약
Chat2Invoice는 WhatsApp, Slack 등 다양한 채팅 대화 내용을 붙여넣기만 하면 인보이스 PDF로 자동 변환해주는 도구입니다. AI가 대화에서 필요한 요율, 시간, 가격 등의 정보를 추출하고 사용자가 검토할 수 있게 하며, 로컬 환경에서 작동하여 데이터 보안을 유지합니다.
핵심 포인트
- 채팅 내용을 기반으로 인보이스를 자동으로 생성합니다.
- WhatsApp, Slack 등 다양한 플랫폼의 대화를 처리 가능합니다.
- 로컬 AI 구동으로 민감한 데이터 유출 위험이 없습니다.
- 프리랜서 및 소규모 에이전시에게 매우 유용한 워크플로우 개선 도구입니다.
이 글은 Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle에 제출한 내용입니다.
제가 만든 것 (What I Built)
프리랜서라면 누구나 이 순간을 경험합니다.
클라이언트가 "수고 많으셨어요. 인보이스를 보내주실 수 있나요?"라고 말하면, 갑자기 200개의 WhatsApp 메시지를 뒤져서 요율(rate), 시간(hours), 이메일 주소, 그리고 가격이 $250에서 $300으로 바뀐 그 메시지 하나를 찾아야 합니다.
그러고는 템플릿을 열어 모든 것을 다시 타이핑하고, PDF로 내보내서 이메일을 보냅니다. 채팅에 이미 적혀 있는 내용임에도 불구하고 10분이 사라집니다.
Chat2Invoice가 이를 해결합니다. 대화 내용을 붙여넣기만 하면, 로컬 AI가 바로 전송할 수 있는 인보이스 PDF로 변환해 줍니다.
- WhatsApp, Slack, iMessage 또는 이메일 대화 내용을 붙여넣습니다 (계약서, 영수증 또는 목업을 선택적으로 첨부할 수 있습니다).
- AI가 찾아낸 내용을 검토합니다. 누락된 항목은 플래그가 지정되고, 모든 내용은 수정 가능합니다.
- 깔끔한 A4 PDF를 전송합니다. 다운로드하거나 클라이언트에게 바로 이메일로 보낼 수 있습니다.
누가 비용을 지불할까요? 자동 인보이스 생성 플랫폼 외부에서 직접 대가를 받는 모든 사람입니다: 프리랜서 디자이너, 개발자, 작가, 컨설턴트, 그리고 DM으로 협상한 후 그 DM 내용을 서류로 만들어야 하는 소규모 에이전시들이 해당됩니다.
가장 좋은 점은 채팅 내용이 절대로 기기 외부로 나갈 필요가 없다는 것입니다.
데모 (Demo)
1단계: 채팅 붙여넣기 (Paste the chat)
2단계: AI가 찾아낸 내용 검토 (Review what the AI found)
AI는 추출한 내용을 보여주고 찾지 못한 항목은 강조 표시합니다. 여기서는 채팅에서 한 필드가 발견되지 않았음을 포착했습니다.
3단계: 미리보기, 다운로드, 전송 (Preview, download, send)
Git 학습에 어려움을 겪고 있나요?
GitMission.com에서 문제를 해결하며 Git을 학습하세요.
코드
GitHub logo 0shuvo0 / chat2invoice
Chat2Invoice
클라이언트 채팅 내용을 붙여넣기 → 로컬 AI (Ollama)가 인보이스 상세 정보를 추출 → 검토/편집 → A4 PDF 생성 → 다운로드 또는 이메일 전송.
- 사용 기술 스택 (Stack): Next.js 14 (App Router) + TypeScript + Tailwind CSS, jsPDF (PDF 생성), pdfjs-dist (PDF 텍스트 추출), Inter 폰트 로컬 번들링 (@fontsource).
- 오프라인 지원: 모든 것이 로컬에서 실행됩니다. 텍스트/PDF 읽기 및 PDF 생성은 브라우저에서 이루어지며, AI는 로컬 Ollama에서 실행됩니다.
오픈 소스 AI 부분: Gemma 3를 Ollama을 통해 로컬에서 실행합니다. API 키가 필요 없고, 요청당 비용이 없으며, 중간에 서버도 없습니다. 이 앱은 127.0.0.1:11434의 Ollama와 통신하며, 여기서 "이해" 과정이 일어납니다.
스택 구성 요소:
- Next.js 14 (App Router) + TypeScript + Tailwind CSS
- 브라우저에서 인보이스 PDF를 생성하기 위한 jsPDF
- 첨부된 PDF 계약서에서 텍스트를 읽기 위한 pdfjs-dist (역시 브라우저 내 작동)
- 로컬에 번들링된 Inter 폰트 (따라서 CDN에서 아무것도 가져오지 않음)
- 선택적 "이메일로 보내기" 기능을 위한 Resend
작동 흐름:
- 입력. 채팅 내용을 붙여넣거나 "클립보드에 붙여넣기(Paste Clipboard)"를 누릅니다. 선택적 "고급 및 첨부 파일(Advanced & Attachments)" 섹션에서는 메모("Net 15, 하계 할인 10% 적용" 등)를 추가하여 채팅 내용에 덮어쓸 수 있으며, PDF/TXT 파일과 이미지를 첨부할 수 있습니다. 텍스트는 브라우저에서 추출되며, 이미지는 Gemma 3의 비전(vision) 기능으로 전송됩니다.
- 검토. 필수 필드가 누락된 경우 조치 필요(Action Needed) 아래에 표시되고, 발견된 항목은 편집 가능한 필드로 나타납니다. 선택적 추가 정보로는 할인, 현재 납부 금액, 세금 메모, 통화, 회사 이름, 결제 지침 등이 있습니다. 인보이스 ID(예:
INV-2026-OCT-13-JD2N)와 발행일은 자동 생성되며, "즉시 납부(Due Now)"는 할인액을 제외한 금액으로 기본 설정됩니다. - 준비 완료. 인보이스를 미리 보고, PDF를 다운로드하거나, 편집 가능한 메시지와 함께 클라이언트에게 보낼 수 있습니다.
저는 의도적으로 중간에 사람의 검토 지점(human checkpoint)을 두었습니다. AI가 제안하고, _사용자_가 승인합니다. 작은 로컬 모델은 가끔 메시지를 잘못 읽을 수 있으며, 인보이스는 돈이 걸린 문서이므로, 이 검토 단계는 한계라기보다는 기능입니다. 누락된 세부 정보는 지어내지 않고 플래그가 지정되어 요청됩니다.
직접 실행하는 것은 몇 분이면 충분합니다. Ollama로 모델을 가져온 다음, .env.local 파일을 생성하세요:
OLLAMA_AI_MODEL=gemma3:latest
OLLAMA_HOST=http://127.0.0.1:11434
...
RESEND_SENDER_EMAIL은 Resend 계정에서 검증된 도메인에 있어야 합니다. 이 두 줄을 건너뛰면 앱이 단순히 이메일 섹션을 숨기므로, 다른 모든 기능은 완전히 오프라인으로 작동합니다.
오픈 혁신(Open Innovation)이란 왜 중요한가요?
클라이언트와의 채팅 기록은 프리랜서가 소유한 가장 민감한 텍스트 중 일부입니다. 여기에는 실명, 이메일 주소, 요율, 프로젝트 세부 정보, 그리고 때로는 NDA(비밀 유지 계약)의 보호를 받는 내용이 포함됩니다. 단순히 PDF 파일을 얻기 위해 이를 폐쇄형 클라우드 API에 붙여넣는 것은 위험한 거래입니다.
오픈 가중치 모델(Open-weight models)은 이 판도를 바꿨습니다:
- 아키텍처 기반 프라이버시(Privacy by architecture). 채팅 내용은 사용자의 자체 장치에서 Gemma를 통해 처리됩니다. 저장할 서버가 없기 때문에 "저장하지 않겠다고 약속합니다"라는 말이 필요 없습니다.
- 운영 비용이 들지 않습니다. 토큰, 구독료, 사용 제한이 전혀 없습니다. 부업을 위한 도구가 그 부업의 수입을 깎아내려서는 안 됩니다.
- 오프라인 작동 가능. 텍스트 추출, AI 처리, PDF 생성 모두 로컬에서 이루어집니다. 인터넷 연결이 필요한 것은 선택적인 이메일 단계뿐입니다.
- 종속성 없음(No lock-in). 모델은 단 하나의 환경 변수(
OLLAMA_AI_MODEL)로 관리됩니다. 다음 달에 더 나은 오픈 모델이 등장하더라도, 가격 변경이나 사용 중단 걱정 없이 한 줄의 코드로 교체할 수 있습니다.
폐쇄형 API가 추출 자체는 할 수 있겠지만, 이 도구를 사용하는 사람에게 가장 중요한 약속—클라이언트와의 대화 내용이 절대 노트북을 벗어나지 않는다—를 해줄 수는 없습니다.
저의 첫 사용자
대학 졸업반에 재학 중이며 학업과 프리랜서 작업을 동시에 관리하느라 매우 바쁜 제 친구가 있습니다. 이 도구는 그에게 매달 몇 시간을 절약해 줄 것입니다.
수상 부문
- Gemma 활용 최우수: Gemma 3은 Ollama를 통해 로컬에서 실행되며, 영수증 및 목업에 대한 텍스트 추출과 이미지 이해 기능을 모두 처리합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기



