5월판 mdx 를 빌드하여 투피 에 포스팅 한 지 벌써 보름이 넘었는데 이제 노트를 남김니다. 요새는 wikipedia 백업 사이트의 진행속도를 가늠하지 못하겠습니다.   얼마전 까지만 해도 막 에러가 나서 언제 다음 번 백업이 될까 걱정되었는데 요새는 5일 주기로 백업이 반복되기도 합니다.  

사실 mdx 파일을 만든 5월 6일 이후 5/11, 5/16 에 wikipedia download 사이트에서 백업이 있었습니다.  2일 내로 또 한번 백업 될 것 같군요.  이대로 라면 2달에 1번 릴리즈 하던 것을 1달에 2번 릴리즈 할 수 도 있겠습니다.  릴리즈도 2009년 5월 6일판  이런 식으로 써야겠지요.

참, 앞의 덧글의 강기윤님 께서  wpko_filter.exe 파일을 원하셔서 여기에 첨부합니다.
아이팟을 위해 위키백과를 wedict 과 stardict 포맷으로 변환하여 올린 사이트를 찾았습니다.  (eu81273 님의 블로그)  위키백과의 xml 파일을 바꾸는 코드를 직접 작성하신 것 같아  대단하다는 생각이 듭니다. 한 편, 제가 사용한 방법을 응용하여 stardict 용을 만들어 그 분 것과 비교해보면 어떨지 궁금 합니다.

WRITTEN BY
tinysun

,
http://download.wikipedia.org/backup-index.html  을 처리하는 서버가 1달반 가량 이상했었다.  전세계 wikipedia 의 백업이 되다 말다 하더니 결국 2월에는 MDict 데이터 파일을만들지 못했다.  하마터면 3월도 넘길 뻔 했다.  backup-index 페이지를 모니터링 하다가 덤프가 되자 마자 다운받아서 MDict 데이터 파일을 만들었다.  늘 그랬듯이 투피 에 올렸다.

3월판은 지난 번 판에 비해 표제어 수가 늘면서 파일수가 5개에서 6개로 늘었다.  파일용량이 압축해도 100M를 훌쩍 넘기는데다 투피에 업로드 제한이 있어 5 개 이내로는 맞출 수 가 없었다.   또, 달라진 것은 별거 아니지만 압축 파일명을 위키백과200903.7z 에서 위키백과_v9.03.7z  이런 식으로 바꿨다.  그 밖의 것은 1월판과 동일하다.

백과사전을 주머니에 넣고 다니면서 언제 어디서나 무엇이든 검색하는 것이 아주 편하고 유용하다.  표제어 수가 계속 늘고 있어 최신 판도 계속 만드는데, 투피에서 다운로드한 분들의 호응이 너무 좋아서 의무감 마저 생긴다.

현재 표제어 수가 93,000 여개이다.  두어달 후면 10만건을 넘길 것으로 보인다.  꾸준히 증가하고 있는 것이 고맙고 어찌보면 신통하다.


WRITTEN BY
tinysun

,

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

,