pharmacy-pos-qr-system/docs/실행구조.md
thug0bin a3ff69b67f feat: 알림톡 발송 로그 시스템 + 현영 표시 + 문서화
- 알림톡 발송 로그: alimtalk_logs SQLite 테이블 + DB 자동 기록
- /admin/alimtalk 페이지: 서버 로그, NHN Cloud 내역 조회, 수동 발송 테스트
- 적립일시 포맷 수정: %Y-%m-%d %H:%M (16자 초과) → %m/%d %H:%M (11자)
- POS GUI 현금영수증(현영) 표시: 청록색 볼드
- 결제수납구조.md: CD_SUNAB/PS_main/SALE_MAIN 3테이블 관계 문서
- 실행구조.md: Flask 서버 + Qt GUI 실행 가이드

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 19:28:29 +09:00

2.8 KiB

청춘약국 마일리지 시스템 — 실행 구조

실행해야 할 프로그램 (2개)

1. Flask 서버 (backend/app.py)

cd c:\Users\청춘약국\source\pharmacy-pos-qr-system
python backend/app.py
  • 포트: 7001 (0.0.0.0)
  • 외부 도메인: mile.0bin.in (→ 내부 7001 포트로 프록시)
  • 역할: 웹 서비스 전체 담당

제공하는 페이지/API

경로 설명
/ 메인 페이지
/signup 회원가입
/claim QR 적립 (폰번호 방식)
/claim/kakao/start QR 적립 (카카오 로그인)
/my-page 마이페이지
/kiosk 키오스크 대기 화면 (약국 내 태블릿)
/admin 관리자 페이지
/admin/transaction/<id> 거래 상세
/admin/user/<id> 회원 상세
/admin/search/user 회원 검색
/admin/search/product 상품 검색
/api/kiosk/trigger 키오스크 QR 트리거 (POST)
/api/kiosk/current 키오스크 현재 상태
/api/kiosk/claim 키오스크 적립 처리 (POST)

사용하는 DB

  • SQLite (backend/db/mileage.db) — 회원, 적립, QR 토큰
  • MSSQL (192.168.0.4\PM2014, DB: PM_PRES) — POS 판매 데이터 (읽기 전용)

2. Qt POS GUI (backend/gui/pos_sales_gui.py)

cd c:\Users\청춘약국\source\pharmacy-pos-qr-system
python backend/gui/pos_sales_gui.py
  • 역할: POS 판매 내역 조회 + QR 라벨 발행
  • PyQt5 기반 데스크톱 앱
  • Flask 서버와 독립적으로 실행 (별도 프로세스)

주요 기능

  • 일자별 판매 내역 조회 (SALE_MAIN + CD_SUNAB)
  • 결제수단 표시 (카드/현금/현영)
  • 할인 표시
  • QR 라벨 프린터 출력 (Zebra / POS 프린터)
  • 적립자 클릭 → 회원 적립 내역 팝업

사용하는 DB

  • MSSQL — SALE_MAIN, SALE_SUB, CD_SUNAB 조회
  • SQLite — claim_tokens, users 조회 (적립 정보)

실행 순서

1. Flask 서버 먼저 실행 (키오스크, 웹 서비스 제공)
2. Qt POS GUI 실행 (판매 내역 조회, QR 발행)

순서는 상관없으나, Flask가 먼저 떠 있어야 키오스크(mile.0bin.in/kiosk)와 웹 서비스(mile.0bin.in)가 접속 가능.


프로세스 확인

# 실행 중인 Python 프로세스 확인
tasklist /FI "IMAGENAME eq python.exe"

# 정상 상태: Python 프로세스 3개
#   - Flask 서버 (메인)
#   - Flask 서버 (debug reloader 워커)
#   - Qt POS GUI

주의사항

  • taskkill /F /IM python.exe 사용 시 Flask + GUI 모두 종료됨
  • GUI만 재시작하려면 해당 PID만 종료할 것
  • Flask 서버는 debug=True로 실행되어 코드 변경 시 자동 리로드
  • Python 경로: C:\Users\청춘약국\AppData\Local\Programs\Python\Python312\python.exe