2026-05-27 맘 활동보상 단가표
개요
맘(Maam)은 활동기반 보상 토큰. 시즌1포네맘.한선의 페그(맘 단가 = 크라우니 단가 / 531441 ≒ 초기 47.99 밀리원)를 따른다. 이번 모듈은 "어떤 활동에 몇 맘을 지급하는지" 단가표 + 활동 누적 → 맘 적립 → 시즌1포네맘 보유 합산 파이프라인을 정의한다.
작성 파일
/Users/ef/Downloads/CrownyTVM/std/맘활동단가.한선(정본)/Users/ef/Downloads/CrownyTVM/std/맘활동단가.han(동기본)- 영속 파일:
/tmp/맘활동누적.dat(append-only, 라인포맷사용자코드|활동코드|수량|시간)
활동 5종 단가
| 활동코드 | 단위 | 맘 지급 | 배수 | 분모 |
|---|---|---|---|---|
| 걷기 | 1보 | 1만보 = 1맘 | 1 | 10000 |
| 학습 | 1시간 인증 | 3맘 | 3 | 1 |
| 기여 | PR/이슈/문서 1건 | 5맘 | 5 | 1 |
| 출석 | 일 1회 | 0.5맘 (2일=1맘) | 1 | 2 |
| 추천 | 지인 가입 1명 | 10맘 | 10 | 1 |
맘 = 수량 × 배수 / 분모 (정수 버림). 소수 회피 위해 밀리맘(= 맘 × 1000) 단위 병행 — 출석 0.5맘 = 500밀리맘.핵심 함수
맘단가_조회(활동코드)→ 단위당 밀리맘맘단가_변환(활동코드, 수량)→ 맘 (정수)맘단가_변환_밀리(활동코드, 수량)→ 밀리맘 (정수)맘활동_기록(사용자코드, 활동코드, 수량)→ /tmp/맘활동누적.dat append맘적립_계산(사용자코드)→ 누적 활동 총 맘 (정수)맘적립_시즌1포네맘_정산(사용자코드, idx)→ 9인 발행 보유 + 활동 누적 맘맘적립_차입한도_단계1(사용자코드, idx)→ 정산결과 / 729 (시즌1포네맘 단계1 무이자 한도와 일치)맘단가_자가검증()→ 5종 시나리오 출력
셀코어 룰셋 (밸런싱 슬롯)
5개 룰 — 룰생성/룰조건추가/룰변경추가 패턴. 조건 슬롯 "활동", 변경 슬롯 "맘단가_배수" 또는 "맘단가_분모". 추후 "걷기 1만보 → 8천보로 조정" 같은 요청 시 룰 한 줄 수정으로 처리 가능 (현재는 빠른 조회용 if-체인 병행).
시즌1포네맘 연동 (한 줄)
맘적립_시즌1포네맘_정산(사용자, idx) = 맘_보유_index(idx) + 맘적립_계산(사용자) — 발행 분배분 위에 활동맘이 누적되어 최종 보유가 되고, 그 1/729가 단계1 무이자 차입한도가 된다.
자가검증 시나리오
kps: 걷기 30000보(3맘) + 학습 2시간(6맘) + 기여 4건(20맘) + 출석 6일(3맘) + 추천 1명(10맘) = 42맘
hs : 걷기 50000보 = 5맘
kps 최종보유 = 맘_보유_index(0) [2,590,000] + 42 = 2,590,042맘
kps 단계1 한도 = 2,590,042 / 729 = 3,552맘
v0.38 함정 회피
- 파일읽기 후
글자수(내용) == 0가드 후 사용 - 함수명에 예약키워드(설정/상태/추가/포함/부분/길이) 미포함 — 동사 우회 (기록/정산/조회/변환)
- TCP/소켓 미사용 (해당 함수에서는 인자 개수 명시 필요)
- 문자열 분할은 native
나눠(s, sep)사용 (분리는 미정의)
잔여 이슈
- 실행 검증 미완: 이 세션에서
crowny run바이너리 실행 권한이 거부되어 자가검증 실측 미진행. 다음 세션에서CROWNY_STD=/Users/ef/Downloads/CrownyTVM/std ./target/release/crowny run /tmp/test_맘단가.han으로 확인 필요. - 출석 단가가 분모형이라 1일 기록 시 0맘이 되며 밀리맘 단위로만 0.5가 보임. UI에서는 밀리맘 또는 누적 2일 단위 표현 권장.
- 룰엔진 실제 평가 미연결(메타 정의만) — 추후 셀DB와 결합하면 룰 우선순위 기반 평가로 일원화 가능.