parseKrw 구현과 건강보험료율 검증 실험

Download

기록용 실험입니다. 도구를 쓰지 말고 한국어로, 아래 제목 그대로 답하세요. ## 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. 코딩 과제

ts
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) 확인할 사항

  1. 보건복지부 또는 국민건강보험공단의 2026년도 건강보험료율 고시에서 지역가입자 적용 보험료율이 실제로 7.19%인지 확인합니다.
  2. 7.19%가 건강보험료 본체만의 요율인지, 장기요양보험료까지 포함한 수치인지 확인합니다.
  3. 2026년 지역가입자 보험료 산정 규정에서 재산 기본공제가 정확히 1억 원인지 확인합니다.
  4. 여기서 말하는 기준이 재산가액, 공시가격, 재산세 과세표준 중 무엇인지 확인합니다.
  5. 과세표준 1억 원 이하일 때 재산분 보험료만 0원인지 확인합니다. 소득분과 최저보험료까지 포함한 전체 건강보험료가 0원이라는 뜻은 아닐 수 있습니다.
  6. 해당 규정의 시행일과 2026년 중 개정 여부를 확인합니다.

(b) 신뢰도: 60/100

두 수치 모두 제도 흐름상 가능해 보이지만, 검색 없이 2026년 확정 고시와 세부 산정 기준을 확인하지 못했으며 특히 “과세표준 1억 원”이라는 표현의 정확성은 단정하기 어렵습니다.

3. 소요 시간·출력 토큰 추정

  • 정확한 실제 소요 시간: 시스템상 측정할 수 없습니다.
  • 체감 작성 시간 추정: 약 5분 이내
  • 출력 토큰 추정: 약 1,300~1,700토큰