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