336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

sqlite는 우선 소스도 공개 되어 있고

만드는 방법도 여러가지가 존재 합니다

그중에서 윈도우의 cmd에서 만드법을 설명 합니다


우선 실행 파일을 받으셔야 합니다

http://sqlite.org/download.html 사이트로 이동하셔서

Precompiled Binaries For Windows

sqlite-3_6_11.zip
(240.77 KiB)

A command-line program for accessing and modifing SQLite databases. See the documentation for


위 파일을 받습니다

만약 사이트에 이동 하셨을때 위와 같은 링크가 없다면 페이지가 바뀐 것이니

precompiled binaries for windows에 있는걸 받으시면 되겠습니다

받으시고 압축을 푸시면 sqlite3.exe 파일이 하나 들어 있는걸 보실수 있을 겁니다

해당 파일을 편한 디렉토리에 넣으시고

윈도우즈 시작 -> cmd -> 해당 폴더로 이동 합니다

그후에 sqlite3.exe 디비파일명 하시고 엔터를 누루시면 db가 생성 됩니다

영문이 자신 있으시다면 http://sqlite.org/sqlite.html 여기서 자세한 사항을 확인해 보시면 되고요 ^^

그럼 mysql에서 많이 보던 command 라인을 보시게 되는데요  (실명이 나와서 살짝 지웠습니다 )



일반 sql문을 지원합니다

sub query는 지원이 약하고요 mysql에서 보던 limit를 지원 합니다

테이블을 만드실려면 http://www.sqlite.org/datatype3.html 여기에 나와 있는 타입중에 골라서

테이블을 만드시면 됩니다

저는 test라는 테이블을 만들고

필드는 id, data라는 필드로 구성하고

그 2개의 필드를  id_data라는 이름으로 인덱스 걸겠습니다

어렵게 설명 했는데 아래 2줄이면 테이블이 만들어 집니다

CREATE TABLE test (id integer, data integer);
CREATE INDEX id_data on test (id, data);

이제 데이터를 입력 해야 하는데요

일반적인 상황이면 insert 문으로 해도 되지만

이눔은 insert보다는 import가 빠릅니다 ^^

저는 그래서 데이터를 아래와 같은 텍스트로 준비 하고요

파일명을 data.txt로 많이 만듭니다

1,1000
2.3
3,4

이제 집어 넣을때는 분리자를 설정 하고 바로 넣어 버립니다

.separator ',' <-- 분리자 설정

.import data.txt test <-- 데이터 넣기

pc 사양에 따라 다르지만 10만건 정도도 수분안에 들어 갑니다 ^^

이제 select, update, insert를 하시면서 자유롭게 쓰시면 됩니다

command 라인 으로 되면 모하나 하시겠지만

C++, C# , VB 기타 등등 다양 하게 지원합니다

이렇게 만들었으니 C++ 한번 사용해 보죠

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

전 포스트에서 설명한 바와 같이 ArcGIS SDK가 설치 되어 있고 VS2005가 설치 되어 있어야 합니다

우선 VS2005를 구동 시키신후 시작 -> 새 프로젝트를 누루셔서 아래 그림처럼 선택 합니다

프로젝트 이름과 위치를 결정 하시고 확인을 누루시면

아크쪽 위자드가 나옵니다

이걸 가지고 여러 기능이 가능할 걸로 보이지만 제가 모르니 우선 Finsh를 눌러 설정을 마무리 합니다


그럼 간단히 클래스 라이브러리가 만들어진걸 보실수 있습니다

그 후 command를 추가 합니다 아래 그림 처럼요




그후 자신이 만든 라이브러리를 쉽게 찾기 위해

카테고리, 캡션, 메세지등을 설정하고 

필요한 참조 파일을 추가 합니다







 그냥 실행을 하시면 실행 파일이 없기 때문에 실행을 할수 없다고 나옵니다

 

속성의 디버깅에 시작 외부 프로그램을 설정 하여 줍니다



이제 실행을 하시면 ArcMap이 구동 됩니다 ^^

빈 공간에서 오른쪽 버튼 -> 사용자 정의 도구막대1을 체크  -> 오른쪽 버튼 -> 사용자정의



명령에서 아까 자신이 정한 범주(카테고리)와 명령(캡션)고르시고

명령을 선택한 상태에서 사용자 정의 도구막대에 끌어다가 놓으시면 자신이 만든 커맨드가 완성 됩니다 ^^



저는 커맨드를 좀 여러개를 쓰다 보니 많이 있네요



336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

어떤 프로그램이 구동 되다 보면

정보를 저장할 필요성이 생깁니다.

만약 그 정보가 간단하다면 레지스트리에 저장을 하면 되겠지만

사용자 정보 같이 대량의 정보가 저장 되야 한다면

레지스트리가지고는 부족하게 됩니다.

그래서 처음 나온것이 파일 입니다.

사용자 아이디를 유니크하게 만들어서 해당 정보를 파일로 저장을 해왔습니다.

<vc6.0 기반>

FILE * fp = fopen("cid.db");
if(fp == NULL) //아이디를 만들수 있음
else {
    fclose(fp);
    //아이디를 만들수 없음
}


요런식으로 구동되는 어플이면 사람들은 만족 하였습니다.


이러고 시간이 흐르니 매출은 감소하고 영업부에서는 자료가 필요 합니다.

요즘 들어 오는 신규유저의 나이가 어떻게 되고 출신 지역이 어딘지 등등등 ~~~

그런데 파일로 만들었으니 날짜로 일일이 파일을 다 오픈해야 하고

파일IO 때문에 네트워크가 느려지는등 ~~~

문제가 많이 발생합니다.


그래서 나온것이 DBMS 입니다.

이 놈들도 파일을 쓰긴 하지만 이진 트리라든가 기타 여러가지 기술을 통해서

보다 좋은 환경을 제공해 줍니다. (자세히는 저도 잘 모릅니다 ^^)

대표적인게 ORACLE, MSSQL, MYSQL등 입니다.

(DB2나 기타도 있지만 그런걸 다루시는 분이라면 걍 조용히 창을 닫아 주세요)


MYSQL : 경우는 현재는 무료로 이용이 가능하지만 앞으로는 어떻게 될지 모르는 DB죠 ^^

우선 단순 Select의 경우 다른 DB와 동등하거나 우월합니다.

하지만 subquery의 경우 극악의 성능을 보여 줍니다.

limit는 명령어로 subquery를 피해 갈수는 있지만 요즘 처럼 복잡한걸 요구 하는 사람들에게는

매력이 점점 떨어지고 있으며 5.0부터 많이 좋아졌다고 하지만 제가 써본건 4.x까지라 잘 모르겠네요


MSSQL : MS에서 밀고 있는 DB입니다.

성능은 위 3개 중 중간이며 SSMS라는 툴을 통해서 대단히 편한 인터페이스를 제공하여 줍니다.

단점은 NT에서만 돈다는 거겠죠 ^^


ORACLE : 왠만한 분들은 다 아는 DB입니다.

가격도 가격이지만 성능도 튜닝하면 거의 천차 만별로 바뀌는 DB입니다.

그 만큼 어렵고 예외 사항도 많고 딱딱한 인터페이스를 제공합니다.



여기서 부터가 본론 이겠네요

DBMS로 잘 먹고 살다 보니 이제는 세상이 바뀌어서

PDA니 UMPC 이야기가 나옵니다 ^^

그 놈들도 DB가 필요한데요 문제는 위 3개의 DB는 성능이 낮은 (PDA, UMPC등을 이하 UMPC로 표기) UMPC로는

돌기에 부적합 하고 서버에 설치하고 통신할라 해도 와이브로나 CDMA망을 타야 하는데

사용하지 않아도 기본료를 내야 하고 패킷료도 비싸서 쓰기도 모시기한 현실에 빠집니다


그래서 사람들은 임베디드 DB를 만들게 됩니다.

우선 저사양에서도 돌아야 하며

전력이 끊어져도 DB 내용은 지워지지 않아야 하며

설치가 최대한 쉬워야 합니다.


요런 요건에 딱 맞는게  SQLITE입니다.

SQLITE은 구글의 차세대 플랫폼인 안드로이드에 들어가 있으며

아이팟도 사용중에 있습니다.

전체 소스는 오픈되 있으며 MIT라이센스를 취하고 있기 때문에

수정이나 변경이 가능하며 사용중인 여부도 표시하지 않아도 되는 착한 넘입니다.

하지만 문제 생기면 알아서 고쳐야 한다는게 좀 우울하네요 ^^


+ Recent posts