← 메인으로

기능정의서 (본사)

분석 데이터 기반 작성 · 2026-04-28

📋 기능목록

F-ID 기능명 설명 Phase 우선순위
F-01 로그인 텔레그램 OTP 2FA + IP 기반 접근 제어 + Staff JWT 발급 1 P0
F-02 통합 대시보드 카드 결제 일/월 KPI(승인/취소/정산), 가상계좌 일/월 KPI(입금건수/금액), 본사 수익금, 미처리 알람 카운트 1 P0
F-03 본사 직원 관리 직원 목록 조회 + 등급/권한 표시 + 마지막 로그인 이력 (Phase 1: 조회만) 1 P1
F-04 파트너 계정 관리 파트너 목록(4건+) + 가맹점/단말기 정보 조회 (생성/수정/삭제는 Phase 2) 1 P1
F-05 가맹점 통합 조회 카드+가상 가맹점 통합(178+), 페이지네이션+검색+필터, 상세(수수료율/한도/정산주기/PG 매핑) 1 P0
F-06 에이전트 통합 조회 3단계 계층(지사→대리점→영업), 55개 에이전트, 수수료율 표시 1 P0
F-07 단말기 변경 이력 단말기 변경 로그 조회 1 P2
F-08 거래내역 통합 조회 카드 결제(97/일, 2,599/월) + 가상계좌 입금, 카드사/PG/상태별 필터, 일/월 통계 1 P0
F-09 결제 취소 내역 취소 처리된 거래 조회 1 P1
F-10 보류 거래 보류 상태 거래 조회 1 P1
F-11 단말기 결제 실패 단말기 채널 결제 실패 조회 1 P1
F-12 수기 결제 실패 수기 결제 실패 조회 1 P1
F-13 PG사별 입금 현황 윈글로벌, 와이디페이, 씨엘페이, 페이시스, MJ페이 5개 PG의 입금 합계 조회 1 P1
F-14 정산 캘린더 정산 이력(목록+캘린더), 가맹점/에이전트별 정산금, 본사 수익금(월 1,200만원+) 1 P0
F-15 정산 계좌 관리 본사 마스터 계좌(다우데이타-케이뱅크) + 잔액 추적 1 P1
F-16 PG 코드 관리 274개 PG 코드 조회 + PG별 수수료율(1.98% 등) 1 P1
F-17 가맹점-PG 매핑 조회 가맹점별 PG 매핑 정보 조회 1 P1
F-18 게시판 관리 공지사항(notice-list) / FAQ(faq-list) / 팝업(popup-list) / 무이자할부(inst-list) 1 P2
F-19 알람 통합 미읽은 알람 카운트 + 알람 목록 + 읽음 처리 1 P1
F-20 SMS 발송 이력 SMS 발송 이력 조회 1 P2
F-21 카드 BIN 조회 3,923개 BIN 조회 (CRUD는 Phase 2) 1 P2
F-22 마이페이지 본사 직원 본인 정보 + 비밀번호 변경 1 P1

📋 API명세

분류 Method Path 인증 설명
Staff/Auth POST /api/staff/free/auth_tele_chk 비인증 텔레그램 OTP 검증
Staff/Auth POST /api/staff/free/login 비인증 1차 로그인 (ID/PW 검증)
Staff/Auth POST /api/staff/login OTP 후 2차 로그인 (JWT 발급)
Staff/Auth POST /api/staff/logout JWT 로그아웃
Staff/Auth POST /api/staff/passModChk JWT 비밀번호 변경
Member GET /api/member/select_staff_list JWT (ROLE_SUPER) 본사 직원 목록
Member GET /api/member/select_staff_detail JWT 직원 상세
Member GET /api/member/select_partner_list JWT 파트너 목록
Member GET /api/member/select_partner_detail JWT 파트너 상세
Member GET /api/member/select_login_history JWT 로그인 이력
Agent GET /api/agent/select_agent_pagination JWT 에이전트 페이지네이션
Agent GET /api/agent/select_agent_list JWT 에이전트 전체 목록
Agent GET /api/agent/select_agent_detail JWT 에이전트 상세 (계층 포함)
Customer GET /api/customer/select_customer_pagination JWT 가맹점 페이지네이션
Customer GET /api/customer/select_customer_list JWT 가맹점 전체 목록
Customer GET /api/customer/select_customer_detail JWT 가맹점 상세
Customer GET /api/customer/select_terminal_history JWT 단말기 변경 이력
Payment GET /api/payment/select_payment_pagination JWT 결제 거래 페이지네이션
Payment GET /api/payment/select_payment_statistics JWT 결제 일/월 통계
Payment GET /api/payment/select_payment_sum JWT 결제 합계
Payment GET /api/payment/select_payment_list JWT 결제 거래 목록
Payment GET /api/payment/select_payment_fail_pagination JWT 결제 실패 페이지네이션
Payment GET /api/payment/select_payment_fail_list JWT 결제 실패 목록
Payment GET /api/payment/select_real_account_pagination JWT 가상계좌 입금 페이지네이션
Payment GET /api/payment/select_real_account_list JWT 가상계좌 입금 목록
Payment GET /api/payment/select_real_account_sum JWT 가상계좌 입금 합계
Payment GET /api/payment/select_day_calc_list JWT 일별 정산 목록
Payment GET /api/payment/select_day_deposit JWT 일별 입금
Payment GET /api/payment/select_day_withdraw JWT 일별 출금
Payment GET /api/payment/select_month_revenue JWT 월별 본사 수익
Payment GET /api/payment/select_payment_history_list JWT 결제 이력 목록
Payment GET /api/payment/select_cancel_list JWT 취소 거래 목록
PG GET /api/pg/select_pg_pagination JWT PG 코드 페이지네이션
PG GET /api/pg/select_pg_list JWT PG 코드 전체
PG GET /api/pg/select_pg_deposit JWT PG별 입금 현황
PG GET /api/pg/select_pg_customer_mapping JWT 가맹점-PG 매핑
Schedule GET /api/schedule/select_schedule_list JWT 정산 스케줄 목록
Schedule GET /api/schedule/select_schedule_calendar JWT 정산 캘린더 뷰
Account GET /api/account/select_master_account JWT 본사 마스터 계좌
Account GET /api/account/select_balance JWT 잔액 조회
Account GET /api/account/select_balance_history JWT 잔액 이력
Board GET /api/board/notice_list JWT 공지사항
Board GET /api/board/faq_list JWT FAQ
Board GET /api/board/popup_list JWT 팝업
Board GET /api/board/inst_list JWT 무이자 할부
Board GET /api/board/bin_list JWT 카드 BIN
Alarm GET /api/alarm/unread_count JWT 미읽 알람 카운트
Alarm GET /api/alarm/list JWT 알람 목록
Alarm POST /api/alarm/mark_read JWT 읽음 처리
Alarm POST /api/alarm/mark_all_read JWT 전체 읽음 처리
SMS GET /api/sms/history_pagination JWT SMS 발송 이력 페이지네이션
SMS GET /api/sms/history_list JWT SMS 발송 이력 목록

📋 데이터모델

엔티티 컬럼 타입 제약 설명
staff staff_id BIGINT PK, AUTO 직원 ID
staff staff_name VARCHAR(50) NOT NULL 직원명
staff staff_pw VARCHAR(60) NOT NULL 비밀번호 (bcrypt cost ≥ 12)
staff role VARCHAR(20) NOT NULL ROLE_SUPER / ROLE_ADMIN
staff tele_chat_id VARCHAR(50) NULL 텔레그램 chat_id (OTP)
staff last_login_at DATETIME NULL 마지막 로그인 일시
staff last_login_ip VARCHAR(45) NULL 마지막 로그인 IP
staff created_at DATETIME DEFAULT NOW() 생성일시
members_partner partner_id BIGINT PK, AUTO 파트너 ID
members_partner partner_name VARCHAR(100) NOT NULL 파트너명
members_partner partner_type VARCHAR(20) NOT NULL CARD / VIRTUAL
members_partner biz_no VARCHAR(20) UNIQUE 사업자번호
members_partner status VARCHAR(20) NOT NULL ACTIVE / SUSPENDED
members_partner created_at DATETIME DEFAULT NOW() 생성일시
agents agent_id BIGINT PK, AUTO 에이전트 ID
agents agent_name VARCHAR(100) NOT NULL 에이전트명
agents parent_aid BIGINT FK → agents.agent_id 상위 에이전트 (자기참조)
agents level TINYINT NOT NULL 1=지사 / 2=대리점 / 3=영업
agents ji_aid BIGINT FK → agents 지사 ID
agents ch_aid BIGINT FK → agents 대리점 ID
agents ag_aid BIGINT FK → agents 영업 ID
agents fee_rate DECIMAL(5,4) NOT NULL 수수료율
agents settle_account VARCHAR(50) NULL 정산 계좌
agents created_at DATETIME DEFAULT NOW() 생성일시
customers customer_id BIGINT PK, AUTO 가맹점 ID
customers customer_name VARCHAR(100) NOT NULL 가맹점명
customers biz_no VARCHAR(20) UNIQUE 사업자번호
customers ji_aid BIGINT FK → agents 지사 ID
customers ch_aid BIGINT FK → agents 대리점 ID
customers ag_aid BIGINT FK → agents 영업 ID
customers fee_rate DECIMAL(5,4) NOT NULL 수수료율
customers daily_limit BIGINT DEFAULT 0 일 한도
customers monthly_limit BIGINT DEFAULT 0 월 한도
customers settle_cycle VARCHAR(20) NOT NULL 정산 주기 (D+1, D+2 등)
customers settle_account VARCHAR(50) NULL 정산 계좌
customers pg_id BIGINT FK → pgs PG 매핑
customers status VARCHAR(20) NOT NULL ACTIVE / SUSPENDED
customers created_at DATETIME DEFAULT NOW() 생성일시
payments payment_id BIGINT PK, AUTO 결제 ID
payments customer_id BIGINT FK → customers 가맹점 ID
payments pg_id BIGINT FK → pgs PG ID
payments card_no_enc VARBINARY(255) NOT NULL 카드번호 (AES-256)
payments card_no_mask VARCHAR(20) NOT NULL 카드번호 마스킹 (앞6+뒤4)
payments amount BIGINT NOT NULL 결제 금액
payments fee BIGINT NOT NULL 수수료
payments net_amount BIGINT NOT NULL 정산 금액
payments status VARCHAR(20) NOT NULL APPROVED/CANCELED/HOLD/FAIL
payments channel VARCHAR(20) NOT NULL TERMINAL / MANUAL
payments created_at DATETIME DEFAULT NOW() 결제일시
payments canceled_at DATETIME NULL 취소일시
real_accounts real_account_id BIGINT PK, AUTO 가상계좌 입금 ID
real_accounts customer_id BIGINT FK → customers 가맹점 ID
real_accounts virtual_account_no VARCHAR(30) NOT NULL 가상계좌 번호
real_accounts bank_code VARCHAR(10) NOT NULL 은행 코드
real_accounts depositor_name VARCHAR(50) NULL 입금자명
real_accounts amount BIGINT NOT NULL 입금액
real_accounts deposited_at DATETIME NOT NULL 입금일시
real_accounts status VARCHAR(20) NOT NULL DEPOSITED / SETTLED
pgs pg_id BIGINT PK, AUTO PG ID
pgs pg_code VARCHAR(20) UNIQUE PG 코드
pgs pg_name VARCHAR(100) NOT NULL PG 명 (윈글로벌, 와이디페이 등)
pgs fee_rate DECIMAL(5,4) NOT NULL 수수료율 (1.98% 등)
pgs settle_cycle VARCHAR(20) NOT NULL 정산 주기
pgs master_account VARCHAR(50) NULL PG 마스터 계좌
pgs status VARCHAR(20) NOT NULL ACTIVE / INACTIVE
pg_customer_mapping mapping_id BIGINT PK, AUTO 매핑 ID
pg_customer_mapping pg_id BIGINT FK → pgs PG
pg_customer_mapping customer_id BIGINT FK → customers 가맹점
pg_customer_mapping fee_rate DECIMAL(5,4) NOT NULL 매핑별 수수료율
pg_customer_mapping is_primary BOOLEAN DEFAULT FALSE 주 매핑 여부
schedules schedule_id BIGINT PK, AUTO 정산 스케줄 ID
schedules customer_id BIGINT FK → customers 가맹점
schedules agent_id BIGINT FK → agents 에이전트
schedules pg_id BIGINT FK → pgs PG
schedules settle_date DATE NOT NULL 정산일
schedules settle_amount BIGINT NOT NULL 정산 총액
schedules customer_amount BIGINT NOT NULL 가맹점 정산금
schedules agent_amount BIGINT NOT NULL 에이전트 정산금
schedules hq_amount BIGINT NOT NULL 본사 수익금
schedules status VARCHAR(20) NOT NULL PENDING / EXECUTED
schedules executed_at DATETIME NULL 실행일시
card_bins bin_id BIGINT PK, AUTO BIN ID
card_bins bin_code VARCHAR(8) UNIQUE BIN 코드 (앞 6~8자리)
card_bins card_company VARCHAR(50) NOT NULL 카드사
card_bins card_type VARCHAR(20) NOT NULL CREDIT / CHECK / GIFT
card_bins card_brand VARCHAR(20) NULL VISA / MASTER / 국내
alarms alarm_id BIGINT PK, AUTO 알람 ID
alarms staff_id BIGINT FK → staff 수신자
alarms type VARCHAR(30) NOT NULL 알람 타입
alarms title VARCHAR(200) NOT NULL 제목
alarms body TEXT NULL 본문
alarms is_read BOOLEAN DEFAULT FALSE 읽음 여부
alarms created_at DATETIME DEFAULT NOW() 생성일시
boards board_id BIGINT PK, AUTO 게시판 ID
boards category VARCHAR(20) NOT NULL NOTICE / FAQ / POPUP / INST
boards title VARCHAR(200) NOT NULL 제목
boards body TEXT NULL 본문
boards is_visible BOOLEAN DEFAULT TRUE 노출 여부
boards created_at DATETIME DEFAULT NOW() 생성일시
complaints complaint_id BIGINT PK, AUTO 민원 ID (Phase 2)
complaints (상세 컬럼) Phase 2 별도 견적

📋 NFR + 보안

구분 항목 요구 수준 검증 방법
NFR 응답시간 (일반 페이지) < 2초 Lighthouse / k6 부하 테스트
NFR 응답시간 (통계 페이지) < 5초 k6 부하 테스트
NFR 동시 접속 30명 (본사 직원) k6 부하 테스트
NFR 가용성 99.5% 모니터링 (Uptime Kuma 등)
NFR 데이터 보관 5년 DB Retention 정책 + S3 아카이빙
NFR 감사 로그 모든 조회 활동 기록 API 미들웨어 + 로그 적재
NFR 브라우저 호환 Chrome / Edge 최신 2버전 E2E 테스트
NFR 반응형 데스크톱(≥1280px) 우선, 태블릿 호환 디자인 QA
보안 카드번호 저장 AES-256 암호화 (원본은 평문) DB 직접 검사
보안 비밀번호 bcrypt cost ≥ 12 (원본은 평문) DB 직접 검사
보안 JWT 시크릿 256bit 무작위 + Vault 관리 (원본은 약함) 시크릿 강도 검사
보안 텔레그램 봇 토큰 env 분리 (.env / Vault) (원본은 코드 노출) 코드 리뷰
보안 카드번호 조회 마스킹 앞 6자리 + 뒤 4자리만 노출 UI/API 테스트
보안 권한 체크 모든 API에 RoleGuard 적용 통합 테스트
보안 PCI-DSS 준수 (저장·전송·조회) 외부 감사
보안 접근 제어 텔레그램 OTP 2FA + IP allowlist 침투 테스트
보안 감사 로그 모든 조회 활동 5년 보관 로그 검사

📋 Phase2_별도견적

기능명 설명 예상 복잡도 비고
정산 직접 실행 pg_calc / customer_calc / agent_calc 트리거 + 검증 Phase 2 핵심 기능
멀티 PG 설정 CRUD PG 추가/수정/삭제 + 가맹점 매핑 변경
Coocon 은행 API 연동 실계좌 잔액 자동 동기화 외부 API 비용 별도
일괄 엑셀 업로드 가맹점/에이전트 CSV/XLSX 일괄 등록
결제일 일괄 재작성 관리자 오버라이드로 정산일 변경 감사 로그 강제
카드 BIN CRUD 3,923개 BIN 추가/수정/삭제
민원/분쟁 처리 complaint 테이블 + 처리 워크플로
other_payment_proc 수기 외부 결제 등록·정산
직원/파트너 CRUD F-03/F-04에서 생성/수정/삭제 추가
PG 코드 CRUD F-16에서 생성/수정/삭제 추가
게시판 CRUD F-18에서 생성/수정/삭제 추가
알람 발송 알람 직접 발송 (수동/자동 트리거)
SMS 발송 SMS 직접 발송 외부 API 비용 별도
📥 원본 XLSX 다운로드: 기능정의서-본사.xlsx