윈도우 폼 응용의 특징중의 하나는 사용자와의 대화를 다양한 창을 통해서 수행한다는 점일 것입니다. 이러한 창은 개발자가 다양한 기능 제공을 위해서 제작한 것도 있지만 자주 사용하는 창은 시스템에서 기본적으로 제공하기도 합니다. 좌측의 그림은 비주얼스튜디오의 도구 박스에서 제공하는 다양한 컨트롤로 노란색의 박스로 표시한 시스템 창을 확인할 수 있습니다. 이외에도 색상 선택을 위한 ColorDialog도 제공하고 있습니다. 도구 박스에서 제공하는 시스템 창들은 도구박스에서 디자이너 작업 공간으로 끌어다놓기(Drag & Drop)로 컨트롤을 추가하고 각 창별로 필요한 옵션을 설정하는 방법으로 간편하게 사용할 수 있습니다.도구박스에서 제공하는 시스템 창들은 특정 기능에 특화되어 있다면 단순하게 오류 메시지나 결..
윈도우에서 깃(git) 설치하기을 통해서 윈도우에서도 깃(Git)을 사용할 준비를 했다면 우선 오픈 소스 프로젝트를 체크 아웃 받는 작업을 통해서 깃의 동작을 맛볼 필요가 있습니다. 많은 오픈 소스 프로젝트에 대해서 Git 호스팅 서비스를 제공하는 GitHub(github.com)에서 C# 기반의 실시간 게임 엔진으로 인기 있는 OpenRA를 체크아웃 받아 보겠습니다. 프로젝트의 일원이 아니더라도 소스 코드를 내려 받을 수 있도록 하고 있는데 위의 그림의 우측에서 보듯이 깃으로 접근하기 위한 주소를 제공하므로 아이콘을 클릭하여 깃 접속을 위한 주소를 복사합니다. 윈도우 탐색기에서 원격 프로젝트를 복제할 위치로 이동하여 마우스 우측 마우스로 팝업메뉴를 띄우고 "Git Gui"로 GUI 화면을 아래와 같이 ..
얼마전부터 요리사 두명, 두명의 음악가, 두명의 개그맨이 모여 "도시 농부"를 주제로한 인간의 조건이란 예능 프로그램이 방영되고 있습니다. 그 프로그램에는 일명 "허세 셰프"라는 분도 등장하는데 독특한 개성에 프로그램을 맛깔나게 하는 캐릭터입니다. 그런데 그분이 극구 옥상 텃밭에 논을 만들자고 해서 시작한 벼 농사, 얼마전에는 피 뽑기 소동도 나오면서 피와 벼를 구분하는 방법이 지상파를 타기도 했습니다. 매일 주식으로 먹는 쌀의 재배 과정을 많은 도시민들이 만날 수 있는 것만으로도 "호사"가 아닌가 싶기도 하지만 이 프로그램에서 벼꽃도 보여 줄 수 있다면 얼마나 좋을까 하는 생각을 해보았습니다. 꽃이 피는지도 지는지도 모르게 살짝 보였다 사라지는 화려하지 않은 벼꽃이지만 인류이래로 수천년 종족을 보존하기..
말복을 보내면서 만나는 반가운 얼굴 콩꽃입니다. 품종마다 꽃의 색깔도 조금씩 다르고 꽃의 개수도 다르지만 이 앙증맞은 꽃에서 콩 꼬투리가 나오는 것만은 분명합니다. 이 꽃을 많이 피우려고 순지르기하는 집들도 꽤 있습니다. 위의 그림 처럼 가지와 가지 사이에 꽃을 피우고 꼬투리를 맺기 때문에 순지르기로 키를 키우기 보다 가지에 힘을 쏟으라는 농부의 의지인 것입니다. 위의 그림들에 있는 하얀 꽃은 쥐눈이 돌콩의 꽃입니다. 보라색 꽃은 메주콩(백태)의 꽃입니다. 백태의 경우에도 가지와 가지 사이에 꽃을 피우는 것을 확인할 수 있습니다. 가지의 솜털이 인상적입니다. 꽃을 더 많이 피우기 위한 순지르기를 하고 싶다면 이렇게 꽃을 피우기 훨씬 이전에 작업해야 합니다. 시기와 성장 과정을 면밀히 살펴보아서 줄기가 너..
해바라기를 대량으로 키우시는 분들은 대부분의 해바라기가 익어갈 무렵 기계로 한번에 수확하시겠지만 필자와 같이 소량으로 키우면서 해바라기 후작으로 콩이라도 심어서 이모작을 하고 싶은 이들은 빨리 익지 않는 해바라기에 조바심이 나서 뙤악볕에 이리보고 저리보고 몸이 안달이 날 지경입니다. 이른 봄 해바라기를 한번에 모종하고 심었어도 수확 시점은 제각각입니다. 위의 그림은 올해 처음 수확했던 해바라기를 채반에 건조하고 있는 모습이고 아래의 그림은 그 이후에 시간차를 두고 수확한 것을 매달아서 건조하고 있는 모습입니다. 수확 시점은 해바라기 열매 뒷편이 노랗게 변하고 앞 쪽 열매 앞에 붙은 꽃들이 저절로 떨어지기 시작할 무렵이 적기 인듯 싶습니다. 목을 댕강 댕강 잘라놓은 것이 이상 야릇한 모습이지만 해바라기를 ..
깃(Git)은 Mercurial과 함께 분산 버전 관리 시스템(DVCS, Distributed Version Control System)의 대표 주자입니다. 최근에는 깃허브(githum.com)의 활성화와 함께 깃의 인기는 지속적으로 상승하고 있고 이로써 전통적인 버전 관리 시스템인 서브버전(Subversion)의 자리도 하나 둘씩 깃(Git)으로 대치되고 있는 상황으로 보입니다. 물론 개발에 직접 참여하지 않고 소스 코드를 주기적으로 업데이트 받고 싶다면 이전에 사용하던 서브버전을 그대로 사용할 수도 있습니다. 깃허브와 같은 서비스 시스템에서 통상 깃 리포지토리 호스팅 뿐만아니라 서브버전 인터페이스도 제공하기 때문입니다. 그렇지만 개발 조직에서 도구를 깃으로 통일하고 기존에 버전 관리하던 내용도 깃으로..
PM, PMO, 스프트웨어 공학(SE), 형상 관리, 버전관리, 테스트 케이스 작성과 테스트, 정적 코드 검사, Unit test...... 개발자들이 그리 탐탁치 않게 여기는 것들이 아닌가 싶습니다. 필요한 기능을 빨리 개발해 내면 되지 실질적으로는 별로 도움이 되지 않는것 같은 복잡한 절차를 왜 자꾸 만들지? 하는 의문이기도 합니다. 이러한 의문이 어떤 경우에는 설득력이 있는 경우도 있습니다. 절차라는 것이 진짜 형식일 뿐인 경우도 있으니 까요. 그런나 1인 개발 체제를 넘어서서 여러 사람이 함께하는 협업 개발 환경으로 전환되거나, 소프트웨어의 생존 기간이 길어지고 업데이트와 업그레이드 과정이 반복되다 보면, 위에서 그리 탐탁치 않게 여기던 것들이 "아, 이래서 필요한 것이었구나!"하는 공감을 하게 ..
프로그래밍 언어를 사용하면서 변수, 키워드(예약어), 연산자등의 다양한 문법 구조가 있지만 중요한 역할을 하는 요소는 바로 리터럴입니다. 리터럴(literal)은 단어적 의미인 "문자 그대로의" 의미 처럼 숫자, 문자등의 값 그대로를 의미하는 문법 요소입니다. 변하지 않는 값이므로 상수(Constant)값이라 지칭하기도 합니다.그런데 동일한 숫자 값일지라도 서로 다르게 취급될 수 있습니다. 예를 들어 10과 10UL은 같은 값이지만 10은 int타입이고 10UL은 unsigned long 타입으로 표현 범위가 완전히 다릅니다. 이처럼 C#의 다양한 데이터형에 따라 리터럴 표현 방법도 다양합니다. ■ 정수형 리터럴C/C++과는 달리 2진수 및 8진수 표현은 존재하지 않습니다. 0x를 앞에 붙이면 16진수로..
윈도우 폼으로 화면 기반의 프로그램을 작성하면 System.Windows.Forms 클래스를 상속받아 클래스를 작성하게 됩니다. Forms 클래스의 연관 속성과 메서드, 이벤트는 MSDN 페이지에서 자세하게 확인할 수 있습니다. 페이지의 링크는 https://msdn.microsoft.com/ko-kr/library/system.windows.forms.form(v=vs.100).aspx입니다. 아래의 그림은 Forms 클래스의 속성과 메서드, 이벤트를 마인드맵으로 나타낸 것입니다. 속성을 적절하게 설정하여 제목, 창의 위치나 크기등을 조정하고 메서드 호출을 통해서 원하는 동작을 지시할 수 있으며 다양한 이벤트에 대응하는 적절한 이벤트 처리 루틴을 기술할 수 있습니다. 닷넷 환경에서 VB 또는 C#으로 ..
페인트닷넷에서 제공하는 기본 기능으로 왠만한 이미지 편집과 조정이 가능하지만, 사용자들의 다양한 필요를 적용한 플러그인들은 페인트닷넷이 오픈소스 무료 프로그램으로 질이 낮다는 편견을 불식시키는데 적지 않은 역할을 합니다. 특히 이미지 조정 및 효과와 관련한 플러그인은 상용 프로그램에서 수행하는 왠만한 기능들을 사용할 수 있도록 해줍니다. C# 언어를 구사할 수 있다면 나름의 효과 플러그인 개발을 시작할 수도 있습니다.본 포스팅에서는 http://forums.getpaint.net/index.php?/topic/20421-glass-text-with-filling/에서 다루고 있는 유리 효과를 내는 텍스트 만들기 튜토리얼을 따라하면서 다양한 효과 플러그인을 사용하기를 안내하고자 합니다. 본격적인 작업 이전..
페인트 닷넷의 다양한 효과 적용은 아래의 그림과 같이 7개의 내장 효과 기능과 사용자가 추가한 플러그인을 통해서 수행할 수 있습니다. 맨상단의 "반복" 메뉴는 직전 특정 효과를 적용한 경우에만 나타나는 메뉴로 직전에 수행했던 효과를 다시 적용하고 싶을 때 사용합니다. ■ 노이즈(Noise)이미지에서 노이즈를 추가하거나 제거할 때 사용합니다. 원본 노이즈 제거 노이즈 추가 중간(값이 작으면 노이즈 제거, 크면 흐림 효과) ■ 렌더링(Render)렌더링은 미리 준비된 이미지를 설정에 따라 현재 작업 레이어에 그리는 것으로 기존에 준비했던 이미지와 겹치지 용도 등으로 활용할 수 있습니다. 원본 만델브로트 프랙탈 줄리아 프랙탈 클라우드(구름) 효과 ■ 미술효과(Artistic)잉크 펜, 연필, 유화와 같이 전통..
간단한 화면 녹화 프로그램을 찾다가 국내에서도 다양한 무료 프로그램을 배포하고 있음을 알 수 있었습니다. 그렇지만 화면 녹화라는 것이 시스템 자원을 엄청나게 사용할 수 밖에 없기 때문에 애드웨어나 악성코드에 대한 심리적인 부담은 어쩔수가 없는 것 같습니다. 그래서 소스를 공개하고 있는 도구를 찾아 보았고 예전에 한번 사용한 기억이 있었던 캠스튜디오의 소스 코드를 내려받아 빌드해서 사용해 보기로 했습니다. 실제로 캠스튜디오의 경우에도 악성코드가 포함되었다는 논란이 있기도 했었습니다.(https://en.wikipedia.org/wiki/CamStudio 참조) 소스 코드는 http://sourceforge.net/p/camstudio/mercurial/ci/default/tree/CamStudio2.7/에..
스마트폰의 성능이 좋아지다 보니 스마트폰은 전문가용 DSLR 수준은 아니라도 상당 부분 디지털카메라의 영역을 잠식한 것은 주지의 사실입니다. 뿐만아니라 동영상의 경우에도 디지털 캠코더 수준의 산출물을 만들어 낼 수 있을 정도로 발전해 왔습니다. 스마트폰으로 만든 영화를 제출하는 영화제가 있을 정도이니 스마트폰 동영상이 낯설지 않은 시대라는 것도 분명합니다.(올레 스마트폰 국제 영화제 http://www.ollehfilmfestival.com/ 참조)최근 약 2분 가량의 음성 없는 동영상 촬영이 필요해서 갤럭시 엣지를 사용하는 동료에게 촬영을 부탁했습니다. 1920 X 1080 해상도도 1분 48초 가량을 촬영했더니 223MB 용량이 나오더군요. 파일 확장자는 *.mp4로 전달 받았는데 화면 크기도 이렇게..
마을 이곳 저곳에서 다양한 방식으로 참깨를 말리는 시기입니다. 지난번 참깨 말리기와 재배 과정 돌아보기에서 널어 놓아던 참깨의 꼬투리가 서서히 터지기 시작했습니다. "톡톡" 소리를 내며 터지는 참깨의 꼬투리! 참깨를 널어놓았던 곳의 바닥은 무슨 전투 현장 처럼 아무런 손을 대지 않았음에도 불구하고 참깨 알갱이가 흔건 합니다. 마르면 "톡"하고 스스로 터지는 참깨의 꼬투리의 모양은 위의 사진과 같습니다. 마르면 그냥 흘러내릴 수 밖에 없는 구조입니다. 그런데 유심히 보면 볼수록 참깨 꼬투리가 참 이쁩니다. 보슬보슬한 잔털이 있는 꼬투리의 겉 껍질의 모양도 이쁘고, 나란히 올망졸망 줄지어 들어가 있는 참깨 알갱이의 모습은 정말로 귀엽습니다. 기름을 짤 정도의 풍성한 양은 아니지만 아끼지 않고 통깨나 깨소금으..
페인트 닷넷은 사진 이미지를 조정(Adjustment)하는데 많이 사용하지만, 용도에 따라 다양한 특수효과를 얻을 수 있습니다. 영어 단어는 Adjustment이지만 번역하신 분께서 크기 조정 및 회전 등과 구분하기 위하여 재조정이라 번역하신것 같습니다. 재조정 메뉴이름 옆에 "..." 표시된 기능들은 별도의 창을 통해서 값을 변경하는 방식이고 "색 반전, 암갈색, 자동 수준, 흑백" 메뉴는 별도의 창없이 해당 기능을 수행하므로 감안하시고 작업을 수행해야 합니다. 재조정 결과가 마음에 들지 않는다면 언제든지 Ctrl+Z로 작업 내용을 취소하면 됩니다. 각각의 기능 들에 대한 간단한 설명과 적용 결과를 비교하기 위해서 아래와 같은 원본이미지를 가지고 작업합니다. ■ 곡선(Curve)이미지의 색(Red, B..