토터스깃을 사용하면서 여러 저장소를 관리하다보면 이 프로젝트를 손댄적이 있는지, 수정했다면 어떻게 손을 대었는지, 저장소를 복제한 원격 저장소의 주소는 무엇인지, 이 소스 코드는 누구에 의해 어떻게 변경되어 왔는지 등을 확인할 필요가 생깁니다. 토터스깃 저장소의 정보 확인은 윈도우 탐색기에 적용하는 아이콘 오버레이 기능으로 시작할 수 있습니다.(토터스깃(TortoiseGit) 돌아보기 참조) 윈도우 탐색기에 표시하는 원래의 아이콘에 토터스깃의 아이콘 오버레이가 적용되어 있다면 해당 폴더 또는 파일은 토터스깃의 형상 관리 대상이라는 의미이고 아이콘의 종류에 따라 기본적인 상태를 확인할 수 있습니다. 위의 그림은 "plagfind"라는 프로젝트에 변경 파일이 생겼다는 의미인 것입니다. 아이콘을 통한 상태확인..
윈도우 폼 기반으로 단순한 데이터베이스 처리 위주로 동작하는 프로그램이나 대부분의 업무용 프로그램에서는 사용 빈도가 많지 않지만 닷넷에서 제공하는 그래픽 기능을 비주얼베이직 닷넷(이하 비베닷넷)을 통해서 활용하는 방법을 알아두면 유용하게 사용할 경우가 있습니다. 비주얼스튜디오에서 제공하는 기본 컨트롤에서 지원하지 않는 인터페이스를 별도로 제작하거나 여러 프로그램에서 사용할 수 있는 공통 라이브러리를 제작하는 등에 여러모로 활용 가능성이 있습니다. 닷넷의 그래픽 기능을 최대한 활용하는 프로그램은 뭐니뭐니해도 그래픽 편집 도구가 아닐까 싶습니다. 대표적인 예로 페인트닷넷을(가볍고 빠른 이미지 편집툴 페인트닷넷 참조) 예로 들수 있습니다. 페인트 닷넷은 가로, 세로 크기를 지정한 캔버스 위에 다양한 도형을 그..
웹 서비스가 다양화되고 클라이언트/서버 구조의 프로그램에서 조차 "검색"은 일반화된 기능이다보니 프로그래머의 입장에서 검색 결과의 일부분을 체계적으로 보여주는 페이징은 필수 불가결한 기능이라 할 수 있습니다. 그런데, 페이징 기능을 수행하려면 검색 결과의 개수를 먼저 파악해야하고 그중에 특정 부분의 행들을 추출할 수 있어야 합니다. 그런데 조건에 해당하는 모든 행의 개수를 파악하는 것도 테이블 전체를 스캔하므로 데이터베이스 시스템에 부담을 주지만 검색 결과를 특정 조건에 따라 정렬한 다음에 일부분을 뽑아내는 것은 개수를 파악하는 것보다 더 심한 부담을 주는 것이 사실입니다. 그렇다고 데이터베이스 수준에서 페이징을 수행하지 않고 클라이언트로 모든 데이터를 가져온다면 트래픽도 감당하기 어려울 뿐만 아니라 클..
비주얼베이직 닷넷(이하 비베닷넷)에서 인쇄를 구현하는 것이 그리 쉽지만은 않은 작업입니다. 웹 페이지 처럼 화면에 HTML을 통해서 그림과 도표, 텍스트로 페이지를 출력하고 CSS를 이용해서 인쇄시점에 포함해야될 내용과 제외할 것을 지정해 놓으면 웹브라우저가 알아서 출력해 주는 것처럼 윈도우 폼에서도 자동으로 인쇄해 준다면 프로그래머는 편하겠지만 화면의 동작방식과 크기는 프린터의 동작 방식과 크기와 차이가 크기 때문에 인쇄용 양식과 내용을 별도로 구성해 주어야 합니다. 다만 화면 출력에 사용하는 클래스나 함수를 그대로 프린터 출력에도 동일하게 사용할 수 있으며 시스템에서 제공하는 몇가지 컴포넌트와 클래스를 잘 활용하면 프린터의 종류와 관계없이 다양한 기종의 프린터에 동일한 페이지 내용을 간편하게 출력할 ..
이기종 데이터베이스를 사용하더라도 데이터베이스 간의 주요 데이터 타입은 유사하게 지원하는 것이 보통입니다. 대표적인 것이 문자열, 정수와 함께 일자시간 타입입니다. 위의 스키마는 3개의 컬럼을 가지고 있는 테이블로 tagname과 dt를 기준으로 주키(Primary key)를 설정한 것입니다. 위의 스키마를 각 데이터베이스 별 CREATE 문으로 작성하면 아래와 같습니다. 오라클만 DATE 타입을 사용하고 MySQL과 SQL Server는 DATETIME 타입을 사용합니다.== MySQL ==CREATE TABLE tags (tagname VARCHAR(16), dt DATETIME, val INT, PRIMARY KEY(tagname, dt));== SQL Server ==CREATE TABLE tag..
오라클 데이터베이스를 무료로 사용할 수 있는 개발자 버전 XE를 사용하다보면 갑자기 아래와 같은 메시지를 뿌리면서 접속이 않되는 경우가 있습니다.ORA-28001: the password has expiredCause: The user’s account has expired and the password needs to be changed 이유는 비밀번호의 유효 기간이 실제로 만료되어서 발생하는 현상으로 보안을 위해서 사용자가 주기적으로 비밀번호를 바꾸도록 유도하기 위한 장치입니다. PASSWORD_LIFE_TIME 변수를 통해서 비밀번호 유효 기간을 시스템레벨로 관리하는데 오라클 10g 버전 까지는 기본값이 무제한 이었지만 11g부터는 아래의 그림과 같이 기본값이 180일로 설정되어 있습니다. PASS..
프린터는 모니터가 일반화 되기 이전의 컴퓨터 시스템에서는 컴퓨팅 결과를 확인할 수 있는 거의 유일한 출력 장치라 해도 과언이 아니었습니다. 프로그래머가 프로그램을 작성해서 펀치카드 리더기등의 입력장치로 프로그램을 로딩시켜 실행한 결과는 양쪽에 구멍이 송송 뚫린 연속용지에 출력되어 프로그램의 실행 결과를 확인할 수 있었습니다. 초기의 프린터는 수동 타자기를 대신하는 방식으로 글자가 새겨진 자판이 먹지를 때려 종이에 글자가 찍히게 하거나, 글자가 볼록하게 새겨진 철판 밴드가 회전하는 과정에 메인 컴퓨터에서 전송된 신호에 따라 헤머가 먹지를 때려 종이에 글자를 출력하는 방식을 사용했습니다. 한번에 한줄 단위로 인쇄하기 때문에 라인 프린터라(Line printer) 불렀습니다. 해머가 먹지(리본)를 때리는 방식..
지리산 둘레길과 구룡폭포의 환상적 조합(1)에 이어진 글입니다. 지리산 둘레길을 다녀온 경험이 너무 좋았던 이유는 뭐니뭐니해도 계획에 없던 구룡 계곡과의 만남 때문이 아니었나 싶습니다. 필자의 경우에도 마찬가지이지만 청년시절부터 지리산 곳곳을 다녔지만 대부분은 정상인 천왕봉을 목표로 삼거나 가볍게 다녀오는 경우에도 노고단 정도를 목표로 했기 때문에 정작 구룡 계곡을 찾아 멀리서 오는 경우는 드물것입니다. 저희가 구룡 계곡을 따라 내려가는 도중에 만난 사람들도 대부분 가족 단위로 가볍게 다니러 오는 경우가 대부분이었습니다. 여름이면 계곡이 사람으로 넘쳐나겠구나 싶을 정도로 가까운 도시인들의(대부분 남원근처에 사시는 분들이겠지만) 좋은 쉼터가 될것으로 보였습니다. 아무튼 구룡 폭포로 가는 방법은 구룡 폭포 ..
10/17 당일치기로 지리산 둘레길 걷기를 다녀왔습니다. 걷기 여행 계획을 세울때 까지만 해도 둘레길 1코스를 거꾸로 내려로는 것이었는데, 결과적으로는 둘레길 1코스를 운봉에서 출발하여 중간에 구룡 폭포가 있는 구룡 계곡 상행로로 코스를 변경해서 다녀왔습니다. 구룡폭포를 들러서 다시 둘레길로 복귀하려는 의도였는데 안내판과는 달리 길을 찾지 못해서 그냥 국립공원 산행로로 쭉 내려오고 말았습니다. 여행이란 항상 변수가 있기 마련인데 돌아보니 "지리산 둘레길과 구룡폭포의 환상적이 조합"이 아니었나 싶습니다. 이번 글은 둘레길에 대해서 다루고 또다른 글을 통해 구룡 계곡 산행길(지리산 숲길)에 대해서 다루어 보겠습니다.일단 자동차로 주천에 있는 둘레길 주차장에 도착했는데 순천-완주간 고속도로 오수 IC에서 빠져..
닷넷 환경에서 오라클 데이터베이스에 접속할 수 있는 방법은 여러가지가 있을 수 있지만 가장 권장할 만한 방법은 ODP.Net을(Oracle Data Provider for .NET) 사용하는 것입니다. 사실 닷넷 프레임워크에는 위의 그림처럼 System.Data.OracleClient라는 네임스페이스가 존재합니다. SQL Server처럼 오라클 데이터베이스도 별다른 드라이버 설치 없이 간편하게 사용할 수 있겠다 싶습니다. 실제로 동작하는 부분이 있기도 합니다. 그렇지만, 위의 그림에서 설명하고 있는 것처럼 마이크로스프트에서는 더이상 오라클 데이터베이스에 대한 지원을 하지 않고 있고 삭제 예정임을 분명히 하고 있습니다. 닷넷 환경에서 안정적으로 오라클 데이터베이스를 사용하려면 Oracle Data Prov..
윈도우 무비 메이커를 처음 접하면서 생경한 느낌이 들지만, 프로그램의 정체와 용도를 분명히하면 실망도 적고, 알맞은 용도로 활용할 수 있으므로 여러분들이 언급하고 있는 윈도우 무비 메이커의 장단점을 먼저 정리해 볼까 합니다. 우선 장점은 다음과 같습니다.누구나 무료로 사용 가능. 윈도우 메모장처럼 XP의 SP2, SP3에서는 기본 설치되는 프로그램이고, 윈도우 7이상에서는 무료를 다운로드 받을 수 있습니다.초보자도 어렵지 않게 동영상 편집. 직관적이고 단순한 사용자 인터페이스를 가지고 있으면서도 일반적인 동여상 편집 과정을 그대로 수행할 수 있습니다.슬라이드 쇼 동영상에 최적화. 아마추어용 동영상, 사진 기반의 슬라이드 쇼를 쉽게 제작할 수 있도록 기능을 제공하고 있습니다. 본글의 제목처럼 간편한 음악 ..
아이들 학교 축제 준비를 하면서 동영상 편집 도구로 윈도우 무비 메이커를 사용한다는 이야기를 들었는데 막상 사용해 보려고 이것 저것 알아보니 "무료"로 배포하고 있고 서비스팩에 자동 포함된다는 설명도 있기는 한데 찾기가 쉽지는 않군요. 위의 그림은 http://windows.microsoft.com/ko-kr/windows/get-movie-maker-download 페이지의 내용으로 운영체제별로 사용 가능 무비 메이커의 버전과 다운로드 방법등이 기술되어 있습니다. 필자의 경우에는 Windows7을 사용하고 있으므로 우측의 [지금 받기] 버튼을 통해서 무비 메이커 2012를 다운로드 받아 설치 했습니다. 다운로드 파일은 wlsetup-web.exe로 실행하면 웹을 통한 "Windows 필수 패키지 201..
본 글은 가장 간단한 컴파일러(C언어 배우기를 위한 준비 참조)와 텍스트 편집기(또 다른 텍스트편집기 NPP - 노트패드 플러스 플러스 참조)를 활용한 C언어 개발을 위한 노트패드 ++(이하 NPP)의 콘솔 플러그인(노트패드 ++의 유용한 플러그인 설치하기 참조)에 관련한 포스팅입니다. 연관 글을 참조하시면 보다 유익한 C언어 스터디를 하실 수 있습니다.NPP로 C언어 소스 코드를 편집하다가 별도의 창을 열어서 컴파일을 수행하고 그 결과에 따라 디버깅하는 작업을 반복할 수도 있지만 NPP 창 내부에서 빌드 과정을 확인하면서 코드를 보완하거나 코드를 참조하면서 빌드 또는 실행 결과를 확인하기 하기 위해서는 하나의 인터페이스에서 작업하는 것이 유용합니다. 비주얼스튜디오나 이클립스와 같은 통합개발환경(IDE)..
노트패드 ++(이하 NPP)의 플러그인은 설치 폴더 아래에 있는 plugins 디렉토리에 있는 DLL 파일들에 의해 수행됩니다. 플러그인의 추가 설치 및 관리는 위의 그림과 같이 플러그인>Plugin Manager>Show Plugin Manager 메뉴를 통해서 수행합니다. 플러그인 관리자는 위의 그림과 같이 "Available", "Updates", "Installed" 탭으로 구분하여 인터넷을 통한 최신의 플러그인 정보나 업데이트 정보를 제공합니다. 사용자는 개별 플러그인을 클릭하여 상세한 설명이나 릴리즈 정보를 확인할 수 있습니다. 새로운 플러그인을 설치하려면 위의 그림과 같이 해당 플러그인을 체크 선택하고 [Install] 버튼을 클릭하면 됩니다. 플러그인을 설치한 다음에는 NPP를 재가동 해야..
데이터베이스를 사용하는 솔루션 프로그램들은 프로그램의 정상 가동을 위해서 필요한 스키마가 미리 준비되어 있는 상태로 프로그램을 시작하는 것이 일반적인 방법입니다. 그러나, 최근의 프로그램들은 데이터베이스 연결까지만 사용자가 설정해 놓으면 테이블이나 뷰 생성과 초기 데이터 준비를 프로그램이 알아서 진행하여 프로그램 수행 환경 준비를 자체 해결하는 경우가 많습니다. 이 과정에서 연결한 데이터베이스에 특정 테이블이나 컬럼의 존재 여부를 검사하는 과정은 필수적이라 할 수 있습니다. 테이블 존재 여부를 검사해서 테이블이 존재하지 않는 경우 자동으로 테이블을 생성하는 DDL(Data Definition Language) 문장을 실행할 수 있을 것입니다. 프로그램 버전 업그레이드 과정에서 특정 컬럼이 존재하지 않는 ..