프로그램 개발자가 프로그램을 분석하는 과정에서 제일 필요한 것은 구문을 분석해서 함수가 정의된 곳을 찾아 가거나 지정한 변수나 함수를 호출하는 모든 곳을 찾는 기능도 유용하지만 특정 디렉토리에 있는 모든 파일에 대해서 특정 텍스트를 검색하는 기능은 필수 도구라 해도 과언이 아닙니다. 리눅스/유닉스에서는 grep 도구를 통해서 간단하게 사용할 수 있지만 윈도우의 경우에는 개발자 나름의 도구를 사용해야 합니다. 노트패드 ++(이하 NPP)에서는 찾기>파일에서 찾기 메뉴나 Ctrl+Shift+F 단축키를 통해서 사용할 수 있습니다. 개발자가 여러 파일에서 특정 텍스트를 찾는 경우 찾아진 결과를 일목요연하게 볼 수 있는 기능도 중요하지만 결과에서 특정 파일의 특정 라인 위치로 간편하게 이동할 수 있는 연동 기능..
개발자에게 검색 엔진을 통해서 정보를 찾는 "구글링"은 매뉴얼이나 전문가의 조언을 대체하는 수준으로 오류에 대한 대처 방법이나 코딩 방법을 최신의 방법으로 얻을 수 있는 좋은 창구입니다. 검색 결과를 보다보면 위의 그림과 같은 적절한 소스 코드 샘플을 만나는 것이 최선의 안내인 경우가 많습니다. 그렇지만 소스 코드를 블로그 포스팅에 첨부할 때 마다 라인번호를 붙이고 키워드와 같은 문법 요소에 색깔을 입히는 작업을 하는 것은 너무나도 비효율적인 작업이고 차마 권할 수도 없는 과정입니다. 통상 이런 과정은 블로거는 단순하게 코드만 첨부하고 첨부한 코드가 어떤 프로그래밍 언어인지를 표시해두면 별도의 도구가 자바 스크립트와 CSS를 통해서 자동적으로 구문을 강조해서 표시하는 방식으로 작업을 처리합니다. 본 포스..
4인 가족 일년 식량을 책임지고 있는 논에 제초제를 뿌리지 않으면서 농사를 지은지도 어언 4년이 지나가면서 여러가지 상황을 만났지만 올해처럼 피와 친한적도 없었던것 같습니다. 모내기 시점에 물을 깊이 대고 좀더 신경을 쓰면 피를 줄일수는 있었지만 모가 빨리 뿌리를 내렸으면 하는 초보 농군의 마음에 물을 깊이 대지 못한 결과가 아닌가 싶습니다. 아무튼 창궐한 피를 어린 상태에서 많이 뽑아 주었음에도 불구하고 추수 때가 되니 어디에서 나타났는지 쑥쑥 올라온 피를 이삭만 댕강 댕강 잘라 주었더랬습니다.(피사리인가 피수확인가? 참조) 자른 피의 이삭들을 잘 말렸지만 탈곡하는 것부터 쉽지 않더군요. 수확을 목표로 한 것이 아니라 익지 않은 피도 많이 섞여 있던 까닭에 골라내기가 쉽지는 않았습니다. 이러저러 탈곡하..
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..
노트패드++(이하 NPP)를 사용하는데 있어 별다른 설정없이 간편하게 설치하여 사용할 수도 있지만(노트패드++ 한글 사용 환경 준비하기 참조) NPP 사용 환경과 관련한 몇가지 중요한 설정에 대해서 알아두면 여러가지로 효과적인 작업에 도움이 될 수 있습니다. 설정>환경설정 메뉴를 통해서 설정 창을 위의 그림과 같이 띄우고 "일반" 섹션을 선택하면 NPP 창의 기본 구조에에 대한 설정을 할 수 있습니다. 한국어를 기본 언어로 설정하고 다른 언어는 모두 삭제했기 때문에 "표시 언어"에서 선택할 다른 언어는 발견할 수 없습니다. "도구 모음" 상단의 아이콘으로 표시하고 있는 기능 모음을 지칭하는 것으로 아이콘의 크기를 조정할 수 있을 뿐만 아니라 "숨기기"를 선택하면 사용자 인터페이스에서 도구모음이 보이지 않..
대부분의 응용 프로그램에서 파일 관리는 필수적인 요소라 해도 지나치지 않을 만큼 매우 중요한 부분입니다. 작업 내용을 저장하거나, 저장해 놓았던 정보를 읽어 들이며, 다양한 파일을 검색하며 분석 작업을 하는 등 파일을 다루는 기능은 응용 프로그램의 가치와 활용도를 높여주는 핵심 요소입니다. 비베닷넷(비주얼베이직 닷넷, Visual Basic .Net)에서는 System.IO 네임스페이스를 통해 연관 기능을 제공하고 있습니다. 많이 사용하는 주요 클래스는 다음과 같습니다.FileStream : 파일 핸들의 역할을 하면서 기본적인 파일 입출력 기능 제공StreamReader, StreamWriter : 파일 스트림 기반으로 텍스트 입출력 수행BinaryReader,BinaryWriter : 파일 스트림 기반..
책에 빠져 때로는 미소로 때로는 참는 울음으로 책을 읽었던 때가 언제인지......간만에 독서인지 여행인지 모를 시간이 휙하고 지나갔습니다. "서명숙"이라는 저자에게 감사의 인사도 전하고 싶고 그녀의 글 재주와 품성이 무한히도 부럽기도한 시간이었습니다. 이 책을 만난 것은 대학로 헌책방이었습니다. 최근 헌책방은 예전 청계천 헌책방과는 다르게 일반서점 처럼 책이 잘 진열되어 있고 책의 상태에 따라서 같은 책이라도 값의 차이가 있기 때문에 충동 구매의 유혹이 지갑을 괴롭히는 장소입니다. 이 책 앞에서는 한참을 책을 뒤적거렸습니다. 약간 두꺼운 책이지만 중간 중간 천연색 사진이 함께하고 있어서 지루하지 않고 현장감있게 저자의 이야기에 동행할 수 있는 장점이 있습니다. 책을 모두 읽고나니 표지 사진에 "바람"이..
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)를 보지 못할 수도 있고 트레이스 하는 만큼의 성능 낭비 요소도 있으므로 닷넷 드라이버의 트레이스에 대한 조치는 필요해..
파이어버드(Firebird) DBMS(Database Management System)의 설치와(파이어버드(Firebird) 데이터베이스 설치하기 참조) 사용 환경 준비(파이어버드 사용 환경 준비하기 참조)에 이어 이번 포스팅은 본격적으로 데이터베이스를 만들고 접속하여 쿼리를 수행하는 과정을 다룰까 합니다. MySQL이나 오라클과 같은 다른 DBMS처럼 파이어버드도 콘솔기반으로 SQL을 사용할 수 있는 isql 도구를 제공합니다. isql을 콘솔 인터페이스에서 사용할 경우에는 "isql -u 사용자아이디 -p 비밀번호 데이터베이스" 형식으로 특정 데이터베이스에 직접 접속 할 수도 있고 아래와 같은 옵션으로 다양한 기능을 사용할 수 있습니다. 데이터베이스를 생성하고 다양한 SQL을 실행할 수 있는 isql..
데이터베이스를 처음 사용하시는 분들은 DBMS(데이터베이스 관리 시스템)를 설치하고서도 무엇부터 해야하나? 하면서 막막한 느낌이 들수 있습니다. 오라클이나 SQL 서버와 같은 상용 DBMS의 경우에도 마찬가지여서 비싸지만 범접하기 어려운 경외의(?) 대상이라는 느낌까지 받을 수 있습니다. 그렇지만, 아무리 수많은 고급 기술이 포함되어 있는 제품이고, 듣도 보지도 못한 전문 용어가 난무하더라도 사용자 입장에서는 단순하게 대할 필요가 있습니다. DBMS를 하나의 냉장고 처럼 대할 필요가 있습니다. 냉장고 전원을 넣고 빼듯이 DBMS를 가동시키고 중단시키는 방법을 찾아 직접 해봅니다. 그 다음에는 냉장고 문을 열고 물건을 집어넣거나 가져오듯이 DBMS에 접속하는 방법을 찾아 데이터를 넣고 조회하는 작업을 해보..
오라클, SQL 서버, MySQL과 같은 인기있는 DBMS의 틈바구니에서도 끈질긴 생명력으로 10년이 넘는 세월을 버텨온 DBMS가 있습니다. 바로 파이어버드(Firebird) 입니다. "불새" 예전 독수리5형제가 불새로 변해서 악당을 물리치는 모습을 상상케하는 로고도 있습니다. 사실 오픈소스 DBMS의 대명사라 하면 APM, LAMP 패키지로 인해 그영역을 확장하고 Sun사를 거쳐 결국 오라클의 품에 들어간 MySQL일 것입니다. 초기 MySQL은 무료로 DBMS를 사용할 수 있다는 매력이 있었지만 DBMS의 2PC 커밋등 주요 핵심 기능을 갖추지 못해서 일부 개발자는 터부시 했던 것도 사실입니다. 지금의 MySQL이 그때의 모습과는 달리 미션 크리티컬한 업무에도 적용할 정도의 성능과 기능을 갖추었음에..