NestPay 관리자 콘솔 — 로그인부터 메뉴별 사용법·핵심 업무 절차까지
이 매뉴얼의 범위
NestPay 관리자 콘솔(백오피스)의 실제 화면과 조작 방법을 정리한 운영자용 문서입니다. 본문의 메뉴 이름·화면 경로(#/…)·상태값은 모두 배포된 관리자 앱의 실제 코드(apps/admin/js/main.js, apps/admin/js/pages/*.js)와 서버 코드에서 확인한 값입니다. 외부기관 연동(휴대폰 본인인증·계좌 실명조회·1원 인증·펌뱅킹 이체·FCM 폰 푸시)은 계약 전 스텁(연동 자리만 마련) 상태이며, 관련 화면에 그 사실을 함께 표기했습니다.
관리자 콘솔은 아이디·비밀번호(1단계)와 OTP 일회용 번호(2단계)를 모두 통과해야 들어갈 수 있는 2단계 로그인 구조입니다. 여기에 더해 접속 장소(IP)까지 제한합니다.
| 단계 | 화면 | 하는 일 |
|---|---|---|
| 1단계 | 아이디 · 비밀번호 | 관리자 아이디와 비밀번호를 넣고 [다음]을 누릅니다. 서버가 비밀번호를 확인한 뒤 "다음 할 일"(OTP 등록 / OTP 입력)을 알려 줍니다. |
| 2단계 (최초 1회) | OTP 등록 | 처음 로그인하는 계정은 이 화면에서 인증 앱(구글 OTP 등)을 등록합니다. 화면의 QR 코드를 인증 앱으로 찍거나, QR 아래의 열쇠(시크릿) 글자를 손으로 입력한 뒤, 인증 앱에 뜬 6자리를 넣고 [등록하고 로그인]을 누릅니다. |
| 2단계 (평상시) | OTP 입력 | 이미 등록을 마친 계정은 인증 앱에 표시된 6자리 숫자만 넣고 [로그인]을 누릅니다. |
잘못 눌러 되돌아가려면 [처음으로]로 1단계(아이디·비밀번호)로 돌아갑니다. 로그인 시도는 아이디 기준(1단계)·IP 기준(OTP 확인)으로 무차별 대입이 차단됩니다(이용제한 정책). 발급된 출입증(토큰)은 브라우저에 보관되며, 우측 상단 [로그아웃]으로 지울 수 있습니다.
관리자 API(/api/admin/**)는 미리 등록해 둔 IP(사무실 등)에서 온 요청만 통과시키고, 그 밖의 곳에서 온 요청은 아이디·비밀번호를 보기도 전에 거부(403)합니다. 관리자 화면은 권한이 크기 때문에 아이디·비밀번호에 더해 "장소"까지 제한하는 방식입니다.
주의: 허용 IP 를 잘못 등록·삭제하면 본인도 접속이 막힐 수 있습니다. 반드시 현재 접속 중인 IP 가 목록에 남는지 확인하세요.
NestPay 관리자에는 root/일반 같은 등급 구분이 없습니다. 모든 관리자가 모든 메뉴에 접근하고, 등록·수정·삭제·초기화·정책 변경을 동일하게 할 수 있습니다(서버에서도 동일하게 처리). 대신 모든 조치는 감사 기록에 남아 "누가 언제 무엇을 했는지" 추적됩니다.
왼쪽 사이드바에 메뉴가 7개 그룹으로 묶여 있습니다. 그룹 제목을 누르면 접었다 펼 수 있고(접힘 상태는 브라우저에 기억됨), 지금 보고 있는 화면이 든 그룹은 자동으로 펼쳐집니다. 상단 헤더에는 현재 화면 이름과 로그인한 관리자 이름·로그아웃 버튼이 있습니다.
회원은 수만 명, 매장은 수천 개 규모라 목록 화면은 검색·조회 중심이며, 상세 보기·조치는 이름/상호를 눌러 독립 상세 페이지(주소에 번호가 붙는 #/members/123 형태)에서 처리합니다.
| 그룹 | 메뉴 (경로) |
|---|---|
| 현황 | 대시보드 #/dashboard |
| 고객 | 회원 관리 #/members · 카드 관리 #/cards · 매장 관리 #/merchants · PG 신청 #/pg-applications · PG 결제요청 #/pg-orders · 탈퇴 신청 #/closures |
| 거래 | 거래 관리 #/transactions · 미매칭 입금 #/unmatched · 입금통장 #/deposit-accounts · 선물 내역 #/gifts · 정산 조회 #/settlements · 정산통장 승인 #/settle-accounts |
| 위험 관리 | FDS 경보 #/fds-alerts · FDS 룰 #/fds-rules · 이용제한 #/rate-limits |
| 콘텐츠·고객지원 | 공지사항 #/notices · 이벤트 #/events · 배너 #/banners · FAQ #/faqs · 1:1 문의 #/inquiries · 파일·이미지 #/files · 약관·방침 #/policy-docs · 푸시 발송 #/push |
| 운영 | 정책 관리 #/policies · 알림 설정 #/notification-settings · 푸시 설정 #/push-settings · 앱 게이트 #/app-gate |
| 관리자 관리 | 관리자 계정 #/admins · 감사 기록 #/audits |
각 화면 상단에는 접었다 펼 수 있는 안내 패널이 붙어 있어, 그 화면에서 무엇을 할 수 있는지·주의점을 바로 확인할 수 있습니다.
#/dashboard목적 — 관리자가 매일 봐야 하는 운영 업무를 위에서 아래로 우선순위 순으로 한 화면에 모아 보여 줍니다. 데이터는 서버 한 곳(GET /admin/stats/ops)에서 한 번에 받아 옵니다.
구성
| 묶음 | 내용 |
|---|---|
| 처리 대기 | 지금 확인·조치가 필요한 항목 — CS 문의(답변 대기) · 미매칭 입금 · 출금 대기 · PG 신청 · 매장 심사 · 탈퇴 신청. 건수가 있으면 주황으로 강조되고, 카드를 누르면 해당 관리 화면으로 바로 이동합니다. |
| 오늘 흐름 | 오늘 확정된 입금(충전)·출금·결제의 건수/금액과, 매장에 지급할 정산 예정 잔액. |
| 오류 모니터링 (최근 24시간) | API 호출 오류(외부기관 응답 오류 HTTP 400+) · 웹훅 발송 실패(재시도 소진) · 시스템 오류(ERROR·CRITICAL). 0이면 정상(초록), 숫자가 오르면 빨강으로 강조됩니다. |
주의 — 오류 모니터링 숫자가 오르면 원인을 확인하세요. 처리 대기 건은 방치하지 말고 해당 화면으로 이동해 처리합니다.
#/members목적 — 회원(users)을 이름·아이디로 검색하고 상태별로 거르는 "찾기 전용" 화면입니다. 조작 — 상단 검색어(이름/아이디)+상태 필터(정상/정지/탈퇴)로 조회, [+ 회원 등록]으로 신규 회원을 본인인증 대기(PENDING) 상태로 사전 생성(아이디·초기 비밀번호·임시 이름·휴대폰). 이름을 누르면 회원 상세로 이동합니다.
주의 — 이름·휴대폰·인증계좌는 개인정보 보호를 위해 가운데를 가려(마스킹) 보여 줍니다(서버가 복호화·마스킹을 끝낸 값만 내려줌). 사전 생성한 회원은 최초 로그인 후 앱에서 휴대폰 본인인증을 마쳐야 서비스를 이용할 수 있습니다(휴대폰 본인인증은 외부연동 스텁).
#/members/{번호}목적 — 한 회원의 정보·보유 카드·거래를 보고 필요한 조치를 처리합니다. 주요 조작:
| 조치 | 설명 | 사유 입력 |
|---|---|---|
| 정지 / 정지 해제 | 정지(SUSPENDED)하면 그 회원은 결제·충전·출금이 막힙니다. | 정지 시 필수 |
| 비밀번호 초기화 | 임시 비밀번호를 발급해 팝업으로 표시 → 회원에게 전달(회원은 로그인 후 변경). | 확인 창 |
| 인증계좌 삭제 | 활성 인증계좌를 해지(회원은 1원 인증으로 재등록 필요). | 필수 |
| 푸시 보내기 | 이 회원에게만 제목·내용을 넣어 개별 푸시 발송. | - |
| 로그인 수단 | 간편 PIN 잠금 해제·삭제(재설정 유도), 패스키(지문/얼굴) 삭제, 앱 기기 현황 확인(동시 1기기 정책). | 삭제류 필수 |
이 밖에 보유 카드(잔액과 유상/무상 포인트), 연결계좌 변경 이력(사용중 1개 + 변경 시 옛 계좌는 해지로 보존), 거래 내역(충전·결제·출금·선물, 받은 선물 포함)을 함께 봅니다. 모든 조치는 감사 기록에 남습니다.
#/cards목적 — 발급된 모든 카드를 검색·조회합니다(회원 이름·아이디·카드번호). 포인트 구분 — 잔액을 유상(충전)/무상(적립)으로 나눠 보여 줍니다(만료 전 잔여 기준). 대표 카드는 번호 옆 ★로 표시됩니다. 회원 이름을 누르면 그 회원 상세로 이동합니다.
민감정보 열람 — 카드번호는 목록에서 마스킹되며, 행의 [열람] 버튼으로 사유를 입력해야 전체 번호·CVC 를 단건으로 볼 수 있습니다. 이 열람은 개인정보 열람 기록(감사 장부)에 남습니다("이 열람은 기록되었습니다" 안내).
#/merchants목적 — 매장(가맹점)을 상호·사업자번호·대표자로 검색하는 "찾기 전용" 화면입니다. 조작 — 상태 필터(심사중/보완 대기/정상/반려/정지/해지), [+ 매장 등록]으로 심사대기(PENDING) 매장을 매장앱 로그인 계정과 함께 생성. 상호를 누르면 매장 상세로 이동합니다.
정상(ACTIVE) 매장만 결제·정산이 동작합니다.
#/merchants/{번호}목적 — 한 페이지에서 ① 기본 정보·심사 조치, ② 필수 서류, ③ PG 연동 심사, ④ 결제 내역을 모두 처리합니다.
| 영역 | 할 수 있는 일 |
|---|---|
| ① 심사 조치 | 상태에 따라 승인(정상 영업 가능)·반려(사유)·보충요청(사유)·정지(사유)·정지 해제 버튼이 나타납니다. 비밀번호 초기화(임시 비밀번호 발급)도 가능합니다. |
| ② 필수 서류 | 요구할 서류 추가(예: 사업자등록증) → 매장이 제출 → 관리자가 파일 업로드/다시 업로드·내려받기·삭제. 요구된 서류가 전부 제출되어야 승인할 수 있습니다. |
| ③ PG 연동 심사 | 매장코드·상태·모드(샌드박스/라이브)·테스트 3종(결제생성·웹훅·상태조회) 확인. 신청(REQUESTED) 건은 연동 승인/연동 반려. 매장 화이트IP는 신청 건별로 승인/반려(승인된 IP 가 없으면 open API 호출이 거부됨). |
| ④ 결제 내역 | 이 매장의 결제·취소·정산 지급 거래를 유형 필터·페이지로 조회. |
#/pg-applications목적 — 전 매장의 PG(결제대행) 연동 신청과 진행 단계를 한눈에 보는 대시보드입니다. 진행은 신청 → 승인 → 테스트(샌드박스) → 라이브 4단계이며, 각 행에 현재 단계 배지(예: "2/4 승인")와 테스트 3종 통과 표시가 나옵니다. 조작 — 승인 + 샌드박스 3종 테스트를 모두 통과한 매장만 [라이브 전환] 버튼이 열립니다(설정 실수로 실서비스가 열리는 것을 방지). 그 외 실제 조치(승인/반려, 발급키·화이트IP)는 각 행의 [매장 상세] PG 패널에서 합니다.
#/pg-orders목적 — 매장이 PG 오픈 API 로 만든 결제요청(주문)을 전부 조회합니다. 상태: 대기(미결제) → 결제완료, 유효시간 경과 시 만료, 매장이 취소하면 취소/환불. 유효시간은 정책의 PG_ORDER_TTL_MINUTES(기본 5분)를 따릅니다. 결제완료 건은 거래(원장) 번호로 연결됩니다.
실제 잔액 이동(결제·환불)은 거래 관리(원장)에 단일 원장으로 기록되며, 이 화면은 결제요청 단위로만 봅니다.
#/closures목적 — 회원이 앱에서 낸 탈퇴 신청을 확인하고 처리합니다. 기본은 대기(PENDING) 건만 보여 줍니다. 조작 — 체크박스로 여러 건을 골라 [선택 승인] / [선택 반려]로 한꺼번에 처리(헤더 체크박스로 전체 선택).
★ 승인 전 반드시 확인 — 승인하면 그 회원은 즉시 탈퇴(WITHDRAWN) 처리되고 카드가 정지되며, 남아 있던 보유 포인트가 소멸됩니다. 되돌릴 수 없습니다. 승인 확인 창에 소멸 예정 포인트 합계가 함께 표시됩니다.
#/transactions목적 — 모든 돈 이동을 담는 하나의 원장(transactions)을 조회하는 화면입니다(발주사 요청: 단일 원장 관리). 결제·PG·정산·입출금·선물이 전부 여기에 기록됩니다. 조작 — 상단 빠른 분류 칩(전체·결제·충전·출금·정산·선물·취소·조정)으로 자주 보는 묶음을 한 번에 거르고, 거래번호·회원·매장 검색과 상태 필터를 함께 씁니다. 세부 유형(QR결제·PG결제·정산지급 등)은 우리말로 풀어 보여 줍니다.
수정 불가 — 원장은 추가만 되는(append-only) 장부라 여기서 직접 고치지 않습니다. 취소·환불·정산은 각 업무 화면에서 처리하면 이 원장에 분개로 남습니다.
#/unmatched목적 — 주인을 못 찾은 입금(입금자 코드 불일치 등)을 관리자 재량으로 처리합니다(장부 밖 돈 없음 원칙). 조작(대기 건에만 표시):
#/deposit-accounts목적 — 사용자가 무통장 입금으로 충전할 때 앱 충전 화면에 안내되는 회사 수납 계좌를 관리합니다. 조작 — [+ 계좌 등록](은행·계좌번호·예금주·이름표·노출 순서), 행별 노출/숨김 전환·삭제. 노출(ACTIVE) 계좌만 앱에 보이며, 여러 개면 순서대로 안내됩니다.
★ 주의 — 계좌번호를 잘못 넣으면 사용자가 엉뚱한 곳으로 입금할 수 있습니다. 등록하면 바로 노출되므로 계좌번호를 반드시 다시 확인하세요.
#/gifts목적 — 회원 간 선물(GIFT) 거래 전체를 조회하는 화면입니다(조회 전용). 방식(직접/링크/회수 반환/만료 반환), 보낸 회원 → 받는 회원, 금액, 상태(완료·수령 대기·회수됨·실패), 보낸/수령 시각을 봅니다. 이름을 누르면 회원 상세로 이동합니다.
받는 회원 칸이 비어 있으면 링크형 선물이 아직 수령 전이라는 뜻입니다.
#/settlements목적 — 매장 월 정산서(마감본)를 월·검색·페이징으로 봅니다(판매·취소·공급가액·부가세·수수료·지급액·마감잔액). 조작 — 월(YYYYMM)과 매장 검색으로 조회, [마감(재계산)] 버튼으로 입력한 달의 정산서를 다시 계산해 채웁니다. 같은 달을 여러 번 눌러도 값이 통째로 다시 계산되어 안전합니다(멱등).
실제 지급 시점(대기일·실행시각)은 정책의 "출금·정산 실행 정책"을 따르고, 정산통장은 정산통장 승인에서 승인된 것만 지급됩니다.
#/settle-accounts목적 — 매장이 계좌 실명확인 + 1원 인증을 마친 정산통장을 최종 승인/반려합니다. 승인(ACTIVE)된 통장으로만 정산(출금)이 나갑니다. 통장 예금주가 사업자/대표자와 맞는지 확인하고 승인하세요. 정보가 맞지 않으면 반려(매장은 다시 인증·신청).
계좌 실명조회·1원 인증은 외부연동 스텁입니다.
#/fds-alerts목적 — 이상거래 탐지에 걸린 건을 처리합니다. 처음에는 미처리 건부터 보여 줍니다(업무 큐). 조작 — 미처리 건은 [검토]·[조치]·[무혐의] 중 하나로 처리하며 처리 의견 입력이 필수입니다(감사 기록). 상단 [지금 탐지]로 켜진 룰을 즉시 한 번 돌릴 수 있고, 같은 주체의 미처리 경보가 이미 있으면 중복으로 쌓지 않습니다(여러 번 눌러도 안전).
상태 흐름: 미처리 → 검토됨 → 조치됨, 또는 무혐의(오탐). 오탐이 잦으면 FDS 룰에서 수치를 조정합니다.
#/fds-rules목적 — 이상거래 탐지 룰 8종의 수치(JSON)·동작·켬끔을 조정합니다. 값을 바꾸면 배포 없이 바로 다음 탐지부터 적용됩니다. 동작 — 차단(거래 자체 막음)·보류(일단 잡아 둠)·경보(통과시키되 경보만)·관찰만(기록만). 조작 — 각 행에서 이름·수치·동작·켬끔을 고치고 [저장].
주의 — 수치(JSON)는 적힌 예시 형식은 그대로 두고 숫자만 바꾸세요(형식이 깨지면 그 룰이 동작하지 않습니다). 처음엔 경보/관찰로 두고 오탐이 없는지 지켜본 뒤 차단으로 올리는 것을 권장합니다.
#/rate-limits목적 — 로그인·가입·출금 등 민감한 동작의 호출 빈도 제한(무차별 시도 차단)을 조정합니다. 조작 — 각 동작 키마다 창(초)·최대 횟수·기준(IP/회원)·켬끔을 고치고 [저장]. "정한 초(창) 동안 이 횟수를 넘으면 잠시 막음"이라는 뜻이며, 바꾸면 바로 다음 요청부터 적용됩니다.
주의 — 너무 빡빡하면 정상 사용자도 막히니 실제 사용 패턴을 보며 조절하세요.
공통 — 공지·이벤트·배너·FAQ 는 게시(PUBLISHED) 상태 + 노출 기간 안인 것만 앱에 나갑니다. 작성중(DRAFT)·숨김(HIDDEN)·기간 밖은 앱에서 절대 보이지 않습니다(서버 SQL 로 강제). 등록·수정은 팝업 창에서, 삭제는 확인 창을 거칩니다.
#/notices목적 — 앱에 노출되는 공지사항(글)을 관리합니다(제목·본문 중심). 조작 — [+ 공지사항 등록], 상태·노출 대상(전체/회원앱만/매장앱만)·노출 기간 지정. 중요한 공지는 [무조건 표시]로 앱 메인 팝업(확인해야 사용)으로 띄울 수 있습니다.
#/events목적 — 앱에 노출되는 이벤트(이미지·링크 배너형)를 관리합니다. 조작 — 이미지를 올리고 링크를 넣으면 앱에서 이미지를 눌러 이동합니다(본문은 선택). 상태·노출 대상·노출 기간은 공지와 동일.
#/banners목적 — 앱 화면에 노출되는 배너를 관리합니다. 조작 — [+ 등록](위치·이미지·연결·순서·상태). 위치는 회원앱 홈·비로그인 화면·충전 화면·매장앱 홈 중 선택, 연결은 없음/공지로/이벤트로/외부 URL. 행에서 이미지 내려받기, 게시/숨김 전환, 삭제가 가능합니다.
배너는 등록·상태 전환·삭제만 있고 "내용 수정" 경로는 없습니다(다시 등록).
#/faqs목적 — 자주 묻는 질문을 관리합니다. 조작 — [+ 등록]/행별 수정·삭제(분류·질문·답변·순서·상태).
#/inquiries목적 — 회원·매장이 보낸 문의를 확인하고 답변합니다. 미답변만 보기는 상태 필터에서 "미답변"을 고릅니다. 조작 — 미답변 건은 표의 [답변] 버튼으로 그 자리에서 빠르게 답하거나, 제목을 눌러 상세(#/inquiries/{번호})에서 전체 내용을 보고 답합니다. 답변을 등록하면 "답변됨"으로 바뀝니다.
답변 등록 시 앱 푸시 통지는 푸시 연동 완료 후 나갑니다.
#/files목적 — 앱·관리자에 올라온 모든 업로드 파일이 모이는 중앙 대장을 조회합니다(회원 프로필·공지 이미지·배너·문의 첨부·매장 서류). 조작 — 파일 이름 검색, "이미지만"·"미사용만" 필터, 이미지 미리보기, 내려받기, 삭제(미사용 파일만).
storages.nestpay.co.kr, 로컬: MinIO)에 보관하고, 정보(이름·크기·형식)만 files 대장에 둡니다. L4 뒤 2대 서버가 같은 스토리지를 공유합니다.#/policy-docs목적 — 이용약관·개인정보처리방침·탈퇴 안내 문서의 버전을 등록하고 시행합니다. 조작 — [새 버전 등록](종류·버전·시행일·본문 → 작성중으로 저장), 행의 [보기](본문 확인)·[시행]. 같은 종류는 시행 중인 버전이 항상 1개만 유지되며, 새 버전을 시행하면 기존 시행본은 자동으로 보관됩니다. 앱에는 "시행 중"인 최신본만 보입니다(DRAFT 미노출).
#/push목적 — 회원 전체·iOS·Android·매장 전체·개별 대상에게 알림을 보냅니다. 조작 — 제목(100자)·내용(500자)·대상·구분(정보성/광고성) 입력 후 [발송 접수](확인 창). 개별 지정이면 회원/매장 번호를 쉼표로 입력. 아래에 발송 이력(대상·구분·상태·성공/실패·보낸 관리자)이 쌓입니다.
#/policies목적 — 서비스 동작의 기준값을 관리합니다. 배포 시 기본값(전체 기본=GLOBAL)이 이미 들어 있으니 상황에 맞게 조정합니다. 비슷한 정책끼리 3개 묶음으로 그룹핑되어 있습니다.
| 묶음 | 정책 | 정하는 값 |
|---|---|---|
| 결제·정산 기준 | 수수료 정책 | 결제·정산·충전·출금·선물 수수료(정률 % + 정액 원, 합산 적용) |
| 한도 정책 | 충전·보유·출금·선물·결제 한도(한 사용자의 모든 카드를 합산 집행) | |
| 출금·정산 실행 정책 | 정산·출금 지급 시점(매장 기본 0일=당일, 회원 기본 익일이 확정값)·실행시각 | |
| 취소·발급·포인트 규칙 | 결제 취소 가능 기간 | 결제 후 며칠까지 취소 가능(결제 시점에 그 거래로 스냅샷) |
| 카드 발급 수량 | 한 회원이 가질 수 있는 카드(ACTIVE) 최대 장수 | |
| 포인트 유효기간 | 충전(유상)·적립(무상) 포인트 소멸까지 개월 수(각 1줄 고정, 수정만) | |
| 기타 전역 설정 | 전역 설정(키-값) | 위에 없는 운영 값(예: 재가입 대기일, 점검 스위치 등) |
범위(scope) — 전체 기본(GLOBAL)은 모든 회원·매장에 적용됩니다. 특정 회원/매장만 다르게 하려면 범위를 특정으로 고르고 "대상번호"에 그 번호를 넣습니다(전체 기본이면 대상번호는 비움). 조작 — [+ 추가]·행의 [수정]은 팝업에서 입력하며, 같은 자리(종류+범위+대상)에 저장하면 기존 값을 덮어씁니다(upsert). [삭제]도 가능(포인트 유효기간은 고정이라 수정만).
이 화면 상단에는 은행 점검시간 설정도 있습니다. 켜면 그 시간대에는 계좌 실명조회·1원 인증·출금 신청이 서버에서 막히고 앱에도 안내됩니다(매일 반복, 자정 넘는 구간도 가능).
모든 변경은 감사 장부에 남고, 정책은 이력이 자동 보존되어 "그 시점의 정책"이 증빙으로 남습니다.
#/notification-settings목적 — NestPay 가 보내는 알림을 이벤트별로 켜고 끕니다. 조작 — 각 이벤트마다 발송 여부·채널·심각도를 고치고 [저장]. 채널은 앱 알림함 / 폰 푸시 / 둘 다. 폰 푸시 실발송은 푸시 설정을 완료해야 실제로 나갑니다(그 전에는 앱 알림함에만 쌓임). 심각도는 정보·경고·심각. 바꾸면 바로 다음 알림부터 적용됩니다.
#/push-settings목적 — 폰 잠금화면 푸시(FCM)에 필요한 값을 설정합니다. 조작 — Firebase 프로젝트 ID 입력, 서비스 계정 키(JSON) 파일 업로드, 폰 푸시 발송 켬/끔 후 [저장]. 세 값이 채워지면 준비 상태가 "준비 완료"로 바뀌고, 그때 발송을 켜면 됩니다. 화면 아래에 처음 설정하는 사람을 위한 단계별 안내(프로젝트 생성 → 앱 등록 → 키 내려받기 → 켜기)가 있습니다.
앱 안 알림함은 이 설정 없이도 동작하며, 이 설정은 "폰 잠금화면 푸시"를 켜는 것입니다. FCM 서비스 계정 키 실제 등록·발송은 외부연동입니다.
#/app-gate목적 — 강제 업데이트 최소버전·스토어 URL·점검 모드를 관리합니다.
| 영역 | 설명 |
|---|---|
| 점검 모드 | 켜면 앱 전체 이용이 일시 차단됩니다(부팅 게이트). 안내 문구·종료 예정 시각(선택)을 함께 저장. |
| 강제 업데이트 최소버전 | 회원앱·매장앱 × iOS·Android 별로 최소버전을 둡니다. 이 값 미만 앱은 다음 실행 때 강제 업데이트 화면이 뜹니다. A방식(배포 연동) — 스토어에 새 버전을 올릴 때 배포 스크립트(CI)가 최소버전 API 를 호출해 자동 상향(필요하면 화면에서 직접 올릴 수도 있음. 내림은 비권장). |
| 스토어 URL | 회원앱·매장앱 × iOS·Android 별 스토어 링크. 비어 있으면 강제 업데이트 화면의 "지금 업데이트" 버튼이 동작하지 않으므로 반드시 등록하세요. |
#/admins목적 — 관리자 계정과 접근 허용 IP 를 관리합니다(모든 관리자 동등 — 누구나 관리 가능). 조작:
| 조치 | 설명 |
|---|---|
| + 관리자 등록 | 아이디·이름으로 새 관리자 생성. 초기 비밀번호는 123456, 최초 로그인 때 OTP(인증앱) 등록이 필수입니다. |
| 수정 | 이름·상태(정상=로그인 가능 / 비활성=로그인 차단) 변경. |
| 비밀번호 초기화 | 비밀번호를 123456 으로 되돌림(비밀번호 분실 시). |
| OTP 초기화 | 다음 로그인 때 OTP 재등록(인증앱 기기 분실·5회 실패로 잠김 시 잠김 해제 용도). |
| 삭제 | 계정 삭제. |
접근 허용 IP(아래 패널) — [+ IP 규칙 추가]로 IP/CIDR 을 등록합니다. 대상을 공통(모든 관리자)으로 두면 1차 관문이 되고, 특정 관리자를 지정하면 그 관리자에게만 적용되는 추가 제한이 됩니다. 행별 삭제 가능.
주의 — IP 를 잘못 넣으면 본인도 접속이 막힐 수 있습니다.
#/audits목적 — 관리자들의 모든 조치(승인·반려·정지·정책 변경·민감정보 열람 등)를 남기는 장부입니다. 조작 — 조치·내용·사유·관리자 검색과 페이징으로 조회(관리자·조치·대상·내용·사유·IP·일시 표시). 사고·분쟁 시 "누가 언제 무엇을 했는지" 추적하는 증빙으로 씁니다.
무결성 — 추가만 되는(append-only) 장부라 수정·삭제 기능이 일부러 없습니다.
참고: 현재 코드 기준으로 감사 기록 메뉴·열람은 모든 관리자에게 동일하게 열려 있습니다(관리자 동등 정책). 화면 안내 문구 일부에 "root 전용"이라는 옛 표현이 남아 있으나 실제 동작과 다른 표기 잔재이며, 필요 시 문구 정리가 필요합니다.
| 대상 | 상태(코드 → 화면 표기) |
|---|---|
| 회원 | ACTIVE 정상 · SUSPENDED 정지 · WITHDRAWN 탈퇴 |
| 카드 | ACTIVE 사용중 · SUSPENDED 정지 · REISSUED 재발행됨 · EXPIRED 만료 |
| 매장 | PENDING 심사중 · SUPPLEMENT 보완 대기 · ACTIVE 정상 · REJECTED 반려 · SUSPENDED 정지 · CLOSED 해지 |
| 거래(원장) | PENDING 진행중 · HOLD 보류 · UNKNOWN 미확인 · CONFIRMED 확정 · FAILED 실패 · REVERSED 역분개 · CANCELED 취소됨 |
| PG 결제요청 | PENDING 대기(미결제) · PAID 결제완료 · EXPIRED 만료 · CANCELED 취소/환불 |
| 탈퇴 신청 | PENDING 대기 · APPROVED 승인(탈퇴) · REJECTED 반려 |
| FDS 경보 | OPEN 미처리 · REVIEWED 검토됨 · ACTIONED 조치됨 · DISMISSED 무혐의 |
| 콘텐츠(공지·이벤트·배너·FAQ) | DRAFT 작성중 · PUBLISHED 게시 · HIDDEN 숨김 |
| 약관·방침 | DRAFT 작성중 · ACTIVE 시행중 · ARCHIVED 보관 |
| 관리자 계정 | ACTIVE 정상 · LOCKED 잠김 · DISABLED 비활성 |
아래 기능은 화면·처리 흐름은 구현되어 있으나, 실제 외부기관 연동은 계약 후 진행되는 스텁 상태입니다. 관리자 조작 자체는 가능하되, 실물 결과(문자 수신·이체·폰 푸시 등)는 연동 완료 후 나갑니다.
NestPay 산출물 · (주)페이네스트 · 작성일 2026-07-27 · 실제 코드/DB 기준 · 외부연동(펌뱅킹·본인인증·은행 실명조회)은 계약 전 스텁 상태임을 명시