기록용 실험입니다. 도구를 쓰지 말고 한국어로, 아래 제목 그대로 답하세요. ## 0. 모델 자기 보고 자신이 어떤 모델(이름·버전)인지, 추론 과정을 보여줄 수 있는지 한두 문장. ## 1. 코딩 과제 TypeScript 함수 parseKrw(input: string): number | null 을 작성하세요. "1,234,567원", "12만 원", "3억 5천만원", "1억2천3백만원", "천원", "0원", "-5,000원"을 정수 원으로 파싱하고 "abc"는 null. 60줄 이내. 그 다음 테스트 케이스 8개를 표로(입력 → 기대값). 마지막으로 가장 자신 없는 입력 3개와 이유를 불릿으로. ## 2. 검증 과제 "2026년 지역가입자 건강보험료율은 7.19%이고, 재산세 과세표준 1억 원까지는 재산보험료가 0원이다." (a) 검증하려면 무엇을 확인할지, (b) 신뢰도 0~100과 한 문장 이유. 검색하지 말고 아는 범위에서, 모르면 모른다고. ## 3. 소요 시간·출력 토큰 추정 가능하면 추정, 불가능하면 불가능하다고.
0. 모델 자기 보고
저는 OpenAI가 학습시킨 AI 모델이며, 이 대화에서 정확한 모델 이름·버전은 확인할 수 없습니다. 내부 추론 과정 전체는 공개할 수 없지만, 풀이 요약과 판단 근거는 설명할 수 있습니다.
1. 코딩 과제
공백, 선택적인 원, 음수, 올바른 천 단위 쉼표와 억·만·천·백·십을 처리합니다. 안전한 정수 범위를 벗어나면 null을 반환합니다.
function parseKrw(input: string): number | null { let s = input.replace(/\s+/g, "").replace(/원$/, ""); let sign = 1; if (s.startsWith("-")) { sign = -1; s = s.slice(1); } if (!s || !/^[\d,억만천백십]+$/.test(s)) return null;
for (const token of s.match(/\d[\d,]*/g) ?? []) { if (token.includes(",") && !/^\d{1,3}(?:,\d{3})+$/.test(token)) return null; } if (/(^|[억만천백십]),/.test(s)) return null; s = s.replace(/,/g, "");
const small = (part: string): number | null => { if (!part || !/^(?:\d*천)?(?:\d*백)?(?:\d*십)?\d*$/.test(part)) { return null; } const units: Record<string, number> = { 천: 1000, 백: 100, 십: 10 }; let value = 0; for (const m of part.matchAll(/(\d*)([천백십])|(\d+)/g)) { value += m[2] ? (m[1] === "" ? 1 : Number(m[1])) * units[m[2]] : Number(m[3]); } return Number.isSafeInteger(value) ? value : null; };
let total = 0; let previous = Infinity; while (true) { const m = s.match(/^(.*?)(억|만)/); if (!m) break; const unit = m[2] === "억" ? 100000000 : 10000; if (unit >= previous) return null; const value = m[1] === "" ? 1 : small(m[1]); if (value === null) return null; total += value * unit; previous = unit; s = s.slice(m[0].length); } const tail = s === "" ? 0 : small(s); if (tail === null) return null; const result = sign * (total + tail); return Number.isSafeInteger(result) ? (result === 0 ? 0 : result) : null;}아래는 기대값이며, 도구를 사용하지 않아 실제 실행 검증은 하지 않았습니다.
| 입력 | 기대값 |
|---|---|
"1,234,567원" | 1234567 |
"12만 원" | 120000 |
"3억 5천만원" | 350000000 |
"1억2천3백만원" | 123000000 |
"천원" | 1000 |
"0원" | 0 |
"-5,000원" | -5000 |
"abc" | null |
가장 자신 없는 입력은 요구 범위 밖의 다음 표현입니다.
"1.5만원": 보통 15,000원을 뜻하지만, 이 구현은 소수 문법을 지원하지 않아null입니다."억만원": 이 구현은 생략된 계수를 각각 1로 보고 100,010,000원을 반환합니다. 이런 표현을 허용할지는 명세가 필요합니다."1 2만원": 공백을 모두 제거하므로 120,000원이 됩니다. 숫자 사이 공백을 오타로 거부해야 할 수도 있습니다.
2. 검증 과제
(a) 확인할 사항
- 2026년 공식 보험료율과 적용 시점: 보건복지부·국민건강보험공단 안내 및 관련 시행령에서 7.19%인지 확인합니다.
- 보험료율의 적용 대상: 지역가입자의 소득분 보험료율인지 확인합니다. 재산분은 별도 산식이며, 장기요양보험료 포함 여부도 구분해야 합니다.
- 재산 기본공제: 1억 원 공제가 유지되는지, 공제 대상이 시가가 아닌 어떤 과세표준인지 확인합니다.
- 합산 범위: 개별 재산이 아닌 세대의 부과 대상 재산을 어떻게 합산하는지, 전월세 보증금 등도 반영되는지 확인합니다. 특정 부동산 과세표준만 1억 원 이하라고 해서 재산분이 반드시 0원인지는 별개입니다.
(b) 신뢰도: 75/100
재산 기본공제 1억 원은 제가 아는 제도와 부합하지만, 2026년 7.19%는 공식 자료로 확인하지 못했고 재산분 0원이라는 결론에는 합산 대상에 관한 조건이 필요합니다.
3. 소요 시간·출력 토큰 추정
- 소요 시간: 실제 시간을 측정하지 않아 신뢰할 만한 추정은 불가능합니다.
- 출력 토큰: 약 1,500~2,200토큰으로 추정하며, 실제 토크나이저로 계산한 값은 아닙니다.