Open Net Worth
Open Net Worth는 직접 운영하는 오픈소스 개인 AI 자산 비서로, 전체 재무를 하나의 원장에 기록하고 사용자가 제어하는 AI가 관리
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
결제 기준일(매달 1일 또는 15일)까지 남은 잔여 회차 금액에 다음 달 정액을 더해 결제액을 계산합니다. 회원 안내용 카톡 문구도 만들어 줍니다. 폴더 안의 index.html 을 더블클릭하면 브라우저에서 열립니다. 설치할 것도, 인터넷 연결도 필요 없습니다. 폴더 안에 아래 파일이 같이 있어야 합니다. 하나라도 옮기면 안 됩니다. 1. 화면 맨 위에서 회원 구분을 고릅니다 신규 등록은 첫 수업일부터 기준일 전날까지 셉니다. 첫 수업일 당일 수업도 포함됩니다. 기존 회원 전환은 결제가 끝난 기간을 넣으면 종료일 다음날부터 기준일 전날까지 셉니다. 예) A 회원이 8월 8일 ~ 9월 7일까지 결제를 마쳤고 15일 기준으로 옮긴다면, 기존 수강 기간에 2026-08-08 ~ 2026-09-07 을 넣습니다. 잔여 구간은 9/8(화) ~ 9/14(월) 로 잡힙니다. 코치 · 레슨 유형 · 시간 · 요일 구분 · 횟수 · 수업 요일 · 결제 기준일을 고릅니다. 입력을 바꿀 때마다 오른쪽 결과가 바로 다시 계산됩니다. 계산 버튼은 없습니다.README 전문 보기 ↗
결제 기준일(매달 1일 또는 15일)까지 남은 잔여 회차 금액에 다음 달 정액을 더해 결제액을 계산합니다. 회원 안내용 카톡 문구도 만들어 줍니다.
폴더 안의 index.html 을 더블클릭하면 브라우저에서 열립니다.
설치할 것도, 인터넷 연결도 필요 없습니다.
폴더 안에 아래 파일이 같이 있어야 합니다. 하나라도 옮기면 안 됩니다.
index.html ← 이걸 더블클릭
prices.js ← 가격표
README.md ← 이 문서
| 구분 | 언제 쓰나 | 넣는 날짜 |
|---|---|---|
| 신규 등록 | 처음 등록하는 회원 | 첫 수업일 |
| 기존 회원 전환 | 이미 다니던 회원의 결제일을 옮길 때 | 기존 수강 시작일 · 종료일 |
신규 등록은 첫 수업일부터 기준일 전날까지 셉니다. 첫 수업일 당일 수업도 포함됩니다.
기존 회원 전환은 결제가 끝난 기간을 넣으면 종료일 다음날부터 기준일 전날까지 셉니다.
예) A 회원이 8월 8일 ~ 9월 7일까지 결제를 마쳤고 15일 기준으로 옮긴다면, 기존 수강 기간에
2026-08-08~2026-09-07을 넣습니다. 잔여 구간은 9/8(화) ~ 9/14(월) 로 잡힙니다.
코치 · 레슨 유형 · 시간 · 요일 구분 · 횟수 · 수업 요일 · 결제 기준일을 고릅니다. 입력을 바꿀 때마다 오른쪽 결과가 바로 다시 계산됩니다. 계산 버튼은 없습니다.
확인 — 첫 수업일 9/8(화) 는 선택한 수업 요일(월·목)이 아닙니다.
이건 오류가 아닙니다. 계산은 그대로 되어 있습니다. 날짜를 잘못 넣었거나 요일을 잘못 골랐을 수 있으니 한 번 확인하라는 표시입니다. 맞게 넣은 게 확실하면 그냥 쓰시면 됩니다.
계산이 아예 안 되고 이유만 나오는 경우도 있습니다 — 요일 개수가 안 맞거나, 날짜를 안 넣었거나, "휴강" · "해당 없음" 조합을 고른 경우입니다.
할인 정책 때문에 금액을 손봐야 할 때가 있습니다. 고칠 수 있는 곳이 두 군데입니다.
(가) 월 요금 — 입력칸 가운데쯤 있습니다.
가격표 금액이 자동으로 들어가 있는데, 그 숫자를 지우고 다시 쓰면 됩니다.
25만 원짜리를 22만 5천 원으로 깎는다면 225000 을 넣습니다.
그러면 회차 금액과 다음 달 정액이 전부 그 금액 기준으로 다시 계산됩니다.
칸 아래에 이렇게 나옵니다.
가격표 250,000원 → 적용 225,000원 (-25,000)
(나) 첫 결제액 — 맨 아래 금액 조정 칸에 있습니다.
계산된 최종 금액을 그대로 덮어씁니다. 끝자리를 맞춰 줄 때 씁니다.
계산값 281,250원 → 조정 270,000원 (-11,250)
두 경우 모두 원래 금액이 항상 같이 보입니다. 얼마를 깎았는지 바로 확인할 수 있습니다. 고친 칸은 파란색으로 표시되고, 옆에 되돌리기 버튼이 생깁니다.
주의 — 수업 조건(코치 · 유형 · 시간 · 횟수 등)을 바꾸면 금액이 다시 계산되면서 고쳐 놓은 값이 원래대로 돌아갑니다. 조건을 다 정한 다음 마지막에 금액을 조정하세요.
할인 사유 메모
왜 깎았는지 적어 두는 칸입니다. (예: 3개월 선결제 할인)
계산 내역 복사에는 들어가지만, 회원에게 보내는 카톡 문구에는 들어가지 않습니다.
회원명을 비워 두면 문구에 ○○○ 으로 들어갑니다.
카톡 문구는 조정된 최종 금액으로 만들어집니다.
가격표 원가와 할인 사유는 회원에게 나가지 않습니다.
금액을 깎았으면 합계가 맞도록 - 할인: -11,250원 줄이 자동으로 들어갑니다.
결과 아래 카톡 문구 칸에 자동 문구가 들어 있습니다. 보내기 전에 이 칸에서 바로 고칠 수 있습니다. (예: 준비물 안내 한 줄 추가, 말투 다듬기)
자동 문구로 되돌리기가 나타납니다.가격이 바뀌거나 강사가 늘면 prices.js 파일만 고치면 됩니다.
index.html 은 건드리지 마세요.
prices.js 를 마우스 오른쪽 클릭 → 연결 프로그램 → 메모장으로 엽니다.
더블클릭하면 브라우저가 열리거나 아무 일도 안 일어납니다. 꼭 "연결 프로그램"으로 여세요. 메모장보다 VS Code 같은 편집기가 있으면 더 편합니다.
고치기 전에 파일을 한 부 복사해 두세요. (prices.js 를 복사 → 붙여넣기 하면
prices - 복사본.js 가 생깁니다.) 잘못 고쳤을 때 되돌릴 수 있습니다.
이렇게 생겼습니다.
const PRICES = {
coaches: [
{
name: "이건우 대표",
weekday: {
"1:1": {
"20": { "1": 160000, "2": 250000, "3": 340000 },
"30": { "1": 220000, "2": 340000, "3": 460000 }
},
...
},
weekend: { ... }
}
]
};
읽는 법은 이렇습니다.
| 부분 | 뜻 |
|---|---|
name | 화면 코치 목록에 나오는 이름 |
weekday | 평일 가격표 |
weekend | 주말 가격표 |
"1:1" / "1:2" | 레슨 유형 |
"20" / "30" | 수업 시간(분) |
"1" / "2" / "3" | 주 1회 / 주 2회 / 주 3회 |
그러니까 위 예시에서 "20": { "1": 160000, ... } 은
이건우 대표 · 평일 · 1:1 · 20분 · 주 1회 = 160,000원 이라는 뜻입니다.
현재 이건우 대표 · 임광순 프로 · 임혜영 프로 세 명이 들어 있습니다.
숫자만 고치면 됩니다. 평일 1:1 20분 주2회를 25만 → 26만으로 올린다면:
"20": { "1": 160000, "2": 250000, "3": 340000 },
↑ 여기를 260000 으로
숫자에 콤마를 넣지 마세요.
"2": 260,000 ← 틀림
"2": 260000 ← 맞음
파일 맨 아래쪽에 "여기에 강사를 추가하세요" 라는 주석 덩어리가 있습니다. 그 안의 모양을 복사해서 쓰면 됩니다.
바로 앞 강사의 닫는 } 뒤에 쉼표 , 를 찍는 걸 잊지 마세요.
{
name: "임혜영 프로",
...
}, ← 이 쉼표가 있어야 합니다
{
name: "새 강사 이름",
weekday: {
"1:1": {
"20": { "1": 000000, "2": 000000, "3": 000000 },
"30": { "1": 000000, "2": 000000, "3": 000000 }
},
"1:2": {
"20": { "1": 000000, "2": 000000, "3": 000000 },
"30": { "1": 000000, "2": 000000, "3": 000000 }
}
},
weekend: null
} ← 맨 마지막 강사 뒤에는 쉼표를 찍지 않습니다
]
};
000000 자리에 실제 금액을 넣으세요.
두 가지 경우가 있습니다.
(가) 그 시간대 전체가 없을 때 → null
임광순 프로와 임혜영 프로는 주말 수업이 전혀 없으므로:
weekend: null
화면에서 주말을 고르면 "휴강" 이라고 나옵니다.
(나) 일부 조합만 없을 때 → 그 줄을 안 적으면 됩니다
임혜영 프로는 1:2 주3회가 없으므로 "3" 을 아예 적지 않았습니다:
"20": { "1": 110000, "2": 170000 }
화면에서 그 조합을 고르면 "해당 없음" 이라고 나옵니다. 이건우 대표 주말 주3회도 같은 방식입니다.
{ name: ... } 부터 짝이 맞는 } 까지를 통째로 지우고,
남은 강사들 사이의 쉼표가 맞는지 확인합니다.
(강사 사이에는 쉼표, 마지막 강사 뒤에는 쉼표 없음)
문제가 생기면 계산기가 무엇이 잘못됐는지 한국어로 알려 줍니다. 당황하지 말고 아래를 확인하세요.
| 오류 메시지 | 원인과 해결 |
|---|---|
| prices.js 파일을 읽지 못했습니다 | 파일이 없거나, 따옴표·중괄호·쉼표가 빠졌습니다. 아래 "흔한 실수" 참고 |
| coaches 목록이 없습니다 | 맨 윗줄 const PRICES = { coaches: [ 를 지웠거나 오타 |
| coaches 목록이 비어 있습니다 | 강사를 전부 지웠습니다. 최소 한 명은 있어야 합니다 |
| ○번째 강사에 name(이름)이 없습니다 | name: "..." 줄이 빠졌습니다 |
| ... 요금이 숫자가 아닙니다 | 십중팔구 콤마입니다. 250,000 → 250000 |
250,000 (X) / 250000 (O)} 와 { 사이에 , 가 있어야 합니다"1:1" 처럼 양쪽에 큰따옴표가 있어야 합니다고치기 어려우면 백업해 둔 prices - 복사본.js 의 내용을 도로 붙여 넣으면
원래대로 돌아갑니다.
Q. 기존 회원 전환에서 "기존 수강 시작일"은 왜 넣나요? 계산에는 쓰이지 않습니다. 종료일 다음날부터만 세기 때문입니다. 시작일은 안내 문구에 기간을 적고, 요일이 맞는지 확인하는 데 씁니다.
Q. 왜 prices.json 이 아니라 prices.js 인가요?
index.html 을 더블클릭해서 열면 브라우저 보안 정책 때문에 별도 .json 파일을
읽지 못합니다. .js 로 두면 서버 없이도 잘 동작합니다.
내용은 맨 윗줄 const PRICES = { 와 맨 아랫줄 }; 만 빼면 JSON과 같습니다.
Q. 계산한 회원 정보가 저장되나요? 저장되지 않습니다. 이 도구는 계산만 합니다. 새로고침하면 입력이 지워집니다.
Q. 평일과 주말을 섞어 듣는 회원은요? 요일 구분에서 평일+주말을 고르면 월 요금 칸이 비어서 나옵니다. 가격표에 없는 조합이라 협의된 월 요금을 직접 넣어야 합니다. 회차 금액은 그 값 ÷ 월 기준 횟수로 계산됩니다.
Q. 할인해 준 금액이 카톡 문구에도 반영되나요? 네. 카톡 문구는 항상 조정된 최종 금액으로 만들어집니다. 다만 가격표 원가와 할인 사유 메모는 회원에게 보이지 않습니다.
Q. 카톡 문구를 고쳤는데 다시 원래대로 돌아갔어요. 수업 조건·날짜·금액·회원명 중 하나를 바꾸면 문구가 새로 만들어집니다. 금액까지 다 맞춘 다음에 문구를 고치고 바로 복사하세요.
Q. 금액을 고쳤는데 원래대로 돌아갔어요. 수업 조건을 바꾸면 금액이 다시 계산되면서 고친 값이 초기화됩니다. 조건을 먼저 다 정하고, 금액 조정은 마지막에 하세요.
Q. 계산 규칙을 바꾸고 싶어요.
계산 규칙은 약관 기준입니다. 바꾸려면 먼저 SPEC.md 를 고쳐야 합니다.