AI로 만들어본 것들 (4편) — 간이과세 확인 도구, 판정의 69%를 포기했습니다

결론부터: 사업자등록 때 겪은 불편으로 간이과세 배제 확인 도구를 만들었습니다. AI에게 시켜 이틀 만에 배포까지 갔어요. 그런데 만들면서 내린 가장 중요한 결정은 기능을 더한 게 아니라 빼는 쪽이었습니다 — 데이터 647행 중 448행(69%)은 자동 판정을 하지 않기로 했거든요. 왜 그랬는지, 그리고 그 판단을 하게 만든 아찔한 사건 하나를 풀어봅니다.

지난 편 → 3편 — 문서 민감정보 자동 마스킹 도구 만들기

왜 만들었나

사업자등록을 하면서 내가 간이과세 대상인지 확인하는 게 꽤 번거로웠습니다. 국세청이 매년 고시로 배제 기준을 정하는데, 그게 한글 문서로 나오거든요. (이 이야기는 1인 사업자 실무 5편에 자세히 썼습니다.)

"이거 검색으로 바꾸면 되겠는데" 싶었습니다. 데이터는 공개돼 있고, 상업적 이용도 제한이 없었어요. 전형적인 정적 데이터 + 판정 로직 문제로 보였습니다.

첫 관문 — 데이터가 한글 문서였습니다

국세청 고시는 HWPX 파일로 공개됩니다. 처음엔 막막했는데, 열어보니 의외로 다룰 만했어요. HWPX는 사실 ZIP 압축 파일이고, 풀면 안에 XML이 들어 있습니다. 표는 XML 태그로 구조가 잡혀 있어서 추출이 됩니다.

여기서 하나 배웠습니다. 별표 번호를 믿으면 안 됩니다. 2024년 고시에서는 별표 1이 종목기준이었는데, 2026년 고시에서는 별표 1이 과세유흥장소기준으로 바뀌어 있었어요. 번호로 찾도록 짰다면 다음 개정에서 조용히 엉뚱한 표를 읽었을 겁니다. 그래서 번호 대신 제목 텍스트로 찾도록 바꿨습니다.

이런 건 AI가 알아서 해주지 않습니다. 두 판본을 다 넣고 돌려보라고 시켜야 드러나요.

진짜 함정 — 의미가 정반대로 나갔습니다

여기가 이 편에서 제일 아찔했던 부분입니다.

고시의 "적용범위" 칸은 사람이 읽으라고 쓴 문장입니다. 그런데 한 칸 안에 정반대 의미가 섞여 있었어요.

  • 전사업자(다만, 다음 사업자는 제외) - 노점 …(525911) → 나열된 업종이 빠진다는 뜻
  • 아래 업종사업자 - 금속제가구(523311) → 나열된 업종 대상이라는 뜻

같은 형태로 업종코드가 나열돼 있는데, 하나는 "제외 대상"이고 하나는 "배제 대상"입니다. 정반대죠.

AI가 짠 첫 버전은 이걸 구분하지 못하고 전부 "제외"로 처리했습니다. 그 결과 화면에 이런 문구가 떴어요.

입력하신 업종코드(523311)가 위 제외 목록에 있습니다. 귀하의 업종은 제외될 수 있습니다.

원문은 정확히 반대였습니다. "이 업종만 배제 대상"이었거든요. 사용자에게 "당신은 괜찮습니다"라고 말하고 있었는데, 실제로는 배제 대상이었던 겁니다.

더 무서운 건 에러가 안 났다는 점입니다. 프로그램은 멀쩡히 돌고, 화면도 정상으로 보이고, 다만 답이 반대일 뿐이었어요. 검사역 AI가 원문과 대조하다 잡아냈습니다.

그래서 69%를 포기했습니다

이 사건 이후 방향을 바꿨습니다. "어떻게든 판정한다"에서 "애매하면 판정하지 않는다"로요.

문구의 의미를 확실히 분류할 수 있는 경우에만 판정하고, 조금이라도 애매하면 판정을 포기하고 고시 원문을 그대로 보여주기로 했습니다. 그 결과가 이렇습니다.

  • 지역기준 데이터 647행
  • 확실히 분류된 것 199행
  • 판정을 포기한 것 448행 — 전체의 69%

절반을 훌쩍 넘습니다. 자동화 도구인데 3분의 2를 자동화하지 않은 셈이죠.

처음엔 이게 실패처럼 느껴졌습니다. 그런데 실제로 한 번 더 겪어보니 생각이 바뀌었어요. 분류 규칙을 정교하게 다듬을수록 새로운 오분류가 생겼습니다. 1차 수정 후에도 10행이 여전히 반대로 나오고 있었거든요.

틀린 답을 자신 있게 주는 것보다, "모르겠으니 원문을 보세요"가 낫습니다. 특히 이 도구는 세금 판단을 돕는 거라, 틀리면 사용자가 실제로 손해를 봅니다.

검증을 다섯 번 했는데, 정작 제가 30초 만에 찾았습니다

만들면서 검증을 꽤 돌렸습니다. 동작 확인용 검사역, 결함을 파고드는 검사역, 다른 세션의 독립 검증까지 총 다섯 번이요. 그 과정에서 결함이 20건 나왔고 심각한 것들은 다 고쳤습니다.

그런데 배포하고 제가 직접 써보니, 30초 만에 두 개가 걸렸습니다.

  1. 어느 칸에 뭘 넣어야 할지 모르겠더군요. 탭 이름이 "종목기준 / 지역기준"이었는데, 그게 고시 용어라 일반인은 모릅니다. 저는 만든 사람인데도 건물명을 업종 칸에 넣고 "없음"을 봤어요.
  2. "이거 결국 일반과세 확인 아닌가?" 하고 묻다가, 도구가 매출 기준을 확인해주지 않는다는 고지가 없다는 걸 알았습니다. 배제 기준에 안 걸려도 매출이 많으면 일반과세인데, 그 말이 어디에도 없었어요.

왜 다섯 번의 검증이 이걸 놓쳤을까요. 답이 명확했습니다. 검증이 전부 "고시 문서 안에서만" 이뤄졌기 때문입니다. 코드가 고시대로 동작하는지는 집요하게 봤지만, "이 도구가 다루지 않는 것 때문에 사용자가 오해하는가", "사용자가 어디에 뭘 넣을지 아는가" 는 아무도 묻지 않았습니다.

기능이 맞는지는 AI가 잘 봅니다. 쓸 만한지는 안 봅니다. 물어보지 않았으니까요.

정리 — 자동화의 질은 "어디서 멈췄나"로 결정됩니다

  • HWPX는 ZIP+XML이라 파싱이 됩니다. 단 별표 번호는 개정 때 바뀌니 제목으로 찾으세요
  • 사람이 읽으라고 쓴 문서는 한 칸에 정반대 의미가 섞여 있을 수 있습니다. 에러 없이 반대 답이 나가는 게 제일 무섭습니다
  • 애매하면 판정하지 않는 게 낫습니다. 이 도구는 69%를 포기했고, 그게 옳았습니다
  • AI 검증은 "시킨 것"만 검증합니다. 시키지 않은 관점(쓸 만한가, 안 다루는 게 뭔가)은 사람이 직접 써봐야 나옵니다

3편에서 "무엇을 가릴지는 사람이 판단한다"고 썼는데, 이번엔 그 짝이 되는 교훈을 얻었습니다. 무엇을 판정하지 않을지도 사람이 정해야 합니다.

다음 편 → 5편 — 이틀 만에 만들었는데, 방문자가 0이었습니다

만든 도구는 여기 있습니다 → 간이과세 될까? (무료, 로그인 없음)

댓글