개인적인 일이 있어 경북 춘양에 다녀왔습니다. 남원의 "춘향"이 아니라 "춘양목"의 고장 춘양입니다.수도권에서 춘양으로 가는 길은 고속도로를 이용하는 경우 풍기 IC를 거치면 그리 어렵게 않게 갈 수 있지만 때마침 눈 예보가 있고 고지대 이다보니 자가용 운행이 쉽지 않을것 같아 대중교통을 찾아 보았습니다. 교통의 중심지인 영주까지 가서 다시 버스를 갈아타는 방법이 가장 일반적인 방법으로 보였습니다. 그렇지만 여러번 갈아타는 것도 그렇고 시간 약속도 있으니 그나마 가장 좋은 방법은 기차였습니다. 하루에 딱 한차례 그것도 월요일에는 쉬는 O-Train이 있었습니다. 천안과 오송을 거쳐 청주-충주-제천을 지나 단양, 영주, 봉화를 거치는 차편이 이었습니다. 나중에 승무원의 이야기를 들어보니 예전에는 제천에서 ..
컴퓨터 그래픽을 하시는 분들에게는 글자로 무언가를 표현하는 타이포그래피(typography)는 핵심 표현 기법중의 하나입니다. 타이포그래피의 핵심 도구가 바로 폰트(Font)입니다. 스마트폰과 태블릿과 같은 모바일 장비에서의 웹 브라우징이 늘어나면서 무료 폰트에 대한 사용 비중이 늘어난 현실도 있지만 여러기업에서 무료로 제작 및 배포하고 있는 다양한 폰트가 있기 때문에 사용자 입장에서는 폰트 저작권에 대한 부담없이 폰트를 사용할 수 있는 환경이라 할 수 있습니다. 상용 폰트의 경우 해당 폰트를 사용한 웹페이지의 그림을 찾아서 저작권료를 요구하는 사례도 심심치 않게 있습니다. 기업에서도 무료로 사용할 수 있고 재배포 가능하며 상업적 용도로도 사용 가능한 라이선스를 가진 폰트들을 모아보았습니다. ■ 네이버 ..
SQL Server, 오라클(Oracle), MySQL, 큐브리드(CUBRID), 파이어버드(Firebird)와 같은 데이터베이스(Database)를 VB.Net에서 사용하기를 다루기에 앞서 데이터베이스의 개념을 다루면 좋겠지만 생략하고 가장 많이 사용하는 관계형(Relational) 데이터베이스를 기준으로 이야기를 풀어나갔으면 합니다. 실상 데이터, 데이터베이스, 데이터베이스 관리 시스템(DBMS), 데이터베이스 시스템(DBS)은 비슷해 보이지만 서로 다른 의미를 갖습니다. 데이터베이스는 정보를 쉽게 접근 및 수정하고 관리할 수 있도록 구조화된 정보의 집합으로 관계형 데이터베이스는 테이블(table, relation)간의 관계를 정의하고 각 테이블은 행(row, tuple)과 열(column)로 조직화..
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..
아파치 웹로그 파일처럼 파일의 크기가 지속적으로 커지는 파일을 윈도우에서 지속적으로 모니터링하는 방법이 그리 녹록치는 않습니다. 일반적인 텍스트 편집기의 경우 파일을 열면 파일 내용 전체를 로딩하기 때문에 파일 크기가 큰 경우 비정상 종료되거나 로딩에 너무 긴 시간이 소요되는 경우가 비일비재합니다. 그런데 이런 파일의 변화와 그 내용을 텍스트 편집기로 모니터링 한다는 것은 파일을 반복적으로 열어보는 답답한 작업의 반복입니다. 리눅스나 유닉스의 경우 파일의 끝부분만 잘라서 보는 tail 명령이 있는데 이 명령에 -f 옵션을 주어 "tail -f 파일명"으로 실행하면 해당 파일의 변화를 감지하여 파일 끝에 새롭게 추가되는 내용을 지속적으로 보여 줍니다. 이 tail 명령을 윈도우에서 실행해주는 도구가 "Ta..
넷빈즈(NetBeans)에 아직 익숙하지 않은 개발자를 위하여 효과적인 코딩을 위한 몇가지 팁을 메모해 둘까 합니다.■ 블럭(괄호) 시작/끝 위치 이동중괄호({})에 커서를 둔 상태에서 Ctrl+[ 단축키를 누르면 코드를 분석해서 대응하는 시작/끝 위치로 이동합니다. 모든 종류의 괄호 (), [], {} 를 모두 지원합니다. 위의 그림처럼 커서를 중괄호에 위치시키면 라인번호 옆에 블럭을 표시해주는데 Ctrl+[ 단축키를 누르면 시작 위치로 이동하고 시작 위치에서 Ctrl+[ 단축키를 누르면 끝 위치로 이동합니다. 블럭이 커지거나 괄호를 복잡하게 사용한 경우 매우 유용한 기능입니다. ■ 북마크 표시/해제와 이동코딩을 하다가 미완성된 곳을 이나 자주 확인해야 하는 곳등에 북마크를 표시해 두고 간편하게 이동할..
개발자중에는 오라클이나 SQL Server, MySQL은 들어보았어도 더비(Derby) 데이터베이스를 처음 들어보는 분들 계실것입니다. "Java DB"로도 불리는 더비는 순수 Java로 개발한 DBMS로 자바 환경이라면 어떤 플랫폼에서도 동작할 뿐만아니라 SQLite3 처럼 라이브러리 형태로 응용에 간단하게 탑재하여 단독형(Stand alone) 형태로 사용 할 수도 있고 범용 DBMS 처럼 네트워크를 통해서 서비스하는 형태로 다중 사용자 구조로 사용할 수 있는등 다양한 응용이 가능한 DBMS 입니다. 자바 실행 환경에 포함되어 있으니 별도의 DBMS 설치도 필요없고 무료이니 라이선스 구입을 위한 비용도 들지 않는 주목할 만한 데이터베이스 입니다.그런데, 왠만한 DBMS들이 데이터베이스 관리 도구를 별..
프로그램 개발자가 프로그램을 분석하는 과정에서 제일 필요한 것은 구문을 분석해서 함수가 정의된 곳을 찾아 가거나 지정한 변수나 함수를 호출하는 모든 곳을 찾는 기능도 유용하지만 특정 디렉토리에 있는 모든 파일에 대해서 특정 텍스트를 검색하는 기능은 필수 도구라 해도 과언이 아닙니다. 리눅스/유닉스에서는 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 : 파일 스트림 기반..