'2009/01'에 해당하는 글 4건

2007년 연말정산안내의 의료비 공제액 계산법이다.  표현만 조금 다를 뿐 내용은 2008년 것과 똑같다.

의료비 공제는 지출대상을 아래와 같이 두 그룹으로 나누어 각각의 공제액을 계산한 후 두 그룹의 공제액을 합한다

 

대상자

                        공제액

그룹 1

본인경로우대자장애자

한도 없이 전액 소득공제가 된다.

다만그룹 2.를 위해 지출한 의료비가 연간 급여의 3%에 미달하는 경우 그 미달금액은 공제액에서 차감한다.

그룹 2

그룹1. 을 제외한

기본공제대상자

연간 급여의 3%를 초과하는 금액에 대하여500만원을 한도로 하여 공제한다




아래는 2006년 연말정산안내의 의료비 공제액 계산법이다.  좀 성의없어 보이기도 하고 단순해서 쉬워보이기도 한다.   앞의 2008년도 계산 방법과는 차이가 크다.  차례대로 읽어가면서 계산하면 되고 빼기의 빼기도 없어서 쉬워 보인다.

2. 의료비 공제액의 계산
 일반적인 경우 ( 500만원 한도 )
공제대상의료비 = 의료비총액 - (총급여액×3%)
 공제대상 의료비가 500만원을 초과하는 경우
공제대상 의료비 = ①과 ②중 적은 금액 + 500만원
① 한도초과금액 = 의료비총액 - (총급여액×3%) - 500만원
② 본인, 장애인, 경로우대자를 위한 의료비 합계액



하지만 여기도 혼동의 여지가 있다.  이 계산법은 '일반적인 경우'  와  '공제대상 의료비...' 의 두 가지 경우로 분류를 하는데 분류의 기준인 '공제대상 의료비' 가 문제다.  공제액 계산 목적이 바로 '공제대상 의료비' 의 산출인데  계산을 위해 분류하는 기준에 그 값을 사용한다. 계산을 이제 하려는데 어떻게 계산 결과가 500만원이 초과되는지 미달되는지 알 수 있는가?  물론 대부분의 사람은 첫 번째 분류에서 계산한 공제대상의료비의 500만원 초과 여부를 의미하는 것이라고 눈치 채겠지만 혼동의 여지는 있다. 

어쨌든 해가 바뀌면서 상세설명은 늘어난 반면 산출 절차는 점점 복잡해지고 있다.  그러면 2006년과 , 2007, 2008년도의 의료비 공제액 관련 규정이 바뀐 것일까?  산출절차만 다를 뿐 결과 금액은 항상 동일할까?  규정이 바뀌었는지 여부는 몰라도 같은 계산 결과가 나온다는 사실은 다음과 같이 수학공식화 하고 비교함으로써 알 수 있었다.


2006년도 계산법
val2006 = min((Vt-P)^, 500) + min((Vt-P-500)^, Vi)

2008년도 계산법
val2008 = (Vi - (P-Vd)^)^  +  min((Vd-P)^, 500)

여기서 각 변수와 기호 정의는 다음과 같다.
val2006, val2008 = 2006년도, 2008년도 계산법에 의한 의료비 공제액,
Vt = 의료비총액,
P = 총급여액x3%,
Vi = 본인, 장애인, 경로우대자를 위한 의료비 합계액,
Vd = 그룹1을 제외한 기본공제대상자의 의료비 합계액,
min( x, y ) 는  x, y 중 작은 수를 의미한다.
( )^  기호는 다음과 같이 정의한다.
          x >= 0  일때는 (x)^ = x,  x < 0 일때는 (x)^ = 0.
          ( (x)^ = max( x, 0 ) 로 생각해도 된다. )

계산절차에서는 명시되지 않았지만 빼기를 한 후 0 보다 작으면 0원으로 처리하기 때문에 ()^ 가 필요하다.

정의에서 Vt = Vi + Vd  이고, 모든 변수값은 0 이상이다.

Vt 의 값을 P, P+500, P+500+Vi  의 특이점으로 구분하는 네개의 interval 로 나누어 수식을 비교한다.  각 경우에 대해 val2006 과 val2008 이 동일하게 다음과 같이 됨을 알 수 있다.
i) Vt <= P 인 경우,  0
ii) P < Vt <= P + 500 인 경우,  Vt - P
iii) P + 500  <  Vt  <=  P + 500 + Vi  인 경우,  Vt - P
iv) P + 500 + Vi < Vt  인 경우,  500 + Vi
  즉, 항상 val2006 = val2008 이다.

더 간단하게 표현되는 수식이 없을까?

쉽게 찾을 수 있다.   의료비공제액 = min((Vt-P)^, 500+Vi).


계산절차를 만들어 보자.

공제대상의료비 = 의료비총액 - (총급여액×3%)
한도액 = 500만원 + 본인, 경로우대자, 장애자를 위한 의료비 합계액
위의 공제대상의료비가 한도액을 초과하는 경우
공제대상의료비 = 한도액

계산결과는 같은데 이러면 더 단순하고 좋지 않았을까?


내 연말정산을 계산해보니 올해의 (Vt-P)^ 가 0 이어서 의료비공제를 한 푼도 받지 못한다.  여태 이걸 왜 한거지?


WRITTEN BY
tinysun

,
연말정산 시즌이다.   1월에 자료를 회사에 제출하고 3월 급여 지급할 때 정산한다고 한다.  년초인 1월에 하는 연말정산을 해나가다가 의료비 공제액 계산에서 그 복잡한 산출법을 보고야 말았다.

2008년 귀속 연말정산 관련하여 국세청에 안내된 공식이다.
얼핏보면 친절하고 상세하고 엄밀하게 표현되어 있다는 첫 인상을 받는다.
글씨가 많은데다 계산 방법을 2가지로 구분하여 합하는 것을 표로 정리한 것이 친절하고 상세해 보인다.   그리고, ①,②,가,나 등으로 참조하여 기술하는 것이 엄밀하게 표현되어 있는 것 처럼 보인다.

그런데 막상 나의 케이스를 적용하여 계산하려고 들여다 보다 한 순간 잠시 무한루프에 빠져 버린다.   ① 의 내용을 읽다가  '다만, ... ' 이라는 문구에서 ② 를 쳐다보게 만든다.  ② 에서는 어떤가?  첫 칸부터 ① 을 제외하란다.  이 때 나는 ① 의 공제대상 의료비를  보고 거기에 있는 '다만 ..' 문구와 ② 를 또 쳐다본다.

지금 생각해 보건대   ['①' 을 제외한 ... ]  대신  ['①' 의 대상자를 제외한 ... ] 으로 했으면 조금 나았을까 싶다.

하지만 이것은 시작이었다.  그 문제의 '다만, ... ' 문구는 표현상으론 짧고 단순하지만 계산상으로는 그렇지 않다.   ① 의 공제대상 의료비를 계산하기 위해 ①의 의료비 지출액을 사용한다.  그런데 난데없이 다만 이라는 단서로 ②의 의료비 지출액을  들척인다.  그것도 '의료비금액' 으로 표기하여 혼동을 주면서 총급여액x3% 의 미달여부를 따진다.   이제 의료비공제액 계산법의 하일라이트가 나온다.  미달하는 금액을 차감한 금액!

미달 금액의 차감은  빼기의 빼기다.  떼간 세금 줄여서 환급받는 것도 결국 빼기의 빼기가 아닌가?  연말정산의 철학인가보다.

복잡한 규정 때문에 계산법도 이렇게 복잡해 진 것이라고 생각했었다.  다음에는 2006년도와 2007년도 연말정산의 의료비 공제액 계산표를 보겠다.


WRITTEN BY
tinysun

,
http://download.wikipedia.org 에서는 세계 각국 버전의 wikipedia 가 차례대로 순환하며 dump 되고 있다.    한국어 위키백과 dump 가 1바퀴 순환하는데에 지난 11월과 12월사이는 1달이 조금 넘었는데 이번에는 23일 밖에 안걸렸다.  그 사이 dump 서버가 빨라진 것일까?

요사이 kowiki 의 dump 순서가 다가 오는 것을 지켜보고 있다가 아침에 dump 가 된 것을 보자마자 download 하여 잽싸게 MDict 로 변환하였다.   http://todaysppc.com 에 올리기 까지 2시간 남짓 걸렸다.  이렇게 해서 지난 1월 3일 이후 보름여 만에 또 한 무더기의 데이타파일들을 업로드했다.

그런데, About 페이지의 머리글을 2008년 12월 이라고 넣어 버리는 실수를 해버렸다.  어차피 백과사전 본문이 중요한 거니까... 냅 두기로 했다.  다음에는 잘하지 뭐.  다음 dump 는 2월 중순이 될 듯 한데 그 때는 표제어 수가 90,000 을 넘길 것으로 예상된다.


WRITTEN BY
tinysun

,
한 달여만에 또 한번 위키백과 변환 작업을 하였다.

지난 번에는 에러가 나는 부분을 리눅스상에서 스크립트를 사용하여 skip 시켰는데 이번에는 C++ 코드를 작성하여 돌려 보았다.  평소 걸끄러워 보였던 본문 첫 부분의 thumb 문자도 제거해 버렸다.  

제작 방법은 기본적으로 Xcaliber 와 유사하지만 중간에 깨진내용과 thumb 를 처리하기 위한 filtering 프로그램을 한 번 돌려주는 것이 다르다.
 

1. http://download.wikipedia.org/kowiki/ 에서 pages-articles.xml.bz2 파일을 다운받는다. 

2. 알집으로 bz2 압축을 풀고 pages-articles.xml 파일로 이름을 변경한다.

3. WikiToMDict 2.0.exe 을 이용해서 wiki.txt파일로 변환한다.

4. wpko_filter.exe 를 이용해서 wiki_filtered.txt 로 변환한다.

5. MdxBuilder를 이용해서 mdx파일로 변환한다. 
Source : wiki_filtered.txt
Target : 위키백과_v8.12.mdx
Original format : MDict(Html)
Encoding : UTF-8(Unicode)
Title : Korean Wikipedia v8.12
Description :  (About 내용입력)

여기서 MdxBuilder 는 MDict 제작사에서 무료로 제공하는 MDict 사전 빌더 프로그램이다.

중요한 역할을 하는 프로그램은 위키백과의 xml 을 해석하여 MDict 빌더 입력을 위한 txt 파일을 생성하는 프로그램인 WikiToMDict 이다.  

이것은 MDict 에서 제공한 것도 아니고 위키백과에서 제공하는 것도 아니다.

출처인 http://www.hi-pda.com/forum/viewthread.php?tid=357806 로 보아 중국에서 만들어 졌음을 알 수 있다.  그런데 화면에 출력되는 진행 표시를 보면 infodisiac.com 에서 제공하는 툼레이더용 변환툴인 WikiToTome.pl 펄스크립트를 고친 것으로 보인다.

수 많은 위키백과 편집자와 infodisiac 의 TomeRaider 용 오리지널 perl 스크립트 개발자, WikiToMDict 개발자, MDict 개발자의 노력이 들어 있는 파일이다.  그것들에 비하면 내가 들인 노력은 아주 조그마한 것이다.

이 자리를 빌어 한국어 위키백과에 공헌하시는 분들께 또 한 번 감사드립니다.


WRITTEN BY
tinysun

,