현장 작업자용 PWA(설치형 모바일 웹앱)와 통합 관리자 웹을 단일 Next.js 15 App Router 코드베이스로 분리·운영하는 시설 점검 SaaS 플랫폼을 실제 구축·납품했습니다. 작업자는 모바일에서 부스·재떨이를 QR로 식별하고 15항목 체크리스트와 현장 사진으로 점검을 기록하며, 관리자는 Kakao Maps 기반 통합 대시보드로 전국 자산을 실시간 모니터링하고 작업자·점검 이력·감사 로그를 한 화면에서 관리합니다. 운영 시스템 구조는 흡연부스에 한정되지 않고, 시설·자산 관리·현장 작업자 SaaS·감사·QA 관제 등 다양한 도메인에 동일한 골격으로 응용할 수 있도록 설계했습니다.
작업 범위
주요 업무







모든 테이블에 RLS 정책을 적용해 클라이언트 권한 검사 누락 시에도 DB가 자동 차단하는 다중 방어선을 구축했습니다.
Serwist Service Worker + IndexedDB로 점검 데이터를 큐에 저장하고 네트워크 복구 시 retry·중복 검증 로직으로 동기화 정확성을 확보했습니다.
계정·배정·자산 변경이 발생할 때마다 audit_logs에 자동 기록하여 행위자·시각·메타 정보까지 추적 가능한 컴플라이언스 환경을 마련했습니다.
도메인 의존성을 최소화한 자산·작업자·이력·감사 추상 레이어로 시설·매장·물류·이벤트·QA 감사 등으로 확장 가능한 운영 SaaS 골격을 확보했습니다.
Kakao Maps 위에 전체 자산을 마커로 표시하고, KPI 카드·주간 점검 추이 차트·최근 점검 테이블을 한 화면에 통합한 관리자 메인 대시보드를 구현했습니다.


부스·재떨이 현장 자산을 등록·수정·재배정하고, 각 자산마다 고유 QR 토큰을 발급해 작업자가 모바일 카메라 스캔으로 즉시 식별하도록 구현했습니다.


Serwist + Web App Manifest로 PWA를 구현해 설치·오프라인 큐·푸시를 지원하고, 통신 두절 현장에서도 점검을 임시 저장 후 복구 시 자동 동기화합니다.


작업자·자산·기간·상태로 점검 이력을 통합 조회하고, 각 점검의 체크리스트·메모·현장 사진을 사이드패널 라이트박스로 검토하도록 구현했습니다.


기획·디자인·기능 정의서를 기반으로 데이터 모델 10여 개 테이블·RLS 정책·API 명세를 설계하고 Supabase 마이그레이션 SQL로 코드화하여 버전 관리했습니다.
Supabase Auth와 RLS 다중 역할(ADMIN·REGION_ADMIN·WORKER) 권한 시스템을 적용하고, 부스·재떨이·작업자 CRUD 화면과 통합 대시보드를 구현했습니다.
Serwist Service Worker 기반 PWA 설치, IndexedDB 오프라인 큐, VAPID Web Push 알림, 15항목 체크리스트 입력과 현장 사진 업로드 흐름을 구현했습니다. 전체 부스를 지도에 마커로 시각화하고, audit_logs 자동 기록·사이드패널 점검 이력 조회·사진 라이트박스 갤러리를 구현했습니다.
Playwright e2e와 vitest 통합 테스트, GitHub Actions Vercel 자동 배포 파이프라인, Sentry 모니터링을 구성하고 클라이언트 교육·소스코드 인계까지 완료했습니다.
다양한 도메인 응용