📘 사용자 매뉴얼

8. 전체 설정

결제 서버 전체에 적용되는 정책을 한 곳에서 관리하는 화면입니다. 좌측 메뉴 전체 설정에서 들어갑니다.

🍎

쉽게 말하면 "자동결제를 실패하면 몇 번 다시 시도할지", "어디서 접속을 허용할지", "비상시 결제를 한꺼번에 멈출지" 같은 시스템 전반의 규칙을 정하는 곳입니다.

참고: 전체 설정은 SYSTEM_ADMIN 역할만 사용할 수 있습니다. 여기서 바꾼 값은 저장 즉시 시스템에 반영됩니다.

함께 보기: 계정 관리 · 감사 로그

이 화면에는 네 가지 설정 영역이 있습니다.

⚠️

중요: 이 화면에서의 모든 변경은 예외 없이 감사 로그에 기록됩니다. "누가 · 언제 · 무엇을 어떻게(변경 전 값 → 변경 후 값)"가 그대로 남으므로, 나중에 추적·복구가 가능합니다.


전체 설정 화면 (킬스위치 등)
전체 설정 화면 (킬스위치 등)

8.1 자동결제 재시도 설정

구독 갱신 결제가 실패했을 때, 시스템이 자동으로 몇 번·얼마 간격으로 다시 시도할지 정합니다.

항목 의미 입력 범위 기본값
최대 재시도 횟수 갱신 결제가 실패하면 최대 몇 번까지 다시 시도할지. 0이면 재시도 없음. 0 이상 4
재시도 간격(시간) 한 번 실패한 뒤 다음 시도까지 몇 시간을 기다릴지. 1 이상 12
SUSPENDED 만료 유예(일) 모든 재시도를 다 써도 결제가 안 되면 구독이 "정지(SUSPENDED)" 상태가 되는데, 실제 만료까지 며칠을 더 기다려 줄지. 0이면 즉시 만료. 0 이상 30
💡

참고: 각 입력칸의 라벨 옆에 허용 범위(예: "(0 이상, 0이면 재시도 없음)")가 함께 표시됩니다. 숫자 입력칸은 숫자만 입력되며(문자·기호 키 차단), 범위를 벗어나게 타이핑하면 즉시 범위 안으로 자동 보정됩니다. 그래도 범위 밖 값으로 저장을 시도하면 "재시도 설정 값이 올바르지 않습니다" 경고 창이 뜨며, 어떤 값이 왜 잘못됐는지(예: "재시도 간격(시간)은 1 이상이어야 합니다") 함께 안내합니다. (특히 재시도 간격은 최소 1시간이라 0을 넣을 수 없습니다.)

8.1.1 바꾸는 방법

  1. 자동결제 재시도 카드에서 세 값을 원하는 숫자로 고칩니다.
  2. 저장을 누릅니다.
  3. "저장되었습니다" 완료 창이 뜨면 끝입니다.
💡

참고: 바꾼 값은 다음 갱신 처리부터 적용됩니다. 지금 진행 중인 결제에는 소급되지 않습니다.

팁: "유예"는 결제 카드를 잠깐 바꾸거나 잔액을 채울 시간을 고객에게 주는 완충 기간입니다. 너무 0에 가깝게 두면 일시적 문제로도 바로 구독이 끊길 수 있습니다.


8.2 보안 · 결제 정책

로그인 보안과 결제 한도를 정하는 영역입니다. 이 값들은 재배포 없이 저장 즉시(런타임) 적용됩니다 — 로그인·단건결제가 매 호출마다 이 값을 읽습니다.

항목 의미 입력 범위 기본값
로그인 실패 잠금 임계치 비밀번호를 몇 번 연속으로 틀리면 계정을 잠글지. 1~100회 5회
잠금 지속(분) 잠긴 계정이 자동으로 풀리기까지 몇 분 기다릴지. 1~1440분 15분
단건결제 최대 금액 한 번에 결제할 수 있는 1회성 결제의 최대 금액(원). 이 금액을 넘는 결제 요청은 거부됩니다. 0원이면 단건결제가 전면 차단됩니다. 0 이상 100,000,000원
구독 요금제 가격 상한 구독 요금제를 만들거나 수정할 때 입력할 수 있는 가격(원)의 최대값. 요금제 폼의 가격 입력칸이 이 상한까지만 입력되고, 넘겨 저장하면 거부됩니다(요금제 관리 5.2 참고). 1 이상 900,000,000원
사용일 추가 최대 요금제 [사용일추가]와 외부 add-days API에서 1회에 추가할 수 있는 최대 일수. 사용일추가 입력 창의 안내·검증이 이 값을 따릅니다(요금제 관리 5.9 참고). 1 이상 3,650일
💡

참고: 각 입력칸의 라벨 옆에 허용 범위(예: "(1~1440분)")가 함께 표시됩니다. 숫자 입력칸은 숫자만 입력되며(문자·기호 키 차단, 금액 칸은 천단위 콤마 자동 표시), 임계치·잠금 지속은 범위를 벗어나게 타이핑하면 즉시 보정됩니다. 그래도 범위 밖 값으로 저장을 시도하면 "보안/결제 정책 값이 올바르지 않습니다" 경고 창이 뜨며, 어떤 값이 왜 잘못됐는지(예: "잠금 지속(분)은 1~1440분이어야 합니다") 함께 안내합니다.

참고: 이 화면 값은 운영 중 조정하는 기본 정책이고, 시스템 환경설정(.env)에 같은 항목이 비상 폴백으로 들어 있습니다. 평소에는 이 화면 값이 우선합니다.

8.2.1 바꾸는 방법

  1. 보안/결제 정책 카드에서 값을 수정합니다.
  2. 저장을 누릅니다.
💬

⚠️ 주의: 단건결제 최대 금액을 너무 낮게 잡으면 정상적인 결제까지 거부될 수 있고, 너무 높게 잡으면 실수·악용으로 큰 금액이 빠져나갈 위험이 있습니다. 서비스의 실제 상품 가격대를 고려해 정하세요.

팁: 로그인 잠금 정책은 무차별 비밀번호 추측 공격을 막아 줍니다. 임계치를 너무 높이면 보안이 약해지고, 너무 낮추면 정상 사용자가 자주 잠길 수 있습니다.


8.3 어드민 접속 허용 IP

관리자 콘솔에 접속할 수 있는 IP 주소를 제한합니다. 지정한 IP에서만 어드민에 들어올 수 있게 만드는 보안 장치입니다.

상태 의미
목록이 비어 있음 제한 없음 — 모든 IP에서 접속 가능
IP가 한 개 이상 등록됨 등록된 IP(또는 대역)에서만 접속 가능, 나머지는 차단

차단은 로그인 단계에서 먼저 적용됩니다. 허용되지 않은 IP에서는 아이디·비밀번호가 맞아도 "허용되지 않은 IP입니다"로 로그인 자체가 거부되며 세션이 만들어지지 않습니다. 이미 로그인한 상태에서 목록이 바뀌어 본인 IP가 빠지면, 그 다음 화면 이동부터 차단됩니다.

💡

참고: 입력 UI는 IPv4 전용(옥텟 4칸 + 대역 칸)입니다. 서버는 저장 시 형식을 다시 검증해 맞지 않으면 "유효하지 않은 IP: …" 또는 "유효하지 않은 IP 대역: …" 오류로 거부합니다.

8.3.1 바꾸는 방법

  1. 어드민 접속 허용 IP 카드에서 IP를 칸마다 입력합니다(예: 4칸에 203 . 0 . 113 . 7).
  2. 대역 전체를 허용하려면 맨 끝 / 칸에 비트수를 넣습니다(예: 203 . 0 . 113 . 0 + /24 → 203.0.113.0~203.0.113.255). 비우면 그 IP 하나만 허용됩니다. 입력 가능한 범위는 8~32입니다.
  3. IP를 더 추가하려면 IP 추가 버튼으로 빈 줄을 만듭니다.
  4. 지울 IP는 그 줄의 삭제 버튼을 누릅니다.
  5. 저장을 누릅니다.
💬

참고: 대역을 입력할 때 주소 칸에 대역 안의 아무 IP나 넣어도 됩니다. 예를 들어 203.0.113.77 + /24로 저장하면 서버가 203.0.113.0/24로 정리해 보관합니다. 저장 후 완료 메시지에 실제 저장된 값이 표시되므로, 의도한 것보다 넓은 범위가 허용되지 않았는지 꼭 확인하세요.

⚠️ 대역 비트수가 작을수록 허용 범위가 넓어집니다(/24는 256개, /16은 65,536개). /8보다 넓은 값은 사실상 전체 허용이라 저장이 거부됩니다("너무 넓은 대역입니다"). 특히 /0은 전 세계 모든 IP를 뜻하므로 입력하지 마세요.

팁: 사무실 IP가 유동이거나 재택 근무자가 있다면 IP를 하나씩 나열하는 대신 VPN·사무실 대역을 /24 같은 형태로 한 줄에 등록하는 편이 관리하기 쉽습니다.

⚠️ 주의: 지금 접속 중인 본인의 IP를 반드시 목록에 포함해야 합니다. 빠뜨리면 저장하는 순간 본인부터 어드민에서 차단됩니다. 이를 막기 위해 시스템은 본인 IP가 없는 목록의 저장을 거부합니다("현재 접속 IP를 포함해야 잠금을 피할 수 있습니다"). 본인 IP가 등록한 대역 안에 들어 있으면 따로 나열하지 않아도 됩니다.

참고: 같은 서버에서의 로컬 접속(127.0.0.1·::1 등 루프백)은 항상 허용되며 목록에 따로 저장되지 않습니다. 따라서 서버 본체에서의 점검·복구 접근은 IP 제한과 무관하게 가능합니다.

팁: 제한을 완전히 풀고 싶다면 IP를 모두 비우고 저장하세요. 그러면 어디서든 접속할 수 있게 됩니다.

주의: 만약 잘못 저장해 전원이 어드민에 못 들어가게 되면, 데이터베이스에 직접 접근할 수 있는 담당자만 복구할 수 있습니다. 변경 전에 다른 브라우저 탭에서 접속이 되는지 먼저 확인하는 습관을 권장합니다.


8.4 결제서버 킬스위치

비상 상황(점검·장애 등)에서 외부 서비스의 모든 구독·결제 요청을 한 번에 막는 스위치입니다.

상태 외부 서비스 영향 어드민 콘솔 영향
정상 운영 구독·결제 API 정상 동작 정상
비활성화(점검 중) 모든 구독·결제 API가 503 오류로 차단됨 영향 없음 (정상 사용 가능)
🍎

쉽게 말하면 "결제 기능 전체를 잠그는 빨간 버튼"입니다. 켜도 어드민 화면은 그대로 쓸 수 있어, 잠근 상태에서 복구 작업을 할 수 있습니다.

참고: 비활성화하면 입력한 사유가 외부 서비스로 가는 503 오류 응답에 함께 전달됩니다. 사유를 비워 두면(이론상) 기본 안내 문구 "서비스 점검 중입니다"가 대신 나갑니다. 또한 비활성화 시점에는 언제(시각)·누가(관리자) 잠갔는지가 함께 기록되어, 누가 점검을 시작했는지 추적할 수 있습니다.

참고: 비활성화 동안에는 모든 어드민 페이지 상단에 빨간 점검 배너("결제서버 점검 중 — 사유")가 표시되어 누구도 점검 상태를 놓치지 않습니다. 배너의 "전체 설정에서 복구" 링크로 바로 이 화면에 올 수 있습니다. 외부 서비스는 무인증 GET /api/v1/server-status로 점검 상태와 안내 문구를 조회해 자기 화면에 같은 배너를 띄울 수 있습니다(서비스 연동 API 13.3.3 참고). 사유에 점검 예정 시간을 함께 적으면(예: "정기 점검 00:00~06:00") 사용자가 복구 시점을 알 수 있습니다.

킬스위치 점검 배너
킬스위치 비활성화 중 — 모든 어드민 페이지 상단에 점검 배너(사유·복구 링크)가 표시됩니다

8.4.1 비활성화하기 (정상 → 점검 중)

  1. 결제서버 킬스위치 카드에서 비활성화 사유를 입력합니다(예: "정기 점검 2026-06-20 00:00~06:00"). 이 사유는 외부 서비스가 받는 오류 메시지에 포함될 수 있습니다.
  2. 본인 비밀번호를 입력합니다.
  3. 빨간 비활성화 버튼을 누릅니다.
  4. "결제서버를 비활성화할까요?" 확인 창에서 한 번 더 확인합니다.

8.4.2 다시 켜기 (점검 중 → 정상 복구)

  1. 본인 비밀번호를 입력합니다. (사유는 입력하지 않아도 됩니다.)
  2. 파란 활성화(복구) 버튼을 누릅니다.
💬

⚠️ 주의: 비활성화하면 외부 서비스의 결제·구독 요청이 즉시 전부 막힙니다. 진행 중이던 결제가 실패할 수 있으니, 가능하면 관련 서비스 담당자에게 점검을 미리 공지한 뒤 진행하세요.

중요: 비활성화·활성화 모두 본인 비밀번호 확인이 필요합니다. 비밀번호가 틀리면 "비밀번호가 일치하지 않습니다" 오류로 전환되지 않습니다. 비활성화 시에는 사유 입력도 필수입니다.

주의: 복구(활성화)에는 확인 창이 없어 버튼을 누르면 바로 적용됩니다. 반대로 비활성화에는 확인 창이 있습니다.

참고: 전환 결과는 즉시 전파됩니다(내부 캐시를 바로 비워, 지연 없이 모든 요청에 반영됨).


8.5 한눈에 정리

설정 켜고 끄는 즉시 효과 본인 비밀번호 필요?
자동결제 재시도 다음 갱신 처리부터 적용 아니오
보안/결제 정책 즉시 적용 (런타임) 아니오
어드민 허용 IP 즉시 적용 (본인 IP 포함 필수) 아니오
결제서버 킬스위치 즉시 적용 (외부 API 차단/복구)
💡

참고: 위 설정 변경은 모두 감사 로그에 "누가 · 언제 · 무엇을 어떻게(변경 전 → 변경 후)" 형태로 남습니다.


관련 문서