별책부록 11편
별책부록 11편
AlbaFlow 봇 적용 가이드
사장님·알바생을 위한 4가지 봇 — 출근·근태·임금·노동법 자동 알림
📑 이 챕터에서 다룰 내용

AlbaFlow는 사장님이 알바생 출근·근무·임금을 관리하는 SaaS입니다. 사장님은 매장 운영에 바빠서 모든 알바생을 실시간 추적하기 어렵습니다. 봇이 24/7 모니터링하면서 중요한 항목만 알립니다.

📘 이 편에서 만들 봇 4가지
  1. 사장님 알림 봇 — 출근·지각·결근·임금 alert
  2. 알바생 보조 봇 — 출퇴근 체크인·근무 시간 조회
  3. 노동법 주의 봇 — 주 52시간·휴게시간·임금 계산 검증
  4. 매장 운영 봇 — 매출·인건비·근태 추세

TSV 봇과의 핵심 차이점

항목TSV 봇AlbaFlow 봇
분석 미디어 (객관적·중립)친근하고 신뢰감 (사업 운영 보조)
Position C베팅 X노동법 단정 X (법률 자문 X)
사용자일반 독자사장님 + 알바생 (권한 다름)
11-1 사장님 알림 봇 🔗

본질

사장님 한 명이 매장 1~5개 운영, 각 매장마다 알바생 5~20명. 매일 출근·근태·임금 변화를 실시간 추적하기는 불가능합니다. 봇이 핵심 항목만 알립니다.

알림 시점

📘 알림 분류

[즉시 알림]

  • 알바생 출근 5분 지나도 출근 없을 때 (지각)
  • 알바생 결근 (출근 시간 30분 경과)
  • 알바생 본인이 결근 신청 시
  • 임금 계산 이상 (오버타임·휴일 가산)

[일별 알림 09:00]

  • 어제 매출 + 인건비 + 마진
  • 오늘 근무 예정 알바생 명단
  • 이번 주 누적 근무시간 (주 52시간 임박 항목)

[주별 알림 — 월요일 09:00]

  • 지난 주 매장별 매출
  • 알바생별 근무시간 요약
  • 임금 정산 자료

[월별 알림 — 1일 09:00]

  • 한 달 매출 + 인건비 비율
  • 최우수 알바생 (출근율·평가)
  • 다음 달 예상 인건비

알림 형식 예시 (지각)

💻 지각 알림 예시
🚨 [지각 알림] 강남역점

알바생: 김철수 (학생 알바)
출근 예정: 09:00
현재 시간: 09:08 (8분 경과)
연락처: 010-1234-5678

[자동 액션]
✅ 알바생에게 카톡 자동 발송
   "출근 시간이 지났습니다. 빨리 와주세요!"

[권장 액션]
- 8분 이상 지나면 직접 연락 권장
- 결근 처리는 30분 후 자동 진행

[지각 추세]
- 김철수: 이번 달 3번째 지각
- 매장 평균: 1.2회 / 알바생 / 월

시스템 프롬프트

💻 시스템 프롬프트
당신은 "AlbaFlow 사장님 알림 봇"입니다.

[역할]
- 사장님이 운영하는 매장의 알바생 출근·근태 추적
- 중요한 항목만 즉시 알림 (과도한 알림 X)
- 친근하고 도움이 되도록

[톤]
- 사장님 호칭: "사장님" 또는 이름
- 신뢰감 있고 전문적
- 그러나 딱딱하지 않게

[알림 우선순위]
1. 즉시 (출근·결근·임금 이상) — Discord 알림 + 카톡 (선택)
2. 매일 09:00 (어제 종합)
3. 주별 (월요일 09:00)
4. 월별 (1일 09:00)

[★ 절대 X 항목]
- 노동법 단정 ("주 52시간 위반입니다" → "주 52시간 임박합니다, 검토 권장")
- 법률 자문 ("이 알바생 해고해도 됩니다" → "근로계약서 검토 권장")
- 임금 계산 단정 ("최저임금 위반입니다" → "최저임금 계산 다시 확인 권장")
- 알바생 평가 단정 ("이 알바생 별로입니다" → 데이터만 제공)

[권장 표현]
- "임박했습니다" / "검토 권장"
- "확인 필요" / "참고하세요"

데이터 소스 (Python)

💻 albaflow_bot/data.py
# albaflow_bot/data.py
from datetime import datetime, time, timedelta
from sqlalchemy import create_engine, text
import os

engine = create_engine(os.getenv("DATABASE_URL"))

def check_today_attendance(store_id: int) -> list:
    """오늘 출근 예정 vs 실제 체크"""
    today = datetime.now().date()

    with engine.connect() as conn:
        result = conn.execute(text("""
            SELECT
                a.id as alba_id,
                a.name,
                a.phone,
                s.start_time,
                s.end_time,
                c.checked_in_at,
                CASE
                    WHEN c.checked_in_at IS NULL
                         AND CURRENT_TIME > s.start_time + INTERVAL '5 minutes'
                    THEN 'late'
                    WHEN c.checked_in_at IS NULL
                         AND CURRENT_TIME > s.start_time + INTERVAL '30 minutes'
                    THEN 'absent'
                    WHEN c.checked_in_at IS NOT NULL
                    THEN 'on_time'
                END as status
            FROM albas a
            JOIN schedules s ON a.id = s.alba_id
            LEFT JOIN check_ins c
                ON a.id = c.alba_id AND DATE(c.checked_in_at) = :today
            WHERE s.store_id = :store_id
              AND s.work_date = :today
        """), {"store_id": store_id, "today": today})

        return [dict(row) for row in result]

def calculate_weekly_hours(alba_id: int) -> float:
    """이번 주 누적 근무시간 (주 52시간 주의)"""
    monday = datetime.now().date() - timedelta(days=datetime.now().weekday())

    with engine.connect() as conn:
        result = conn.execute(text("""
            SELECT SUM(EXTRACT(EPOCH FROM (checked_out_at - checked_in_at))/3600) as hours
            FROM check_ins
            WHERE alba_id = :alba_id
              AND checked_in_at >= :monday
        """), {"alba_id": alba_id, "monday": monday}).scalar() or 0

        return round(result, 1)

자동 카톡 발송 (선택)

알바생에게 카톡 발송 시 카카오 비즈메시지 API를 사용합니다. 사업자 인증이 필요합니다.

💻 albaflow_bot/kakao.py — 선택 항목
# albaflow_bot/kakao.py — 선택 항목
import requests

def send_kakao_alert(phone: str, template_id: str, args: dict):
    """카카오 비즈메시지 발송"""
    url = "https://kakaoapi.example.com/v1/send"

    response = requests.post(url, json={
        "phone": phone,
        "template_id": template_id,
        "template_args": args,
    }, headers={
        "Authorization": f"Bearer {os.getenv('KAKAO_BIZ_API_KEY')}"
    })

    return response.json()

# 사용 예시
send_kakao_alert(
    phone="01012345678",
    template_id="LATE_REMINDER",
    args={"name": "철수", "store": "강남역점", "minutes": 8}
)
⚠️ 카카오 비즈메시지 주의사항

카카오 비즈메시지는 사업자 등록 + 사전 승인이 필요합니다.

처음에는 Discord/Telegram만으로 시작하는 것을 권장합니다.

11-2 알바생 보조 봇 🔗

본질

알바생이 자기 정보를 빠르게 조회합니다. 출퇴근 체크인·근무시간·예정 시급·휴가 신청 등을 명령어 하나로 처리합니다.

명령어 종류

명령어기능
/checkin출근 체크
/checkout퇴근 체크
/myhours이번 달 근무시간
/mypay이번 달 예상 임금
/schedule다음 주 근무 예정
/leave휴가/결근 신청
/help도움말

알바생 응답 예시

💻 /checkin 응답 예시
[/checkin 입력]

✅ 출근 체크 완료!

매장: 강남역점
출근 시간: 09:00:32 (정시)
오늘 근무: 09:00 ~ 18:00 (9시간)
휴게: 12:00 ~ 13:00 (1시간)

[이번 주 누적]
근무시간: 24h / 40h
예상 임금: ₩240,000

수고하세요! 💪

권한 관리 — 데이터 접근 제한

⚠️ 권한 분리가 중요합니다

알바생은 자기 데이터만, 사장님은 자기 매장 데이터만 조회할 수 있어야 합니다.

💻 권한 검증 코드
# 알바생은 자기 데이터만 조회 가능
def is_authorized(alba_id: int, requested_alba_id: int) -> bool:
    return alba_id == requested_alba_id

# 사장님은 자기 매장 알바생만 조회 가능
def is_owner_authorized(owner_id: int, store_id: int) -> bool:
    with engine.connect() as conn:
        result = conn.execute(text("""
            SELECT 1 FROM stores WHERE id = :store_id AND owner_id = :owner_id
        """), {"store_id": store_id, "owner_id": owner_id}).scalar()
        return result is not None
11-3 노동법 주의 봇 🔗

본질

한국 노동법은 복잡합니다. 봇이 단정적 자문을 하면 위험합니다. 그러나 "이 항목에서는 검토가 필요합니다"라고 알려주는 것은 가능합니다. 사장님이 모르고 위반할 항목을 미리 알려줍니다.

검출 항목

📘 자동 검출 항목

[주 52시간 임박]

  • 알바생 누적 근무 50h 이상 → "주 52시간 임박, 추가 근무 검토 권장"
  • 누적 60h 이상 → "이미 주 52시간 초과, 즉시 검토 필요"

[휴게시간 주의]

  • 4시간 근무 시 30분 휴게
  • 8시간 근무 시 1시간 휴게
  • 봇이 자동 검증 → 휴게 없으면 알림

[야간·휴일 가산]

  • 22시~06시 근무 = 50% 가산
  • 일요일·법정공휴일 근무 = 50% 가산
  • 봇이 자동 계산 + 임금 명세서 항목에 표시

[최저임금 주의]

  • 2026년 한국 최저시급 (가입 시 최신 확인 필요)
  • 시급이 최저 미만 시 → 알림

[근로계약서 주의]

  • 알바생 가입 시 근로계약서 작성 여부 추적
  • 미작성 시 → 사장님에게 알림

시스템 프롬프트 — 주의 항목

💻 시스템 프롬프트
당신은 "AlbaFlow 노동법 주의 봇"입니다.

[중요 — 절대 X 항목]
- 법률 자문 (✗) — "이 항목에서 해고 가능합니다"
- 노동법 단정 (✗) — "이건 위반입니다"
- 법적 책임 (✗) — "이렇게 하시면 됩니다"

[O 항목 — 주의 + 권장]
- "검토가 필요합니다"
- "노무사 자문 권장"
- "확인이 필요한 항목입니다"
- 데이터 + 사실만 제공
- 결정은 사장님이 (또는 노무사가)

[참고 자료 제공]
- 고용노동부 공식 사이트 링크
- 노무사 협회 검색 링크
- 무료 노무 상담 항목

알림 예시 (주 52시간 임박)

⚠️ 주 52시간 임박 알림 예시
⚠️ [주 52시간 임박] 강남역점 — 김철수

이번 주 누적 근무: 50h 30m
주 52시간까지: 1h 30m 남음

[추가 근무 검토 권장]
- 다음 주 일정 조정 권장
- 또는 5인 미만 사업장 여부 확인 (예외 항목)

[참고]
- 주 52시간제: https://www.moel.go.kr/...
- 5인 미만 사업장 예외 항목: ...

[★ 봇 원칙]
이 봇은 노동법 자문이 아닙니다.
단정적 판단이 필요한 항목은 노무사 자문을 권장합니다.
11-4 매장 운영 종합 봇 🔗

본질

사장님이 매장 운영 종합을 한눈에 보는 봇입니다. 매출·인건비·근태 추세를 숫자로 정리합니다.

매일 리포트 예시

💻 매일 리포트 예시
🌅 AlbaFlow 매일 리포트 — 2026-05-09

[매출]
어제: ₩1,250,000 (+5% vs 어제)
이번 달 누적: ₩28,500,000
이번 달 목표: ₩35,000,000 (81% 달성)

[인건비]
어제: ₩320,000 (매출 대비 25.6%)
이번 달 누적: ₩7,200,000
권장 비율: 25~30%

[알바생]
어제 근무: 8명 / 8명 예정 (100% 출근)
지각: 1건 (김철수, 8분)
결근: 0건

[이번 주 누적]
- 알바생별 근무시간 (주 52시간 주의)
- 예상 임금 (정산 준비)

[알림]
⚠️ 김철수 — 주 52시간 임박 (50h)
✅ 박영희 — 우수 알바 (지각·결근 0)

시스템 프롬프트

💻 시스템 프롬프트
당신은 "AlbaFlow 매장 운영 봇"입니다.

[역할]
- 사장님에게 매장 운영 종합 정보 제공
- 의사결정에 도움이 되는 항목만 강조
- 노동법 주의 항목은 ⚠️ 강조

[톤]
- 사장님 호칭
- 경영자 관점 (매출·비용·마진)
- 알바생 관점도 균형 (불만 추세·이직 가능성)

[데이터 분석 항목]
- 매출 추세: 일별·주별·월별
- 인건비 비율: 매출 대비 (권장 25~30%)
- 알바생 추세: 출근율·지각율·이직율
- 시즌 항목: 명절·휴가철 영향
11-5 4 봇 통합 운영 🔗
💻 /home/ubuntu/albaflow-bots/ecosystem.config.js
// /home/ubuntu/albaflow-bots/ecosystem.config.js
module.exports = {
  apps: [
    {
      name: "albaflow-owner",
      script: "owner_bot/main.py",
      interpreter: "python3",
      autorestart: true,
    },
    {
      name: "albaflow-alba",
      script: "alba_bot/main.js",
      autorestart: true,
    },
    {
      name: "albaflow-labor-law",
      script: "labor_law_bot/main.py",
      interpreter: "python3",
      cron_restart: "0 0 * * *",  // 매일 자정 재시작
    },
    {
      name: "albaflow-store",
      script: "store_bot/main.py",
      interpreter: "python3",
      autorestart: true,
    },
  ],
};
11-6 AlbaFlow vs TSV 봇 비교 🔗
항목TSV 봇AlbaFlow 봇
사용자일반 독자사장님 + 알바생 (권한 다름)
분석 미디어사업 운영 보조
Position C베팅 X노동법 단정 X
알림 시점매일·발행 시즉시·매일·주별·월별
데이터발행·구독·B2B출퇴근·근무·매출
외부 통합없음카톡·SMS (선택)
11-7 검증 체크리스트 — Day 14 🔗
📘 Day 14 검증 항목
  • ☑ 4 봇 모두 안정 작동
  • ☑ 출근 알림 즉시 도달 (5분 안)
  • ☑ 노동법 주의 알림 정상 작동
  • ☑ 알바생 명령어 응답 (3초 안)
  • ☑ 일별 리포트 정상 (09:00)
  • ☑ 카톡 발송 정상 (사업자 등록 시)
  • ☑ 매장 운영 종합 정확

[★ 운영 예상]

  • 매장 1개 + 알바생 5명 = 봇 4개 안정 운영
  • 다중 매장 (5개 이상) 시 자원 검토
📌 11편 정리
  • 1️⃣ 사장님 알림 봇: 출근·지각·결근 즉시 알림 + 일·주·월별 리포트
  • 2️⃣ 알바생 보조 봇: 명령어 하나로 출퇴근 체크·근무시간·임금 조회
  • 3️⃣ 노동법 주의 봇: 주 52시간·휴게·최저임금 자동 감지 + "검토 권장"만 제공
  • 4️⃣ 매장 운영 봇: 매출·인건비·알바생 추세 매일 종합
  • 5️⃣ 핵심 원칙: 노동법 단정 X, 법률 자문 X — "검토 권장"만
  • 6️⃣ 비용: 약 $30~50/월 (Anthropic + Cloudflare + 카톡 비즈)
🎉 핵심 한 줄

AlbaFlow 봇은 사장님의 운영 시간을 절약합니다.

출근·근태·임금을 자동 추적하고, 노동법 주의 항목은 즉시 알려줍니다. TSV 봇과 다른 핵심: 노동법 단정 X, 법률 자문 X.

📘
별책부록 도우미
질문하기 OK
안녕하세요! AlbaFlow 봇 적용에 대해 무엇이든 물어보세요. 본문에서 찾아 답변해드릴게요. 👇