2026년 2월 8일 | 헌금 자동화 프로젝트 일지


TL;DR (바쁜 분들을 위해)

오늘 배운 핵심 3가지:

  1. OCR은 바보가 아니라 건망증 - 같은 실수를 반복하니까 기억해두자
  2. 하나로 다 해결하려 하지 마 - 용도별로 분리하면 실수가 없다
  3. 문서는 점진적으로 고치면 망한다 - 가끔은 싹 다 새로 써라

인사이트 #1: AI도 "학습"이 필요하다

문제: 매주 같은 실수를 반복하는 OCR

고민우 → 고민수 (매번...)
김기분 → 김귀분 (또?)
홍석경 → 홍석정 (이번에도!)

손글씨 인식이란 게 원래 완벽하지 않다. 하지만 매번 같은 사람 이름을 틀리는 건 좀 억울하다.

해결: correction_history.json 탄생

{
  "corrections": {
    "고민우": "고민수",
    "홍석경": "홍석정"
  },
  "couple_corrections": {
    "고민수.전혜진": "고민수,권혜진"
  }
}

이제 한 번 수정하면 영원히 기억한다. 마치 스펠체커가 "Add to Dictionary" 하듯이.

핵심 패턴: 사용자가 수정한 내용 → 다음 회차 학습 데이터

기계학습의 피드백 루프를 JSON 파일 하나로 구현한 셈이다.


인사이트 #2: 프라이버시와 편의성은 동시에 잡을 수 있다

문제: 이메일 받는 사람마다 원하는 정보가 다르다

수신자 원하는 정보
담임목사님 누가 헌금했는지만 (금액 필요 없음)
회계담당자 모든 정보 필요 (Excel로!)

매번 두 개의 파일을 만들어서 따로 보내야 하나?

해결: 이메일 프리셋 시스템

/close-offering 0208  # 한 번 실행으로 둘 다 전송!

내부적으로:

  • general: 개인 이름만, 금액 제외, PDF → 목회용
  • finance: 모든 정보, Excel → 회계용

핵심 패턴: "기본값은 모두 전송"

사람은 잊어버린다. 시스템이 챙겨주면 실수가 없다.


인사이트 #3: 부부 이름 표기의 함정

문제: 점(.)이냐 쉼표(,)냐

OCR 결과물:

고민수.권혜진  (점으로 나옴)
최정호,박경애  (쉼표로 나옴)

회계 시스템이 인식하는 형식:

고민수,권혜진  (쉼표만 인식!)

해결: 입력은 관대하게, 출력은 엄격하게

# 검색할 때: 점이든 쉼표든 통일
name.replace(",", ".")  # 조회용

# 저장할 때: 항상 쉼표
return corrected_name.replace(".", ",")  # 출력용

핵심 패턴: Postel의 법칙

"Be conservative in what you send, be liberal in what you accept"

  • 받을 땐 유연하게, 내보낼 땐 규격대로

인사이트 #4: 단체헌금의 이름은 "무명"이 아니다

문제

// 이렇게 하면 회계 분류가 꼬인다
{"name": "무명", "category": "장년부주일", "amount": 271000}

해결

// 단체헌금은 카테고리명 = 이름
{"name": "장년부주일", "category": "장년부주일", "amount": 271000}

도메인 지식: 교회 회계 시스템에서 단체 헌금은 "누가"가 아니라 "어떤 그룹이" 냈는지가 중요하다.

개인 익명과 단체 익명은 다르다!


인사이트 #5: 문서는 점진적으로 썩는다

문제: README.md의 상태

# 2달 전 작성
템플릿 파일: upload_sample.xlsx  ← 더 이상 안 씀

# 1달 전 추가
마감 기능 일부 설명  ← 절반만 맞음

# 오늘 상태
이메일 기능? 언급 없음  ← 이미 구현됨

점진적 수정의 함정:

  • 한 줄 고치고
  • 다른 줄 추가하고
  • 예전 내용은 그대로 두고...

어느새 문서 전체가 현실과 동떨어진 상태가 된다.

해결: 주기적 전면 재작성

# 오늘 한 일
README.md 전체 삭제 후 7개 섹션 새로 작성:
1. Overview
2. Dependencies
3. Folder Structure
4. Workflow
5. CLI Usage
6. Development
7. Future

핵심 패턴: "Ground Truth 리셋"

문서가 3번 이상 패치되면, 새로 쓰는 게 더 빠르다.


오늘의 자동화 후보 (Future)

나중에 시간 나면 해볼 것들:

  1. 자동 학습 모드: 사용자가 이름 수정하면 correction_history.json에 자동 추가
  2. 쉼표/점 검증: correction_history에 점(.)이 들어가면 경고

오늘의 숫자

항목 수치
처리한 헌금 건수 71건
총 금액 10,033,000원
새로 추가한 교인 22명
OCR 보정 패턴 8개
기록한 인사이트 16개

마무리: 오늘의 한 줄

"사람이 반복하는 건 시스템이 기억하게 하자"

매주 같은 실수를 수정하고, 같은 이메일을 두 번 보내고, 같은 문서를 고치는 건 사람이 할 일이 아니다.

오늘 만든 시스템 덕분에 다음 주부터는:

  • OCR 실수 → 자동 교정
  • 이메일 → 한 번에 모두 전송
  • 문서 → 최신 상태 유지

인간은 창의적인 일에, 반복은 컴퓨터에게.


Written with Claude Code