컴퓨터 성능이 좋아지면서 하드웨어 하나에 여러 시스템을 구동시키는 가상머신은 이미 일반화된지 오래이고 클라우드 컴퓨팅의 확대에 따라 그 적용 범위는 날로 넓어지고 있는 추세입니다. 개인 개발자의 입장에서도 가상 머신은 다양한 테스팅 환경을 구축할 수 있는 현실적인 방법입니다. 가상머신 이미지를 만들고 실행시킬 수 있는 대표적인 솔루션으로 VMware와 오라클의 VirtualBox를(https://www.virtualbox.org/) 들 수 있는데 오라클의 VirtualBox는 라이선스가 GPL2로 기업에서도 무료로 사용할 수 있고 VMware Player의 경우에도 상업적 목적이 아니면 무료로 사용할 수 있습니다. 본글은 VMware Player가 설치되어 있다는 가정하에 기업용 무료 리눅스 패키지인 C..
서울이라는 도시가 매연과 콘크리트 빌딩 숲의 답답함, 출퇴근 길 지옥철의 나쁜 추억만 남긴줄 알았는데 시간이 갈 수록 조금씩 조금씩 좋은 방향으로 개선되고 있는 것이 아닌가 하는 촌사람의 느낌입니다. 하긴 가끔 서울 나들이 하는 입장이라 그럴 수도 있지만 서울에 살때는 없었던 공간들이 하나, 둘 생긴 까닭이 아닌가 싶기도 합니다.이번에는 종로 한귀퉁이 정동 건너편에 있는 서울 역사 박물관에 다녀왔습니다.서울 지하철 5호선 광화문역 8번출구나 서대문역 4번출구, 시청역을 이용해서 접근할 수 있습니다. 바로 앞에 버스 정류장도 있고 뒷편에 주차장도 있으니 접근하기에는 불편함이 없습니다. 박물관 앞에는 옛 전차를 전시해 놓고 직접 승차할 수 있도록 해놓았기 때문에 근대 문화를 체험할 수 있는 재미있는 공간입니..
사회 초년기 미국 출장 때문에 여권을 만들 당시만 해도 과연 10년안에 해외 여행을 갈일이 또 있을까 싶었는데, 여권 유효기간이 지난 현 시점을 보면 수 많은 사람들이 해외 여행에 부담없이 나서고 있습니다. 아무튼 다시 물건너 갈 일이 있어 여권을 만들고 왔습니다. 여권 발급을 신청하고 오니 정보 기술의 발전이 가져온 변화에 격세지감의 감회가 새롭습니다.여권 발급 또는 재발급을 위해서는 여권 사진을 준비해야 합니다. 여권 사진의 기준은 매우 까다롭습니다. 흰 배경이어야 하고 제복이나 모자 착용도 않되고 흰옷도 않되는등 기준이 까다롭기 때문에 그냥 사진관에 들러서 전문가에게 맡기는 편이 낫습니다. 디지털 기술의 발전으로 사진관이 많이 없어졌지만 까다로운 여권사진의 기준은 동네 사진관의 효용성에 한몫을 하는..
어떤 프로그래밍 언어이든지 타입간 변환은 자주 실수하거나 무심결에 넘겨버리고 하는 이슈입니다. 특히 문자열을 숫자로 전환해서 사용하는 과정에 꼼꼼하게 처리해 두지 않으면 불필요한 예외(Exception) 발생으로 곤혹함을 겪고는 합니다. is_digit = false; if (str.Length == 1 && int.TryParse(str, out tmp_n)) is_digit = true; 위의 코드는 문자열이 한자리의 숫자인지를 검사하는 로직으로 정수, 부동소수점수 각 타입별로 제공하는 TryParse 메소드를 적절하게 활용 할 수 있습니다. byte.TryParse, int.TryParse, Int16.TryParse, Int32.TryParse, Int64.TryParse, uint.TryPars..
통상 데이터베이스라고 하면 여러 사용자가 동시 접속하여 대량의 정보를 저장 및 질의하는 환경을 떠올리지만 의외로 개인 사용 환경, 임베디드 환경등에서도 데이터베이스는 이미 일반화된 저장소 역할을 수행하고 있습니다. 저장소로 데이터베이스를 사용한다는 것은 개발자 입장에서는 표준화된 SQL 질의로 대부분의 원하는 정보 관리가 가능해 진다는 장점을 가져다 줍니다. 그 결과로 개발의 효울성도 높일 수 있고 시스템의 안정성도 확보할 수 있는 여러가지 매력이 있는 반면 상용이든 오픈 소스 DBMS건 간에 무거운 시스템을 설치해야 하는 제약이 따르게 됩니다. 이런 배경에서 DBMS를 설치할 필요가 없고 응용 프로그램에 간편하게 내장할 수 있는 임베디드 DBMS가 등장하게 되었는데 대표적인 것으로 아파치 더비(Derb..
wikipedia.org(Theatrical release poster)간만에 차분한 영화 한편을 보고왔다. 천안 펜타포트 CGV. 이마트에 쇼핑몰까지 있어 복잡할 것 같지만 토요일 조조를 목표로 가기 때문에 주차도 어렵지 않고 천안에 일보러 나가는 김에 영화를 볼때면 애용하는 영화관이다. 사전에 어떤 영화를 볼지 꼼꼼하제 조사않고 대충 정한 영화라서 내용도 배경도 모르고 그저 갱이 등장할 것이라는 정도였는데 실상은 스토리가 있는 안따까운 러브스토리, 진한 형제애가 영화 전반을 감싸고 있었습니다. 영화가 끝나고 집어든 영화 팜플릿을 자세히 읽어보고 나서야 영화 종반의 반전이 의미하는 깊은 갈등 구조를 늦게나마 알아챌수 있었습니다. 유튜브에 있는 공식 예고편은 아래와 같습니다. 갱 영화였기는 했지만 잘 만..
서해대교가 막혀서 참 여러 사람이 고통을 받고 있는것 같습니다. 있을때는 몰랐는데 막히고 보니 서해대교의 소중함을 절실하게 깨닫는다는 분도 한둘이 아닙니다. 문제는 서산, 당진쪽에 사시는 분의 수도권 이동이나 이쪽 공단의 물류가 너무나 힘들다는 것입니다. 부여까지 내려오는 제 2 서해안 고속도로가 빨리 뚫렸더라면 조금 덜 했을지도 모르겠다는 생각입니다. 각설하고 서해대교가 막히면 갈수 있는 길은 국도 뿐인데 삽교호를 지나는 코스는 길이 오로지 하나 뿐이라 정체 대열에 합류해 버리면 도무지 방법이 없습니다. 바다로 우회할 수는 없는 노릇이니 말입니다. 그래도 사전에 빠져나갈 수 있는 우회로는 자주 다녀본 사람이 안다고 자주 다니지 않으시는 분들은 잘 모르는 우회로를 공유 하고자 합니다. 지도에서 붉은색으로..
많은 경우 깃의 원격 저장소는 웹서버를 앞단에 두고 인증을 수행하면 서비스를 제공합니다. 그런데 나의 로컬 저장소에 있는 내용을 원격 저장소에 푸시(push)하지 않고 간편하게 공개하는 방법이 바로 "git daemon" 명령입니다. 윈도우 토터스깃에서는 저장소의 컨텍스트 메뉴에서 토터스깃>공개하기(Daemon)를 선택해서 서버를 가동시킬 수 있습니다. 문제는 이 방식으로 서버를 가동시키면 인증 과정이 없기 때문에 접속할 수 있는 누구나 읽기/쓰기가 가능한 상태가 된다는 것입니다. 그러므로 사용에 주의를 기울여야 하고 진행하기 원한다면 [계속]을 클릭합니다. 서버를 동작할때 위의 그림과 같은 보안 경고창이 나올텐데 서비스 가동을 계속하려면 [액세스 허용]을 눌러야 합니다. 위의 화면은 서버 가동 중임을 ..
사용자 컨트롤(User Control)은 비주얼스튜디오에서 윈도우 폼 응용 제작 과정에 활용할 수 있도록 도구 상자를 통해 기본적으로 제공하는 다양한 컨트롤과 같이 부품처럼 여러 폼이나 또는 다른 응용에서 간편하게 재사용 할 수 있도록 한것입니다. 윈도우 폼을 만들듯이 사용자가 어렵지 않게 제작할 수 있습니다. 공통적으로 자주 사용하는 것이 있다면 사용자 컨트롤로 만들어 둔다면 재사용성을 높이고 프로그램 개발의 효율성을 높이는데 기여할 수 있을 것입니다.사용자 컨트롤은 *.DLL 형태로 배포해서 다른 프로그램에서 손쉽게 사용할 수 있도록 클래스 라이브러리 프로젝트에 작성하는 방법이 있습니다. 이 방법은 여러개의 사용자 컨트롤을 하나의 패키지로 배포하는데 용이한 방법입니다. 또다른 방법은 윈도우 폼 응용에..
토터스깃으로 프로젝트 시작하기에서 언급한것처럼 외부 저장소를 복제해서(Clone) 프로젝트를 시작한 경우, 특히 해당 프로젝트가 활발하게 활동하는 오픈소스 프로젝트라면 해당 프로젝트의 원본 저장소는 지속적으로 업데이트가 수행되기 때문에 현재 로컬 저장소로 복제한 내용이후로 많은 변경이 일어났을 가능성이 큽니다. 변경된 최신의 코드를 확인하고 싶다면 "가져오기(fetch)"와 "가져와 병합하기(pull)"를 사용할 수 있습니다.차이점은 가져오기(fetch)는 원격 저장소의 가져오기는 하지만 현재 로컬 저장소에 반영하지는 않고 반영하고 싶다면 나중에 병합(merge)을 수행해야 합니다. 반면에 가져와 병합하기(pull)는 원격 저장소의 내용을 가져와 로컬에 병합하며 반영하는 동작을 수행합니다.탐색기에서 로컬..
프로젝트 초기부터 프로젝트에 대한 코딩 가이드가 작성되어 그 속에 포함된 라이선스 헤더를 소스코드마다 붙여왔다면 문제가 될 것이 없지만 코딩이 거의 완료된 시점에 코드마다 라이선스 헤더를 붙여야 한다면 작업이 귀찮기도 하지만 코드 전체를 일일이 열어서 붙여넣기 해야하는 짜증나는 작업일 수 있습니다.지루할 수 있는 라이선스 헤더 붙이기를 간편하게 일괄로 붙일 수 있는 "License Header Manager"라는 비주얼스튜디오 플러그인이 있습니다. 물론 무료입니다. 필자의 경우 비주얼스튜디오 2010으로 테스트했는데 문제없이 잘 동작했습니다. 2010부터 2015까지 모두 지원하니 간편하게 설치해서 사용할 수 있습니다. 다운로드 및 설치는 비주얼스튜디오 내부에서 간편하게 할 수 있습니다. 도구>확장 관리..
올해 농사의 맨마지막 작업은 서리태 선별이었습니다. 쥐의 귀 정도 크기라 해서 서리태라고 하는 분도 있고, 성장 기간이 길어 서리를 맞으면서도 큰다해서 서리태라는 분도 있습니다. 겉은 검고 속이 초록인 특성이 있습니다. 서리태보다 크기가 휠씬 작고 동글동글한 서목태는 쥐의 눈 정도 크기라 서목태라 하는데 그냥 쥐눈이콩이라고도 합니다. 서리태와 서목태가 검은색으로 비슷해 보이고 크기만 다른것 처럼 보이지만 실상 크는 모양도 열매가 달리는 모습도 다른 완전히 다른 품종입니다. 서리태의 성장 기간이 길다보니 자연스레 농사의 맨마지막 작업으로 서리태를 만나는 것은 당연한 귀결이 아닌가 싶기도 합니다. 문제는 선별입니다. 콩 탈곡기에 잘 말린 콩을 줄기체로 집어넣어 알맹이를 받아내면 위의 그림같은 깔끔한 모양의 ..
VB.Net에서 데이터베이스 사용하기 1에 이어 비베 닷넷(VB.Net)에서 다양한 데이터베이스에 접속해서 데이터 검색 및 저장, 갱신, 삭제등을 수행하기 위한 기본적인 ADO.NET 클래스들을 다루고자 합니다.특정한 데이터베이스에 접속하여 동작하는 응용 프로그램을 본격적으로 개발하기에 앞서 중요한 검토사항은 해당 데이터베이스를 어떤 방식으로 접속할 것인가 하는 것입니다. DBMS 별로 제공하는 드라이버가 다를 수 있기 때문에 네이티브 ADO.NET 드라이버를 제공하는지 OLE DB 접속 방식을 사용하는지, 아니면 ODBC 방식을 사용해야 하는지를 먼저 확인하고 해당하는 드라이버의 클래스를 사용하여 코딩을 진행합니다.그런데, ADO.NET에서는 드라이버의 종류와 관계없이 유사한 클래스를 제공하기 때문에 ..
앞선 포스팅(티베로 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 버전을 다운로드 받았습니..