5. 요금제 관리
서비스가 고객에게 판매할 구독 요금제를 만들고 관리하는 화면입니다. 가격, 결제 주기(년·월·주·일·분), 첫 구독 할인, 상시 할인, 체험 기간, 자동연장 여부, 추가정보를 한곳에서 설정합니다.
🍎
5.1 요금제 관리 화면 열기
요금제는 두 곳에서 관리할 수 있습니다. 어느 쪽에서 만들든 결과는 같습니다.
| 화면 | 여는 방법 | 특징 |
|---|---|---|
| 전체 요금제 목록 | 왼쪽 메뉴 요금제 클릭 | 모든(또는 담당) 서비스의 요금제를 한 번에 보고 검색·필터·엑셀 다운로드 |
| 서비스 안의 요금제 탭 | 서비스 메뉴 → 서비스 클릭 → 아래쪽 "요금제" 카드 | 그 서비스의 요금제만 표시. 추가·수정 후 그 자리에서 바로 갱신 |
💡참고: 시스템 관리자(SYSTEM_ADMIN)는 모든 서비스의 요금제를, 서비스 담당자(SERVICE_MANAGER)는 자신이 맡은 서비스의 요금제만 볼 수 있습니다. 담당이 아닌 서비스의 요금제 주소로 직접 들어가면 "없음" 화면이 표시됩니다.
5.1.1 목록에 보이는 정보
목록의 각 줄에는 다음이 표시됩니다.
| 컬럼 | 설명 |
|---|---|
| 서비스 | 그 요금제가 속한 서비스 이름 |
| 이름 | 요금제 표시 이름 |
| 정가 | 할인 전 가격. 상시 할인이 걸린 요금제는 취소선으로 표시(첫구독 할인만 있으면 취소선 없음) |
| 체험 | 체험 일수(없으면 -) |
| 첫구독 할인 | 없음 / 무료 / N원 할인 / N% 할인 |
| 첫 결제액 | 첫 구독 할인을 반영한 1회차 실제 결제 금액 |
| 상시할인 | 매 회차 할인(없으면 −) |
| 정기 결제액 | 상시 할인을 반영한 2회차부터의 결제 금액 |
| 주기 | 결제 주기. 일·분 주기는 DAY(10일), MINUTE(5분)처럼 일수·분수를 함께 표시 |
| 상태 | ACTIVE(신규 구독 가능) / ARCHIVED(신규 불가) |
💡참고: 첫 결제액·정기 결제액에 마우스를 올리면 "정가 − 할인 = 결제액"처럼 어떻게 계산됐는지 풀이가 뜹니다.
5.1.2 검색·정렬·필터
- 검색: 위쪽 검색칸에 요금제명 일부를 입력하면 이름으로 걸러집니다.
- 정렬: 표 머리글 중 이름 · 정가 · 상태를 클릭하면 오름/내림차순으로 정렬됩니다.
- 필터(드롭다운 4종):
| 필터 | 내용 |
|---|---|
| 서비스 | 특정 서비스의 요금제만(시스템 관리자는 전체 서비스, 담당자는 담당 서비스만 표시) |
| 요금제명 | 같은 이름의 요금제만(서비스를 먼저 고르면 그 서비스의 이름만 후보로 나옴) |
| 주기 | 연 / 월 / 주 / 일 / 분 |
| 상태 | 활성(ACTIVE) / 보관(ARCHIVED) |
🔗함께 보기: 목록 위쪽 [엑셀] 버튼으로 현재 검색·필터 결과를 내려받을 수 있습니다(5.10 참고).
5.2 요금제 만들기
- 전체 요금제 목록에서 오른쪽 위 [요금제 생성], 또는 서비스 상세의 요금제 카드에서 [요금제 추가]를 누릅니다.
- 아래 항목을 채웁니다(자세한 설명은 5.3~5.5 참고).
- [저장]을 누릅니다.
- "저장되었습니다" 안내가 뜨고 목록으로 돌아갑니다. 새 요금제는 곧바로 ACTIVE 상태가 되어 구독을 받을 수 있습니다.
입력 항목:
| 항목 | 설명 |
|---|---|
| 서비스 | (서비스 담당자 전용, 폼 첫 항목) 요금제를 만들 서비스 선택. 자신이 대표 담당자인 서비스만 목록에 나타납니다. 담당자는 여러 서비스의 대표가 될 수 있으므로 여기서 대상을 고릅니다 |
| 이름 | 요금제 표시 이름. 필수. 예: "스탠다드 월간" |
| 가격(원) | 정가. 1원~가격 상한(기본 900,000,000원 — 전체 설정의 "구독 요금제 가격 상한"에서 조정). 입력칸 라벨 옆에 현재 허용 범위가 표시되고, 범위를 벗어나게 타이핑하면 입력 즉시 범위 안으로 자동 보정됩니다(상한 초과 → 상한값으로 잘림). 그래도 범위 밖 값으로 저장을 시도하면 "가격은 1원~N원까지 입력할 수 있습니다" 경고 모달이 뜹니다. 예: 9,900 |
| 결제 주기 | 년 / 월 / 주 / 일 / 분 중 선택. "일"을 고르면 일수를 직접 입력(5.3 참고) — 일수를 비운 채 저장하면 페이지 이동 없이 "반복 일수를 입력해주세요" 안내 모달이 뜨고 입력 내용은 그대로 유지됩니다. "분"은 비운영(개발·스테이징) 환경에서만 보입니다(5.3 참고) |
| 첫 구독 할인 | 없음 / 무료 / 할인 금액 / 할인율(5.4 참고) |
| 상시 할인 | 없음 / 할인 금액 / 할인율(5.5 참고) |
| 체험 제공 | 체크하면 체험 일수(1일 이상) 입력칸이 나타남. 체험 기간 동안은 결제 없이 이용 |
| 자동결제 안함 | 체크하면 첫 주기가 끝난 뒤 자동 연장 없이 만료 |
| 추가정보 | 고객 앱에 보여줄 설명을 "키 + 값"으로 자유롭게 추가(예: 용량 = 10GB). 행은 여러 개 추가/삭제 가능 |
💡참고: 누가 어디서 만드나요? 요금제는 그 서비스의 대표 담당자만 만들 수 있습니다. 서비스 담당자(SERVICE_MANAGER)는 [요금제 생성] 폼 첫 항목에서 자신이 대표로 담당하는 서비스를 골라 생성합니다(여러 서비스의 대표라면 모두 선택지에 나옵니다). 대표로 지정된 서비스가 하나도 없으면 생성 폼 대신 안내 문구가 표시되고, 서비스 상세의 [요금제 추가] 버튼도 대표 담당자에게만 보입니다. 시스템 관리자(SYSTEM_ADMIN)는 제한 없이 특정 서비스 상세 화면의 요금제 카드에서 [요금제 추가]로 만듭니다.
참고: 폼의 숫자 입력칸(가격·할인 값·반복 일수·체험 일수·분 주기)은 숫자만 입력됩니다 — 문자·기호는 키 입력 자체가 차단되고, 한글 등 우회 입력도 해당 글자만 즉시 지워지며 앞서 입력한 숫자는 그대로 유지됩니다(분 주기만 음수 부호 입력이 가능하나 저장 시 거부됩니다).
팁: 폼 아래쪽에 금액 미리보기가 있어 가격·할인을 입력하면 "첫 결제 금액"과 "다음 회차부터" 금액이 실시간으로 계산되어 보입니다. 저장 전에 숫자가 맞는지 확인하세요.
주의: 추가정보에 값만 적고 키(이름)를 비워두면 저장이 안 됩니다. "추가정보 키를 입력하세요" 오류가 보이면 키 칸을 채워주세요. 빈 줄(키·값 모두 빈)은 그냥 무시되니 신경 쓰지 않아도 됩니다. 같은 키를 두 번 적으면 마지막 값이 저장됩니다.
5.3 결제 주기 정하기 (년·월·주·일·분)
결제 주기는 얼마마다 자동 결제할지를 정합니다.
| 선택 | 다음 결제일 계산 |
|---|---|
| 년 | 1년 뒤(예: 2026-03-01 → 2027-03-01) |
| 월 | 1개월 뒤. 월말은 자동 보정(1/31 → 2/28 또는 2/29) |
| 주 | 7일 뒤 |
| 일 | 입력한 일수(1일 이상)만큼 뒤. 예: 10을 넣으면 10일마다 결제 |
| 분 | 입력한 분수만큼 뒤. 자동연장 테스트용 — 비운영(개발·스테이징) 환경 전용, 최소 5분(5분 미만은 거부). 운영(prod) 환경에서는 옵션 자체가 보이지 않고, 생성도 거부됩니다. |
💬분(MINUTE) 주기 주의: 자동결제를 실행하는 스케줄러(정해진 주기마다 도는 서버 작업)가 기본 5분 간격이므로, 분 단위 구독도 스케줄러가 돌 때마다(약 5분 간격) 갱신됩니다. 더 빠른 관찰이 필요하면 테스트 환경에서
scheduler_interval_minutes(스케줄러 실행 간격, 분) 설정값을 낮추세요.중요: 결제 주기는 요금제를 만들 때만 정할 수 있고, 나중에 수정할 수 없습니다. 다른 주기가 필요하면 새 요금제를 하나 더 만드세요. (이미 구독 중인 고객은 자기가 시작한 주기를 그대로 유지합니다.)
참고: 년·월·주를 고르면 일수/분수 입력칸이 없습니다. 월 주기는 월말 보정만 자동으로 처리됩니다. 일은 일수, 분은 분수만 입력하며, 두 값을 같이 넣을 수 없습니다.
5.4 첫 구독 할인 (무료 · 할인)
처음 구독하는 고객에게만 적용되는 1회차 한정 혜택입니다.
| 유형 | 첫 결제 금액 | 예시(정가 10,000원) |
|---|---|---|
| 없음 | 정가 그대로 | 10,000원 |
| 무료 | 0원(완전 무료) | 0원 |
| 할인 금액 | 정가 − 입력 금액 | 3,000원 할인 → 7,000원 |
| 할인율 | 정가 − (정가 × 비율) | 30% 할인 → 7,000원 |
🍎쉽게 말하면 "첫 달 무료" 또는 "첫 결제 30% 할인" 같은 가입 혜택을 여기서 만듭니다.
주의: 할인 금액·할인율을 고르면 값이 필수입니다. 할인 값은 1 이상이어야 하고, 할인율은 1~100% 사이여야 합니다. "없음/무료"를 고르면 값 칸은 비웁니다.
5.5 상시 할인 (정기 결제 할인)
매 회차(2회차부터) 계속 적용되는 할인입니다.
| 유형 | 정기 결제 금액 | 예시(정가 10,000원) |
|---|---|---|
| 없음 | 정가 그대로 | 10,000원 |
| 할인 금액 | 정가 − 입력 금액 | 2,000원 할인 → 8,000원 |
| 할인율 | 정가 − (정가 × 비율) | 20% 할인 → 8,000원 |
⚠️중요: 첫 구독 할인과 상시 할인은 서로 겹치지 않습니다. 첫 결제는 첫 구독 할인만, 2회차부터는 상시 할인만 적용됩니다.
예) 정가 10,000원 · 첫 구독 할인 30% · 상시 할인 20% - 첫 결제: 7,000원 (첫 구독 할인만) - 다음 회차부터: 8,000원 (상시 할인만)
참고: 상시 할인에는 "무료"가 없습니다. 매번 0원이 되는 정기 결제는 의미가 없기 때문입니다. 할인율은 첫 구독 할인과 마찬가지로 1~100% 사이여야 합니다.
5.6 요금제 수정
- 목록 또는 서비스 요금제 탭에서 해당 요금제의 [수정]을 누릅니다.
- 이름·가격·첫 구독 할인·상시 할인·체험·자동결제 안함·추가정보를 바꿉니다.
- [저장]을 누릅니다. "저장되었습니다" 안내가 뜹니다.
⚠️주의: 수정 화면에서 결제 주기(분·일수 포함)는 회색으로만 보이고 바꿀 수 없습니다. 주기를 바꾸려면 새 요금제를 만들어야 합니다(5.3 참고).
참고: 가격·할인을 바꿔도 이미 구독 중인 고객에게 즉시 소급되지 않고, 다음 결제(갱신)부터 새 금액이 적용됩니다. 자동결제 안함·추가정보 변경도 마찬가지로 새로 들어오는 구독부터 적용되며 기존 구독에는 소급되지 않습니다.
참고: 수정 권한은 서비스 담당자(자기 요금제) 또는 시스템 관리자에게 있습니다. 전체 요금제 목록에서 [수정]·[비활성화]·[삭제] 버튼은 서비스 담당자에게만 보이며, 시스템 관리자는 서비스 상세 화면을 통해 관리합니다.
5.7 비활성화(보관)와 활성화
요금제를 더 이상 새로 팔고 싶지 않지만 기존 구독은 유지하고 싶을 때 비활성화(보관) 합니다.
| 동작 | 버튼 | 결과 |
|---|---|---|
| 비활성화(보관) | [비활성화] | 상태가 ARCHIVED로 바뀜. 새 구독은 받지 않지만 기존 구독은 그대로 유지 |
| 활성화(재개) | [활성화] | 상태가 ACTIVE로 돌아가 다시 새 구독을 받음 |
- 비활성화하려면 ACTIVE 요금제의 [비활성화]를 누릅니다. 바로 보관되고 "보관되었습니다" 안내가 뜹니다.
- 다시 팔려면 ARCHIVED 요금제의 [활성화]를 누릅니다.
💡팁: 구독이 걸려 있어 삭제가 안 되는 요금제는, 먼저 비활성화로 새 가입을 막고 기존 구독이 모두 만료된 뒤 삭제하세요.
참고: 비활성화·활성화 시 해당 서비스에 등록된 알림 주소가 있으면 서비스에 변경 알림이 발송됩니다(주소 미등록 시 조용히 무시).
5.8 요금제 삭제
- 요금제의 [삭제]를 누릅니다.
- "요금제를 삭제할까요?" 확인 창에서 [삭제]를 한 번 더 누릅니다.
- 성공하면 "삭제되었습니다" 안내가 뜹니다.
⚠️중요: 구독이 한 건이라도 연결된 요금제는 삭제할 수 없습니다. (현재 이용 중이든, 이미 만료됐든 상관없이 한 건이라도 있으면 거부됩니다.) 이때는 "구독이 있는 요금제는 삭제할 수 없습니다. 보관(아카이브)을 사용하세요."라는 안내가 뜹니다.
처리 순서: [비활성화]로 새 구독을 막기 → 기존 구독이 모두 만료될 때까지 기다리기 → [삭제].
5.9 사용일 추가 (구독 기간 연장 보너스)
특정 요금제를 쓰는 고객들에게 무료로 며칠을 더 얹어주고 싶을 때 사용합니다(예: 서비스 장애 보상으로 전원 3일 연장).
- 요금제 줄에서 [사용일추가]를 누릅니다.
- 작은 입력 창이 뜨면 추가할 일수를 적습니다. 허용 범위는 1 ~ 최대 일수(기본 3650 — 전체 설정의 "사용일 추가 최대(일)"에서 조정)입니다. 문자는 입력 자체가 차단되고, 범위 밖 숫자는 [추가] 클릭 시 "1 ~ N 사이 숫자만 저장할 수 있습니다" 경고가 뜨며 저장되지 않습니다. Enter로 확인, Esc로 취소.
- 확인하면 그 요금제를 쓰는 **현재 이용 중인 구독들**의 만료일·다음 결제일이 입력한 일수만큼 뒤로 미뤄지고, 몇 개 구독에 적용됐는지("N개 구독에 N일이 추가되었습니다") 안내가 뜹니다.
💡참고: 적용 대상은 이용 중인 구독(이용중·연장처리·미수)뿐입니다. 체험 중·정지·취소 예약·이미 만료된 구독은 영향을 받지 않으며, 구독 상태는 바뀌지 않습니다(만료일·다음 결제일만 미뤄짐). 보너스 기간 동안 미리 청구되지 않도록 다음 결제일도 함께 미뤄집니다.
주의: 추가 일수는 1일 이상, 전체 설정의 "사용일 추가 최대(일)" 이하(기본 3,650일)여야 합니다. 숫자가 아닌 값을 넣으면 "추가 일수를 숫자로 입력하세요", 숫자지만 범위를 벗어나면 "일수는 1~N 사이여야 합니다" 오류가 목록에 표시됩니다.
팁: 사용일 추가는 시스템 관리자와 서비스 담당자 모두 사용할 수 있습니다. (수정·비활성화·삭제와 달리 전체 요금제 목록에서도 버튼이 보입니다.)
5.10 엑셀로 내려받기
목록 위쪽의 [엑셀] 버튼을 누르면 현재 검색·필터가 적용된 요금제 목록이 엑셀 파일로 받아집니다. 서비스 / 요금제 / 결제주기 / 정가 / 첫 결제 / 정기 결제 / 상태 컬럼이 들어 있습니다. 결제주기 칸에는 일·분 주기일 경우 "DAY 10일", "MINUTE 5분"처럼 실제 일수·분수가 함께 적힙니다.
💡참고: 엑셀은 현재 페이지뿐 아니라 필터에 걸린 전체 요금제를 내려받습니다(페이지 나눔 무시).
5.11 자주 묻는 질문
Q. 체험 기간과 "자동결제 안함"을 같이 켜도 되나요? 네. 같이 켜면 "체험 종료 → 첫 결제 1회 → 그 주기가 끝나면 자동 연장 없이 만료" 순으로 동작합니다.
Q. 가격을 바꿨는데 기존 고객 결제 금액이 그대로예요. 정상입니다. 변경한 가격은 다음 결제(갱신)부터 반영됩니다.
Q. 삭제가 안 됩니다. 구독이 연결된 요금제입니다. [비활성화]로 새 가입을 막고, 기존 구독이 모두 만료된 뒤 삭제하세요(5.8 참고).
Q. "분" 주기가 안 보여요. 분(MINUTE) 주기는 자동연장 테스트용이라 비운영(개발·스테이징) 환경에서만 보입니다. 운영 서버에서는 옵션이 숨겨집니다(5.3 참고).
Q. 시스템 관리자인데 전체 목록에 [수정] 버튼이 없어요. 정상입니다. 전체 요금제 목록의 [수정]·[비활성화]·[삭제]는 서비스 담당자에게만 보입니다. 시스템 관리자는 서비스 상세 화면에 들어가 그 서비스의 요금제를 관리하세요([사용일추가]는 두 역할 모두 목록에서 사용 가능).
🔗함께 보기: 실제 결제가 어떻게 잡히고 환불되는지는 일반결제와 환불에서 확인하세요.