회원관리 맵 반환 통일 + VM 가드 강화
개요
회원관리.한선의 12개 함수를 일관된 맵 반환으로 통일하고, 회원터미널.한선 호출부를 전면 수정. 권한요약 포맷 개선. crownyc VM에 7곳 타입/범위 가드 추가.
수행 내용
Task 1: 회원관리.한선 맵 반환 통일 (12개 함수)
변경 전: 숫자(-1/1), 문자열 등 혼합 반환
변경 후: 모든 action 함수가 _결과성공() / _결과오류() 맵 반환
| 함수 | 이전 반환 | 이후 반환 |
|---|---|---|
| 회원인증 | 1/-1 | 맵{성공, 아이디} / 맵{성공, 오류} |
| 권한부여 | 숫자 | 맵{성공, 등급, 서비스} |
| 권한확인 | 1/-1 | 맵{성공, 등급} / 맵{성공, 오류} |
| 전체권한부여 | 숫자 | 맵{성공, 건수, 등급} |
| 지갑입금 | 숫자 | 맵{성공, 잔액} |
| 지갑출금 | -1/숫자 | 맵{성공, 잔액} / 맵{성공, 오류} |
| 뱅크입금 | 숫자 | 맵{성공, 잔액} |
| 뱅크등급변경 | 문자열 | 맵{성공, 등급} |
| 스탁배정 | 숫자 | 맵{성공, 총보유} |
| DEX활성화 | 1 | 맵{성공} |
| DEX거래기록 | 숫자 | 맵{성공, 거래수} |
| 회원통계 | 숫자 | 맵{총회원, 총서비스, 총감사} |
Task 2: 회원등록→인증 파이프라인
Task 1의 맵 반환 통일로 자동 해결. 타입 불일치 원인이었던 회원인증이 이제 맵 반환.
Task 3: 권한요약 포맷 개선
- 이전: flat array
[서비스, 등급, 서비스, 등급, ...](i+=2 스테핑 필요) - 이후: 포맷된 문자열 배열
["서비스 : 등급이름 (숫자)", ...](i+=1 순회) - 터미널 표시 코드 단순화
Task 4: VM 타입/범위 가드 강화 (crownyc.c, 7곳)
| 영역 | 수정 |
|---|---|
| ARRAY OOM (405) | mem_count 복원 + push(0) + break |
| APPEND (408) | 범위 밖 배열에 push(va) 보장, len<0 가드 |
| SORT (409) | base<0, n<=0, base+n>MEM_MAX 가드 |
| REVERSE (410) | 동일 범위 가드 |
| HASH_NEW (412) | heap_ptr-1458 < mem_count 언더플로 가드 |
| HASH_SET (413) | va 범위 검증 + hka 음수 검사 |
| HASH_GET (414) | 동일 범위 검증 |
관련 파일
/Users/ef/CrownyOS/crownyc/pkg/libs/회원관리.한선/Users/ef/CrownyOS/crownyc/pkg/libs/회원터미널.한선/Users/ef/CrownyOS/crownyc/crownyc.c(VM 가드)- dist 복사본 동기화 완료
컴파일 결과
- 회원관리.한선: 1.8MB TOAU ✅
- 회원터미널.한선: 2.1MB TOAU ✅
- crownyc VM: 558KB 바이너리 ✅
- 맵/배열 기본 테스트: ✅