"Trac 수정을 위한 개발 환경 준비하기"는 대표적인 협업 개발 도구인 Trac(http://trac.edgewall.org/)을 설치하고 사용하는 것을 넘어서 직접 코드를 수정하고자 하는 사람에게 필요한 과정입니다. 개발 환경이란 실제 사용자들이 사용중인 시스템과는 별개의 시스템으로 개발 과정중에 발생할 수 있는 다양한 오류 가능성과 장애로 부터 자유로울 수 있는 시스템을 의미합니다. Trac은 자체적인 서비스 대몬을(tracd) 소유하고 있으므로 Trac 코드 수정을 위한 시스템을 실제 시스템과 동일하게 구축할 필요는 없습니다. 아래의 개발 환경은 윈도우 시스템을 기준으로 했으며 텍스트 편집기로 소스 코드를 수정한다는 가정하에 진행했습니다. ■ 파이썬 환경 설치 "파이썬(Python) 실행 환경 준..
CPU(Central Processing Unit, 중앙 처리 장치)는 사람의 두뇌에 해당하는 것으로 컴퓨터의 성능을 좌우하는 핵심 요소입니다. 위의 그림은 국내에서 퍼스널 컴퓨터 붐이 처음 일어날 당시 주로 장착되던 Z80 CPU의 아키텍처입니다. 1976년에 등장 했을 정도로 오래된 CPU이지만 이 칩을 제조하기 위해서 라이선스를 받은 회사가 한둘이 아닐 정도로 인기가 있었기 때문에 CPU를 공부하기 위한 참고 자료로 주목할만 합니다. CPU의 주요 구성 요소는 다음과 같습니다. 제어 장치(CU, Control Unit) : 메모리에서 명령을 받아 해독과(Decode) 실행을 지시하는 핵심 요소입니다.연산 장치(ALU, Arithmetic Logic Unit) : 제어 장치의 지시에 따라 산술, 논리..
시스템 분석 과정에서 응용 프로그램이 DBMS에 요구하는 여러가지 SQL문장을 분석하는것은 데이터 흐름을 파악할 수 있는 매우 유용한 도구 입니다. 모든 SQL을 로그로 남기도록 DBMS에 지시만 하면 되기 때문에 어렵지도 않습니다. 특히 개별 응용에서 SQL 문장 뒤에 "Call trace"를 SQL 주석 형태로 남기게 되면 해당 SQL을 어떤 코드에서 호출했는지도 알 수 있기 때문에 더욱 더 분석 과정을 효율화 시킬 수 있습니다. function _execute($sql) { $sql = $this->_prep_query($sql); $trc = debug_backtrace(); $rst = ""; foreach($trc AS $idx => $ary) { if (array_key_exists('fil..
컴퓨터 메모리에 2진 형태로 저장된 데이터를 문자를 비롯한 다양한 코드값으로 인식할 수도 있지만("코드와 데이터 표현 - 정보처리 필기 해설 7" 참조) 값 자체를 수치로 인식할 수도 있습니다. 이와같이 컴퓨터 메모리를 가지고 수치 데이터를 표현하는 방법에는 소수점 위치의 고정 여부에 따라 고정 소수점(Fixed point) 표현과 부동(浮動) 소수점 또는 유동(流動) 소수점(Floating point) 표현으로 나뉘고 고정 소수점 표현의 경우에는 2진 표현 방식과 10진 표현 방식으로 나뉩니다. 물론 표현에 사용하는 저장소의 크기에 따라 표현 가능한 수치의 범위도 달라집니다. ■ 고정 소수점(Fixed point) 표현 컴퓨터 내부에서 정수 표현에 사용하는 것으로 부동 소수점에 비해 연산 속도가 빠르고..
주기억 장치에서의 데이터 처리의 최소 단위는 바이트입니다. 물론 기억소자나 통신 과정에서는 비트 단위까지 다루어지 지지만 사람이 인지하는 대부분의 데이터 표현은 바이트 단위가 기본입니다. 그런데 메모리에 저장한 데이터를 어떻게 해석하는지에 따라 데이터는 단순 바이너리 값으로 숫자나 이미지 데이터를 표현하는 정보일 수도 있고, 십진수를 저장하는 값일 수도 있으며(BCD), 영문자, 숫자, 특수문자를 표현할 수도 있습니다(EBCDIC, ASCII). 한 바이트가 아닌 둘 이상의 바이트를 가지고 고정 소숫점을 표현하는 이진값을 나타낼 수도 있고, 더 큰 범위의 수를 표현하기 위한 부동 소숫점을 표현할 수도 있을 뿐만아니라 한국어(CP949, EUC-KR, UTF-8)와 같은 다양한 언어를 표현할 수도 있습니다..
0과 1로 정보를 표현하는 디지털 시대에서 정보의 최소 단위는 비트(Bit)입니다. "순서 논리 회로와 보수 - 정보처리 필기 해설 5"에서도 언급한 것처럼 플립플롭을 사용해서 저장하는 정보의 최소 단위는 비트입니다. 이 비트들을 모아서 다양한 정보의 단위로 사용하는데 다음과 같은 것들이 있습니다.니블(Nibble, nybble) : 4비트. 4비트는 16진수의 한자리와 같기 때문에 상위 니블, 하위 니블식으로 정보를 나누어 저장하기도 합니다.바이트(Byte) : 8비트. 문자를 표현할 수 있는 최소 단위. 워드(Word) : 컴퓨터의 정보 처리 단위라 할 수 있습니다. CPU의 레지스터 크기나 CPU가 메모리를 한번에 읽을 수 있는 단위에 따라 달라지므로 중앙처리장치(CPU)의 아키텍처가 워드의 크기를..
"정보처리기능사 필기 해설 4 - 조합 논리 회로"에서 다룬대로 논리 회로는 출력을 결정하는데 있어 현재 입력만을 대상으로 하는지, 아니면 현재 입력과 함께 과거 자료(메모리)를 사용하는지에 따라 현재 입력만을 가지고 출력을 결정하는 조합 논리 회로(Composite Logic Gate)와 메모리도 출력 결정에 사용하는 순서 논리 회로(Sequential Logic Gate)로 나눌 수 있습니다. 외부의 입력과 현재 상태(기억 기능, Memory)에 따라 출력을 결정하는 순서 논리 회로는 통상 메모리로 사용하는 플립플롭과 논리 게이트로 구성 되므로 메모리를 가진 조합 논리 회로라고도 할 수 있습니다. 대표적인 순서 논리 회로에는 플립플롭, 카운터, 레지스터, RAM, CPU등이 있습니다. 신호의 타이밍에..
논리 회로는 출력을 결정하는데 있어 현재 입력만을 대상으로 하는지, 아니면 현재 입력과 함께 과거 자료(메모리)를 사용하는지에 따라 현재 입력만을 가지고 출력을 결정하는 조합 논리 회로(Composite Logic Gate)와 메모리도 출력 결정에 사용하는 순서 논리 회로(Sequential Logic Gate)로 나눌 수 있으며 조합 논리 회로에는 반가산기, 전가산기, 병렬가산기, 반감산기, 디코더, 인코더, 멀티플렉스, 디멀티플렉스, 버스, ALU 등을 들 수 있습니다. 앞서 "정보처리기능사 필기 해설 1 - 논리게이트"에서 다룬 기본 논리 회로들을 기반으로 다음과 같은 조합 논리 회로들을 구성할 수 있습니다. ■ 반가산기 반가산기(HA, Half Adder)는 정보처리기능사에서 출제되는 조합 논리 ..
논리식은 "정보처리기능사 필기 해설 1 - 논리게이트"와 "정보처리기능사 필기 해설 2 - 부울 대수"를 통해서 살펴 본것 처럼 매우 중요한 역할을 합니다. 그런데, 회로나 주어진 게이트가 없는 상태에서도 입력과 출력이 주어진다면 이런 조건을 만족하는 최적화된 논리식을 유도할 수 있습니다. 주어진 입력과 출력은 우선 진리표로 표현합니다. Input Output A B Y 0 0 1 0 1 0 1 0 0 1 1 1 진리표의 각 입력 상태를 0이면 A', 1이면 A처럼 표시해서 두입력을 논리곱으로 표현한 것을 최소항이라 합니다. 진리표의 각 입력 상태를 0이면 A, 1이면 A'처럼 표시해서 두입력을 논리합으로 표현한 것을 최대항이라합니다. Input Output 최소항 최대항 A B Y 0 0 1 A'B' ..
부울 대수(Boolean algebra) 또는 불 대수는 조지 불(George Boole)이 창안한 논리 대수입니다. 대수(代數)의 사전적 의미는 "숫자 대신에 그 숫자를 대표하는 문자를 써서 수학 법칙을 간명하게 나타내는 수학의 한 분야"로 부울 대수는 논리 문제로 기호로 설명하는 것이라 할 수 있습니다. 부울 대수는 값의 범위가 참(True)과 거짓(False)으로 한정되는 대수의 한 분야로 컴퓨터에서 부울 대수가 기본적으로 언급되는 이유는 바로 컴퓨터의 논리 회로가 1, 0만의 디지털 신호를 다루기 때문입니다. 부울 대수는 회로 뿐만아니라 소프트웨어와도 깊은 연관성을 가지는데 프로그래밍 언어에서 조건을 기술하는 if , for, while 등의 문장에서는 부울 대수와 연관성을 가지는 논리 연산이 수..
게이트(gate)는 단순히 "통로"의 의미도 있지만 워터게이트를 비롯해서 사회를 혼란의 폭풍속으로 밀어넣는 부정적인 사건에 붙는 단어이기도 합니다. 그렇지만, 기술적으로는 신호를 연결하거나 끊는 회로를 의미합니다. 논리 게이트(Logic gate)는 하나 이상의 입력을 받아 하나의 출력을 내보내는 논리 연산을 구현한 실제 또는 가상의 장치를 의미합니다. 최신의 CPU나 메모리의 근원에는 이러한 논리 게이트가 존재합니다. 논리 게이트는 전자공학적인 접근이지만 소프트웨어에서도 이러한 논리 연산은 그대로 적용되므로 정확한 이해와 숙지의 필요가 있습니다. 논리게이트의 표현 방식은 NOT, AND, OR처럼 논리 키워드를 사용하는 것과 함께 논리식, 진리표나 기호 표현 방식이 있습니다. 기호 표현 방식에는 MIL..
냉장고를 고를때 냉장고 내부 기술에 대한 깊이있는 공부보다 가격, 기능, 브랜드와 같은 요소에 중점을 두는 것처럼, 데이터베이스 관리 시스템(DBMS) 또한 DBMS가 지원하는 SQL 표준, 기능, 평판과 브랜드 등을 선택의 기준으로 삼고 있으며, 도입 비용이 거의 소요되지 않는 오픈 소스 DBMS를 통해서도 기업의 핵심 업무를 충분히 소화할 수 있음을 "DB를 냉장고처럼 쓰자 - 상품화된 DBMS(Commodity DBMS)"에서 다루었습니다. 우리의 삶과 깊은 연관성을 가진 냉장고와 데이터베이스, 이 둘 사이에는 어떤 공통점이 있을까? 냉장고와 데이터베이스 사이의 공통점을 통해서 데이터베이스에 대한 이해가 막연하게 "복잡하다, 어렵다"에서 냉장고 처럼 내 바로 옆에 있는 친숙한 도구로 다가왔으면 하는..
위키피디아의 "Commodity Computing(Commodity cluster Computing)"에 대한 정의를 정리해 보면 Commodity Computing은 비싼 고사양의 컴퓨터 대신 공개 표준 기반으로 저렴하면서도 어떤 벤더에서 만들었더라도 큰 차이를 보이지 않는 Commodity Computer들로 이루어진 시스템을 말합니다. 고가, 고사양의 단일 서버를 저가, 저사양인 다수의 서버군으로 대치 시킴으로써 비용을 절감할 뿐만아니라 시스템의 확장성과 안정성을 높이는 시스템을 말합니다. 냉장고로 비유하자면 S사의 냉장고이든 L사의 냉장고이든 아니면 이름없는 중소형 제조사의 냉장고이든 성능상의 큰 차이는 없다는 이야기입니다. 그렇다면 "Commodity DBMS"는 어떤 의미일까? 두가지 측면에서..
우리 생활에 밀접하고 매우 중요한 역할을 감당하지만 너무 익숙하거나 친숙한 탓에 그 존재를 잊어버리고 사는 것들이 있습니다. 대표적인 것이 냉장고가 아닐까 싶습니다. 대한민국 대부분의 가정에 냉장고 없는 집이 없고 심지어 원룸이나 모텔, 콘도 같은 사람들이 잠시 머물다 떠나는 곳 까지도 냉장고가 자리하고 있는 실정입니다. 냉장고를 사용하는 사람들의 입장에서 생각해 보면 냉장고 사용법이 어렵다거나 복잡하다는 생각을 하는 사람은 거의 없을 것입니다. 전원 넣고 문 열고 닫는 것이 사용법의 전부라 해도 과언이 아닙니다. 효율적으로 사용하기 위하여 칸칸 마다 별도의 용기로 정리하고 포스트잍으로 구입한 일자를 메모하는 주부님도 있지만 많은 경우는 그냥 빈곳에 넣었다가 필요할때 꺼내는 것이 냉장고 사용 요령의 전부..
"깃(Git)으로 브랜치/태그 만들기"에서 다루었던 브랜치 만들기로 개발을 진행하다가 테스트 및 디버깅 작업이 완료되어 메인 트랙(master)에 합치거나 다른 브랜치에 병합해서 진행할 경우에 사용하는 기능이 머지(Merge)입니다. 병합 작업의 절차는 합칠 대상으로 작업 사본(Working copy)을 준비합니다. 작업 사본 준비는 대상 브랜치로 체크아웃 받거나 갈아타기를 수행하면 됩니다. 합칠 대상으로 작업 사본을 준비 했으면 가져올 브랜치나 태그를 지정하여 병합을 수행합니다. 병합 과정에 문제가 없이 자연스럽게 합쳐지면 병합 작업을 그대로 끝나지만 브랜치간 병합 여부를 자동으로 판단하지 못하는 "충돌(Conflict)"이 발생하면 충돌을 해결하는 과정을 거쳐야 합니다. 충돌 발생 여부와 관계없이 브..
중앙집중식의 서브버전(Subversion)의 저장소(Repository)는 통상 위의 그림처럼 branches, tags, trunk라는 기본 폴더를 만들어 사용합니다. 주요 작업은 trunk에서 진행하기 때문에 프로젝트에 참여하는 사람들은 trunk를 체크아웃 받아 개발을 진행합니다. 그렇지만, 새로운 버전을 개발하거나 실험적 프로젝트를 진행할 경우에는 주요 작업 영역인 trunk는 손대지 않고 새로운 브랜치를 따서(Branching) 독립적으로 작업을 하다가 개발이 끝난 경우 trunk에 합치는 작업(Merge)을 수행하는 방식을 사용합니다. 또한, 특정 릴리즈를 보관할 경우에는 해당 시점의 코드에 태그를 붙여(Tagging) 저장해 놓았다가 해당 리비전이 필요할 경우에는 저장한 태그로 코드를 불러내..
■ 패치 만들기패치(Patch) 파일은 깃 저장소에 대한 쓰기 권한이 없을 때, 형상 관리 시스템을 사용하지 않는 곳에 최신의 소스 코드를 변경된 부분만 배포하고 싶을때 사용합니다. From c708dd886aca9e9bdc72b5fd5234e8b40ef24fe4 Mon Sep 17 00:00:00 2001 From: Name Date: Thu, 10 Dec 2015 21:47:08 +0900 Subject: [PATCH 2/2] =?UTF-8?q?push=20=ED=85=8C=EC=8A=A4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README | 3 ++-..
"정보 올림피아드"라고 하면 많은 사람은 그저 필기 시험과 지정한 시간 내에서 몇개의 프로그램을 완성할 수 있는지를 겨루는 경시 대회를 이야기 합니다. 그렇지만 "프로그래밍"의 관점에서보면 실제 구동되는 프로그램을 제출하는 "공모 부문"이야말로 이 대회의 진수이지 않나 싶습니다. 특히 천재들이나 풀수 있을 것만 같은 시험 문제를 앞에 두고 막막한 느낌을 받는 학생이라면 경시 대회에 부담을 갖기 보다는 학과 공부를 하면서 머리도 풀겸 공모 부문에 도전하는 것도 방법입니다. 시간 나는 대로 아이디어를 도출하고 차분히 아이디어를 프로그램으로 구현하고 그 결과를 제출하면 되는 것입니다. 숫자 맞추기, 자동차의 목적지로 가는 길 검색기, 분수의 신, 앤딕, 통일 말놀이, 일기도, 물체의 속력 이젠 어렵지 않아요!..
프로그래밍에 관심을 가지고 있는 아이를 키우다보니 부모인 저도 정보올림피아드에 매년 관심을 가지게 되는 군요. 사실 필자의 경우에도 예전에 고등학교부터 컴퓨터를 배우기 시작했는데, 학교에서 당시 대통령배 컴퓨터 경진대회를 준비하는 과정에서 엉겁결에 컴퓨터를 접하게 된것이었습니다. MSX, FC-100등 8비트 컴퓨터에 BASIC으로 프로그래밍을 배웠지만 저에게는 신세계였죠. 그리고 그것이 인생을 바꾸어 놓았지만......각설하고 올해 올림피아드 부터는 예년과는 다르게 변화된것이 많네요. 경시대회는 필기와 실기로 나누어 지는데 지역 예선에서는 실기는 하지 않고 필기만 한답니다. 즉 지역 예선에서 필기로 대상을 뽑고 실기는 바로 전국대회에서 치러지는 단순한 시스템으로 변화된 것이죠. 좋은 방향이라고 봅니다...
많은 경우 깃의 원격 저장소는 웹서버를 앞단에 두고 인증을 수행하면 서비스를 제공합니다. 그런데 나의 로컬 저장소에 있는 내용을 원격 저장소에 푸시(push)하지 않고 간편하게 공개하는 방법이 바로 "git daemon" 명령입니다. 윈도우 토터스깃에서는 저장소의 컨텍스트 메뉴에서 토터스깃>공개하기(Daemon)를 선택해서 서버를 가동시킬 수 있습니다. 문제는 이 방식으로 서버를 가동시키면 인증 과정이 없기 때문에 접속할 수 있는 누구나 읽기/쓰기가 가능한 상태가 된다는 것입니다. 그러므로 사용에 주의를 기울여야 하고 진행하기 원한다면 [계속]을 클릭합니다. 서버를 동작할때 위의 그림과 같은 보안 경고창이 나올텐데 서비스 가동을 계속하려면 [액세스 허용]을 눌러야 합니다. 위의 화면은 서버 가동 중임을 ..
토터스깃으로 프로젝트 시작하기에서 언급한것처럼 외부 저장소를 복제해서(Clone) 프로젝트를 시작한 경우, 특히 해당 프로젝트가 활발하게 활동하는 오픈소스 프로젝트라면 해당 프로젝트의 원본 저장소는 지속적으로 업데이트가 수행되기 때문에 현재 로컬 저장소로 복제한 내용이후로 많은 변경이 일어났을 가능성이 큽니다. 변경된 최신의 코드를 확인하고 싶다면 "가져오기(fetch)"와 "가져와 병합하기(pull)"를 사용할 수 있습니다.차이점은 가져오기(fetch)는 원격 저장소의 가져오기는 하지만 현재 로컬 저장소에 반영하지는 않고 반영하고 싶다면 나중에 병합(merge)을 수행해야 합니다. 반면에 가져와 병합하기(pull)는 원격 저장소의 내용을 가져와 로컬에 병합하며 반영하는 동작을 수행합니다.탐색기에서 로컬..
앞선 포스팅(티베로 DBMS 설치기)에 이어서 C#에서 티베로 DBMS를 사용하기를 다루어 봅니다. 아직 티베로는 닷넷 Native ADO.Net 드라이버를 제공하지 않기 때문에 OLE DB 드라이버를 등록하여 사용해야 합니다.티베로의 OLE DB 드라이버 등록은 티베로 설치 폴더 아래 "bin"(필자의 경우 D:\tibero5\bin)에 있는 tbprov5.dll 파일을 C:\Windows\System32에 복사하고 regsvr32로 레지스트리에 등록하면 됩니다. tbprov5.dll 파일을 복사한 다음 콘솔창에서 C:\Windows\System32로 이동하여 "regsvr32 tbprov5.dll"을 수행하면 위의 그림과 같이 DLL이 시스템에 등록되면서 응용 프로그램에서 ADO.Net OLE DB ..
국산 범용 DBMS로 큐브리드와 함께 많이 사용하고 있는 티베로(Tibero)를 설치해볼까 합니다. 공공분야 등에서는 사용 비율이 높아지고 있으므로 개발자 입장에서는 나름의 사용 경험도 의미가 있다 싶습니다. 티베로는 티맥스소프트사의 테크넷(https://technet.tmaxsoft.com/)에서 무료로 회원가입하시면 다운로드를 받을 수 있고 개발에 활용할 수 있는 데모 라이선스도 무료로 받을 수 있습니다.다운로드는 좌측의 데이터베이스>Tibero를 클릭하고 우측에서 원하는 버전의 "다운로드"를 클릭합니다. 다음 화면에서 화면 맨 하단에 있는 플랫폼별 다운로드 링크를 클릭하면 파일을 다은로드 받을 수 있습니다. 필자의 경우에는 Tibero 5 SP1의 Windows 32-bit 버전을 다운로드 받았습니..
C#이나 VB.NET으로 데이터베이스 프로그램을 개발하려면 테스트용 데이터베이스가 필요한데 MS SQL은 상용이므로 어둠의 경로를 기웃거릴 수 있습니다. 그렇지만 최근에는 DBMS 벤더마다 개발자를 위해서 무료로 사용할 수 있는 개발자 버전을 제공하고 있는데 개발자의 지원을 받지 못하는 DBMS는 도태될 수 밖에 없다는 위기감 때문일 것입니다. 아무튼 실제 사용할 DBMS가 아니더라도 개발자 버전을 설치해서 테스트를 수행하며 좀더 안정성 있는 프로그램 개발을 진행할 수 있습니다. 마이크로소프트의 DBMS SQL Server의 개발자 버전은 "SQL Server Express"라고 하는데 http://www.microsoft.com/en-us/server-cloud/products/sql-server-ed..
C#이나 VB.Net 환경으로 응용 프로그램을 개발하는 과정에 큐브리드 데이터베이스를 사용하기 위해서는 다른 DBMS 처럼 닷넷 네이티브로 제작된 ADO.NET 드라이버를 사용하는 것이 가장 좋습니다. 사용 방식이 DBMS 별로 메소드 이름만 약간 다를뿐 대부분 대동소이하기 때문에 응용 개발자 입장에서는 매우 편리한 방법입니다. 특히 닷넷 네이티브(full managed .Net code) 드라이버를 사용하면 클라이언트 배포 과정에서 별도의 프로그램을 설치할 필요도 없어지기 때문에 응용 프로그램의 배포 과정도 단순하게 하는 효과를 가져옵니다. 큐브리드의 ADO.NET 드라이버는 http://www.cubrid.org/?mid=downloads&item=ado_dot_net_driver에서 다운로드 받을 ..
국산 오픈소스 DBMS 큐브리드 설치하기에 이어 큐브리드(CUBRID) DBMS를 본격적으로 사용하기 위한 기본 환경을 준비하고 간단한 사용 사례를 다루어 볼까 합니다. 큐브리드 매니저를 설치해서 GUI를 통한 편리한 데이터베이스 관리를 수행할 수도 있지만 큐브리드에서 기본적으로 제공하는 콘솔 도구를 활용하는 방법을 적용하고자 합니다. 원천적인 도구 활용에 익숙해지는 방법이 DBMS와 친해지는 좋은 방법입니다. ■ 콘솔 인터페이스 준비하기위의 그림은 큐브리드 설치 폴더 아래 bin 디렉토리로(C:\CUBRID\bin) 큐브리드의 다양한 서비스 프로그램과 라이브러리가 위치하고 있는 곳입니다. 큐브리드 관리를 위한 도구, 질의 도구등 큐브리드와 연관한 대부분의 기능을 이곳에서 처리할 수 있으므로 이 폴더에 ..
"성능과 기능으로는 오라클에 필적하고 인터넷 서비스 시각으로는 MySQL을 대체할만하다." 이런 평가가 국내 개발자 뿐만아니라 다른 나라 개발자들에게도 일반적인 평이 되는 날이 속히 오길 바라며, 상용 데이터베이스 시스템이나 오픈소스 DBMS 시각으로도 매력을 가진 큐브리드를 다루어 볼까 합니다. 포스팅 제목으로 "국산 오픈소스 DBMS"라 붙인 이유는 국내에서 시작한 여타의 오픈 소스 프로젝트와는 그 궤를 달리하기 때문입니다. 네이버에 인수되기전 케이컴스 시절에는 UniSQL이라는 이름으로 상용 판매하던 DBMS였습니다. 레드오션인 DBMS시장에서 큐브리드라는 이름으로 족적을 남길 수 있을지, MySQL에 비견할 IT역사를 만들어 낼지 아직 섣부른 판단을 하기에는 이릅니다. 분명한 것은 "국산" DBM..
C#이나 VB.Net에서 파이어버드 데이터베이스에 접속하기 위해서는 ADO.NET Data Provider를 사용하면 됩니다. 드라이버 자체가 C#으로 제작되었기 때문에 클라이언트 시스템에 부가적으로 설치할 것은 없고 드라이버 DLL 파일만 같이 배포하면 됩니다. 파이어버드 ADO.NET Data Provider를 내려받기 위한 주소는 다음과 같습니다.http://www.firebirdsql.org/en/additional-downloads/ 필자의 경우 응용을 닷넷 4.0으로 맞추었기 때문에 "ADO.NET Provider - .NET 4.0"을 다운로드 받았습니다.7-Zip 파일이므로 7-Zip이 설치 되어 있지 않다면 기업에서도 사용할 수 있는 압축 프로그램 7-Zip를 참조하여 프로그램을 설치합니..
파이어버드 DBMS를 사용하면서 다른 DBMS와 차이가 있는 몇가지를 메모해 둡니다. 파이어버드 또한 SQL 표준을 준수하고 있으므로 핵심적인 SQL 문법은 비슷하지만 차이가 나는 몇가지를 다루어 보겠습니다. ■ 테이블/컬럼 스키마 조회하기MySQL이나 SQL Server에서 지원하는 INFORMATION_SCHEMA나 오라클의 ALL_TABLES, ALL_TAB_COLUMNS를 통한 테이블 및 컬럼 정보 조회는 파이어버드에서는 다른 형태로 지원합니다.SQL> show table RDB$RELATIONS;RDB$VIEW_BLR (RDB$VIEW_BLR) BLOB segment 80, subtype BLR NullableRDB$VIEW_SOURCE (RDB$SOURCE) BLOB segment 80, su..
파이어버드를 C#이나 VB.Net등에서 간편하게 접속하려면 Firebird ADO.NET Data Provider를 사용하면 됩니다.(http://www.firebirdsql.org/en/net-provider/) 파이어버드 닷넷 드라이버를 성공적으로 붙여서 사용하다보면 오류는 아닌데 비주얼스튜디오 콘솔창에 지속적으로 나타나는 것이 있습니다. "FirebirdSql.Data.FirebirdClient Information: 0"으로 쿼리의 실행 결과는 정상이지만 실행 과정의 모든 질의 내용을 트레이스(trace)하는 것입니다. 쏟아지는 질의 로그 때문에 확인해야할 예외(Exception)를 보지 못할 수도 있고 트레이스 하는 만큼의 성능 낭비 요소도 있으므로 닷넷 드라이버의 트레이스에 대한 조치는 필요해..