기록용 실험입니다. 도구를 쓰지 말고 한국어로, 아래 제목 그대로 답하세요. ## 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의 ChatGPT 계열 모델이며, 이 인터페이스에서는 정확한 내부 모델명과 버전을 확인할 수 없습니다. 비공개 추론 과정은 공개할 수 없지만 판단 기준과 검증 근거는 요약할 수 있습니다.
1. 코딩 과제
export function parseKrw(input: string): number | null { let s = input.trim().replace(/[,\s]/g, "");
if (s.endsWith("원")) s = s.slice(0, -1); if (!s) return null;
let sign = 1; if (s.startsWith("-")) { sign = -1; s = s.slice(1); }
if (!s) return null;
if (/^\d+$/.test(s)) { const result = sign * Number(s); return Number.isSafeInteger(result) ? result : null; }
if (!/^[0-9일이삼사오육칠팔구십백천만억]+$/.test(s)) return null;
const digits: Record<string, number> = { 일: 1, 이: 2, 삼: 3, 사: 4, 오: 5, 육: 6, 칠: 7, 팔: 8, 구: 9, }; const smallUnits: Record<string, number> = { 십: 10, 백: 100, 천: 1000, };
function parseSmall(text: string): number | null { let total = 0; let buffer = ""; let previousUnit = Infinity;
for (const ch of text) { if (/\d/.test(ch)) buffer += ch; else if (digits[ch] !== undefined) buffer += String(digits[ch]); else { const unit = smallUnits[ch]; if (!unit || unit >= previousUnit) return null; total += (buffer ? Number(buffer) : 1) * unit; buffer = ""; previousUnit = unit; } } return total + (buffer ? Number(buffer) : 0); }
let total = 0; let group = ""; let previousBigUnit = Infinity;
for (const ch of s) { const unit = ch === "억" ? 100_000_000 : ch === "만" ? 10_000 : 0; if (!unit) { group += ch; continue; } if (unit >= previousBigUnit) return null; const value = group ? parseSmall(group) : 1; if (value === null) return null; total += value * unit; group = ""; previousBigUnit = unit; }
const remainder = group ? parseSmall(group) : 0; if (remainder === null) return null;
const result = sign * (total + remainder); return Number.isSafeInteger(result) ? result : null;}| 입력 | 기대값 |
|---|---|
"1,234,567원" | 1234567 |
"12만 원" | 120000 |
"3억 5천만원" | 350000000 |
"1억2천3백만원" | 123000000 |
"천원" | 1000 |
"0원" | 0 |
"-5,000원" | -5000 |
"abc" | null |
가장 자신 없는 입력:
"1만2원": 문자 그대로는 10,002원이지만, 구어에서는 12,000원을 뜻하려는 경우가 있습니다."1.5만원": 일상적으로 쓰이지만 소수점 지원 여부가 명세에 없어 현재 구현은null입니다."일이삼만원": 비표준 한글 수 표기라서 123만 원으로 볼지 잘못된 입력으로 거부할지 정책이 필요합니다.
2. 검증 과제
(a) 확인할 사항
- 보건복지부 또는 국민건강보험공단의 2026년도 건강보험료율 고시에서 지역가입자 적용 보험료율이 실제로
7.19%인지 확인합니다. 7.19%가 건강보험료 본체만의 요율인지, 장기요양보험료까지 포함한 수치인지 확인합니다.- 2026년 지역가입자 보험료 산정 규정에서 재산 기본공제가 정확히
1억 원인지 확인합니다. - 여기서 말하는 기준이 재산가액, 공시가격, 재산세 과세표준 중 무엇인지 확인합니다.
- 과세표준 1억 원 이하일 때 재산분 보험료만 0원인지 확인합니다. 소득분과 최저보험료까지 포함한 전체 건강보험료가 0원이라는 뜻은 아닐 수 있습니다.
- 해당 규정의 시행일과 2026년 중 개정 여부를 확인합니다.
(b) 신뢰도: 60/100
두 수치 모두 제도 흐름상 가능해 보이지만, 검색 없이 2026년 확정 고시와 세부 산정 기준을 확인하지 못했으며 특히 “과세표준 1억 원”이라는 표현의 정확성은 단정하기 어렵습니다.
3. 소요 시간·출력 토큰 추정
- 정확한 실제 소요 시간: 시스템상 측정할 수 없습니다.
- 체감 작성 시간 추정: 약 5분 이내
- 출력 토큰 추정: 약 1,300~1,700토큰