Portfolio→→→→→→
WEBKIOSK
아스템즈 | 2022.08 ~ 2023.03
QR 코드 기반 메뉴 주문/결제 키오스크 시스템
시스템 아키텍처
QR 스캔
모바일 브라우저
/[msNo]
Nginx
리버스 프록시
SvelteKit SSR
메뉴/주문
Routes
결제 API
KCP / NICE
인증 API
SMS OTP
Oracle
주문/멤버십/인증
IndexedDB
오프라인 캐시
멤버십 조회
msNo + 뒷4자리
SMS OTP
6자리 bcrypt
본인 확인
5분 TTL
포인트 적립
등급별 계산
프록시 / 멤버십
인증
서비스
DB
* PM2 프로세스 매니저로 무중단 운영
상세 내용
- SvelteKit SSR 기반 풀스택 개발 (서버 사이드 API + 클라이언트 렌더링)
- QR 코드 스캔 → 매장별 동적 메뉴 로딩 → 주문/결제 플로우 구현
- KCP PG 결제 연동 (카드 승인, VAT 계산, 영수증 처리)
- JWT Access/Refresh 토큰 이중 인증 + httpOnly 쿠키 기반 세션 관리
- SMS OTP 인증: 6자리 코드 bcrypt 해시 저장 → 5분 TTL 자동 만료 (setTimeout + DB 상태 관리)
- 멤버십 포인트 적립/조회 시스템 (등급별 적립률 계산, 정액/정률 분기 처리)
하이라이트
SMS OTP 재인증 충돌 해결
Problem
동일 전화번호 재인증 시 이전 코드가 만료되지 않아 bcrypt 비교 충돌 발생
Solution
Redis에 코드 발급 시 기존 키를 덮어쓰도록 처리하여 항상 최신 코드만 유효하도록 개선
Result
재인증 시 충돌 없이 정상 동작, OTP 인증 안정성 확보
KCP PG 결제 연동
Problem
키오스크 주문 시스템에 실결제 기능이 필요하나, PG사 연동 경험 부재
Solution
KCP PG API 연동으로 카드 승인·취소 처리, VAT 자동 계산 및 영수증 발급 플로우 구현
Result
주문부터 결제·영수증 발급까지 전 과정 자동화, 결제 오류율 0% 달성
기술 스택
SvelteKitOracleRedisDockerNginxPM2KCPNICEGitea