현재 프로그램은 FreeBSD에서 C 로 코딩한 것입니다. 이를 윈도우 환경의 프로그램으로 전환할 개발자를 찾고 있습니다.

  주요 기능은 한글로 된 주소 (시도, 시군구, 읍면동, 번지-호)를 가져와서 PNU Code 테이블에서 검색하여 시도,시군구,읍면동을 PNU Code로 변경한후 PNU Code, 번지-호 정보를 이용하여 3700만 정도의 EDG 코드 테이블에서 해당 EDG 값을 찾아내는 프로그램입니다.  (EDG는 정부에서 시행하는 인구통계를 작성하는 지역의 단위입니다) 기능적으로는 간단하지만 검색 테이블의 테이터가 PNU Code 테이블은 수량이 작지만 EDG 코드가 3700만 정도로 대량이고 또한 입력되는 한글 주소도 수백만 내지 수천만 단위의 다량 데이터이므로 단위 시간당 얼마나 많은 검색을 할 것인가가 중요한 이슈라 하겠습니다.  즉, 기능적으로 간단한 알고리즘을 대량 데이터 검색에서 어떻게 속도를 높일 것인가가 중요하다 하겠습니다. 
 
-. 현재 개발환경
OS : FreeBSD
개발언어 : ANSI C
DB : Sqlite
 
-. 윈도우 개발 버젼
OS : 윈도우 서버들
개발언어 : VC++
DB : Sqlite
 
위 개발 환경을 보면 DB 로 Sqlite가 사용되었습니다.  흔히 사용되는 DB를 사용하지 않고 이를 사용한 이유는 실행 속도를 높이기 위해서이며 유닉스 환경에서 생성된  DB를 윈도우 환경에서도 동일하게 사용하기 위함입니다.  윈도우 버젼 개발에서 C 로 코딩된 부분 전체를 VC++로 전환되기를 바라는 것이 아니라 UI나 검색 한글 주소 입력 부분 등 인터페이스 측면을 제외한 나머지 부분은 현재 개발된 C 함수를 그대로 사용해 주셨으면 합니다.  C로 코딩된 부분이 뛰어난 코드라서가 아니라 추후 개발 및 수정에서 계속 유닉스 환경에서 C로 개발되고 이를 윈도우쪽으로 전환할 예정이기 때문입니다. 
 
POSIX Thread 를 이용하여 Multi-Thread 로 프로그램이 실행됩니다.  그러나, 각 쓰레드간 정보를 주고 받는 경우가 없으므로 개별 쓰레드는 완전히 독립적으로 실행됩니다.  단지 검색을 나누어서 분담 형태로 검색한다는 의미입니다.  그러므로 쓰레드 코딩에서 복잡함은 없을 것으로 생각합니다.  POSIX Thread를 윈도우 쓰레드로 전환하여 코딩해야 할 것입니다.  멀티 작업을 반드시 해야 하기 때문입니다. 
 
검색 속도를 높이기 위해 하나의 DB에 모든 데이터를 넣지 않고 16개 시도별로 EDG 코드를 분리하여 하나의 DB에 하나의 테이블을 생성하여 검색합니다.  단일 DB로 가는 경우 3 기가 정도의 파일이라서 쿼리 질의에 시간이 더 소요되었기 때문입니다. 
 
또한 윈도우 프로그램이 실행될때 어떤 환경으로 한글 주소를 입력 받을지, 결과물을 어떻게 출력할지, 또한 사용자 인터페이스는 어떻게 할지 등에 대해서는 현재 미정인 상태입니다.
 
이상과 같이 현재 개발된 내용을 간략히 정리하였습니다.  Sqlite 사용은 http://www.sqlite.org/ 에서 참조할 수 있으며 기본 라이브러리 사용은 이미 C로 코딩되어 있습니다.

기타 문의사항은 lee.bongwoo@infonetkorea.com이나 031-705-0031 인포네트로 전화주셔서 이봉우 과장을 연결해달라고 하시면 됩니다.

Posted by 파란불꽃


,