뭐 형태소 분석기도 거의 다 만들어가고 메너리즘에 빠져있는 나에게 약간의 충격을 주기 위해 이번주부터 사전관리 툴을 만들기로 했다.
전부터 간단하게나만 만들어 보려고 했었지만 내내 바쁘다는 핑계로 미루고 있었다.
한번 만들어 보자고..
물론 응용 프로그램 형식의 GUI프로그램으로 만들어야 겠고.
원격 게다가 원격지원 기능도 있으면 좋겠다는 생각이 든다.
서버에 사전파일이 있고 그걸 클라이언트가 수정을 하는 형식으로 그럼 그 사전파일의 버전관리가 편해질꺼기 때문이다. 뭐 이정도의 원격지원기능은 일단 나중에 생각하기로 하고..
기본적인 기능으로 단어가 입력이 되었을때 자동으로 정렬이 가능해야겠고 게다가 사전 크기에 따라서 관련 헤더파일도 고쳐지면 더 좋겠다.
뭐 간단하게 말하자면 끼워넣기 식의 알고리즘이 되겠는데 이게 끼워넣기가 사전파일 커지면 커질수록 속도가 느려질꺼라는거다. 앞에서 끼워넣어지면 그 뒤에 있는 단어들은 다들 뒤로 밀릴테니…
이 부분을 어떻게 하면 효율적이고 빠르게 진행시킬수 있는지가 고민이다.
대충 만들었다가는 나중에 다시 사전관리툴 알고리즘을 수정할때가 올거같아서 그렇다.
첫번째로 생각해볼 해결방법은 메모리에 사전파일 자체를 올려버리는거다.
물론 사전파일 자체가 음절 단위로 분리 되어 있기때문에 기껏해봤자 가장 큰 음절사전파일 하나가 100kb 남짓한다.
요즘 컴퓨터에 100kbyte정도 메모리에 올리는건 거의 신경을 안쓰기 때문에 가장 좋은 방법이긴 하다.
disk IO도 줄일수 있고…
두번째는 Disk io를 많이 주는 방법… 그냥 쌩짜로 집어넣고 나머지는 뒤로 밀어버리는 방식.(무식한 방법인데 가장 구현하기 편하지..)
사실 이 두가지 방법밖에는 생각을 못해봤다.
첫번째 방법으로 프로그램에 부하나 속도가 얼마나 걸릴지 모르겠지만. 일단 여러 테스트를 거치고 여러 고수분들의 조언을 얻어서 알고리즘 정도만 구현해봐야 겠다.
개발 언어 : Python + wxPython
개발 툴 : Boa Constructor
사전 관리 툴 만들기 by from __future__ import dream is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.