C# 닷넷 프로그램에서 시스템 시간을 변경하는 과정을 설명합니다. C# 닷넷 프로그램에서 시스템 시간을 설정하는 과정에서 꼭 유념해야 할 것들은 WIN32 API인 SetSystemTime()을 이용해서 설정하는데 그 과정에서 컴퓨터 시스템의 타임존을 반드시 감안해야 한다는 것입니다. 또한 윈도우 10등의 경우 시스템 시간을 변경하는 것이므로 프로그램을 관리자 권한으로 수행시켜야 프로그램이 실제 효력을 발휘할 수 있습니다. struct SYSTEMTIME { public ushort wYear; public ushort wMonth; public ushort wDayOfWeek; public ushort wDay; public ushort wHour; public ushort wMinute; public..
마이크로소프트사의 닷넷 프레임워크가 발전을 거듭하면서 자바(Java)진영 처럼 어느덧 크로스플랫폼(Cross platform)이라는 말에 어울리는 수준에 도달하고 있지 않나하는 생각입니다. 자바 기반의 이클립스를 리눅스에서도 윈도우에서도 동일한 사용 경험으로 사용할 수 있듯시 닷넷 기반의 응용을 윈도우 뿐만아니라 리눅스에서도 사용할 수 있다는 말입니다. 이것을 가능해주는 프로젝트가 바로 모노 프로젝트(http://www.mono-project.com/) 입니다. 이번 포스팅은 리눅스(우분투)에서 모노(mono)를 설치해서 닷넷 응용의 크로스 플랫폼 가능성을 살펴보고자 합니다. sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3..
닷넷 환경에서 오라클 데이터베이스에 접속할 수 있는 방법은 여러가지가 있을 수 있지만 가장 권장할 만한 방법은 ODP.Net을(Oracle Data Provider for .NET) 사용하는 것입니다. 사실 닷넷 프레임워크에는 위의 그림처럼 System.Data.OracleClient라는 네임스페이스가 존재합니다. SQL Server처럼 오라클 데이터베이스도 별다른 드라이버 설치 없이 간편하게 사용할 수 있겠다 싶습니다. 실제로 동작하는 부분이 있기도 합니다. 그렇지만, 위의 그림에서 설명하고 있는 것처럼 마이크로스프트에서는 더이상 오라클 데이터베이스에 대한 지원을 하지 않고 있고 삭제 예정임을 분명히 하고 있습니다. 닷넷 환경에서 안정적으로 오라클 데이터베이스를 사용하려면 Oracle Data Prov..
통상 하나의 윈도우 폼 응용 프로그램은 여러개의 창(폼, Form)으로 구성합니다. 기능별로 별도의 폼을 만들어 필요에 따라 적절한 폼을 동작시키는 다중 폼 형태로 운영하는 것이 일반적입니다. 단일 폼 응용에서 폼을 추가 하려면 프로젝트의 팝업 메뉴에서 추가>Windows Form을 선택합니다. 추가>새 항목에서 여러 템플릿 중에 윈도우 폼을 선택해도 됩니다. 새롭게 추가할 폼의 이름을 확인하고 [추가] 버튼을 누릅니다. 추가한 폼에는 간단하게 문자열을 받을 수 있는 텍스트박스 컨트롤 하나와 입력 확인을 받을 버튼을 추가합니다. 또한 폼의 TopMost 속성을 True로 설정하여 이 폼이 보여질때 폼이 여러개 겹치더라도 최상단에 표시될 수 있도록 합니다. 창이 여러개 겹칠때 보여지는 순서를 Z 순서라 하..
윈도우 폼(Windows Forms) 응용 프로그램을 본격적으로 다루기에 앞서 전형적인 윈도우폼과 관련된 용어를 정리할 필요가 있습니다.위의 그림은 비주얼스튜디오의 모습으로 전형적인 사각 형태의 윈도우 폼 응용입니다. 창(Window) 상단은 제목줄(Title bar) 또는 캡션바(Caption bar)로 불리며 마우스로 드래그하여 창이동에 쓰이기도 하고 더블클릭하여 창을 최대화하거나 최대화 상태에서 원래 크기로 복귀할 수도 있습니다. 제목줄 우측에 있는 최소화, 최대화, 닫기 버튼이 있는 곳을 컨트롤 박스(Control Box)라 합니다. 테두리는 단순히 창의 경계선 역할에서 끝나지 않고 경계선의 종류에 따라 창의 크기를 변경하는데 사용되기도 합니다. 창 속성에서 컨트롤 박스를 보일지 여부와 경계선의 ..
닷넷 환경에서 3D 모델을 표현하려고 자료를 찾다보니 의외로 공부해야 될것이 많았습니다. C#으로 3D 모델을 출력하기 위하여 공부하거나 자료를 찾아야 할 것을 정리해 보면 아래와 같습니다.3D 모델링 도구 *.gif, *.jpg, *.svg등을 모두 2D 그래픽이라 합니다. 평면 위에 다양한 이미지를 표현하는 것입니다. 반면에 3D 모델은 X, Y 좌표에 Z좌표를 추가해서 표현하기 때문에 일반적으로 많이 사용하는 포토샵이나 페인트닷넷, 김프 등으로는 제작할 수 없습니다. 3D 모델을 제작하여 파일로 저장하는 대표적인 도구로는 3DS MAX, Maya, Mudbox등을 들수 있으며 무료로 사용할 수 있는 오픈소스 도구로는 블렌더가 있습니다(3D 모델링 도구 블렌더 설치하기참조) 이러한 3D 모델링 도구를..
데이터베이스를 사용하는 프로그램을 개발하는 경우 대부분은 특정 데이터베이스를 선택하여 사용합니다. C# 닷넷 기반으로 개발하는 경우 해당 데이터베이스 연관 라이브러리를 참조로 추가하여 간편하게 프로그램을 작성하면 됩니다. 닷넷 프레임워크에서 SQL Server DBMS를 사용하는 경우에는 두 제품 모두 마이크로소프트에서 만든 것으로 쉽게 프로그램을 작성할 수 있는 것은 닷넷 환경에서는 어찌 보면 당연한 현실이 아닌가 싶습니다. 그런데, 오라클이나 MySQL과 같은 다른 데이터베이스를 사용한다고 해서 사용법이 크게 달라지는 것은 아닙니다. 다른 데이터베이스를 사용하는 경우에는 이름만 약간 달라질 뿐이지 사용 형태는 SQL Server를 사용하는 경우와 매우 유사합니다. 예를 들어 SQL Server에서 D..
OOP는 Object-Oriented Programming(객체 지향 프로그래밍)의 약자로 현재 프로그래머 들이 즐겨사용하는 대부분의 프로그래밍 언어에는 OOP개념이 포함되어 있습니다. VB .Net 또한 OOP 시각으로 프로그램을 만들어 가는 것이 효과적이며 VB 언어에 가장 적절한 프로그래밍 방법입니다. 초기의 프로그래밍 언어가 프로그램을 데이터와 처리 방법으로 나누는 절차적(procedural) 프로그래밍이었다면 GUI(Graphic User Interface) 기반의 사용자 환경과 수많은 이벤트에 대응해야하는 비절차적 환경에 적절한 OOP는 프로그램을 여러 객체로 나누고 이들 객체 간의 상호 작용을 기술하는 방식으로 프로그래밍합니다. 절차적 프로그래밍 언어로는 C, FORTRAN, COBOL을 들..
VB .Net을 움직여주는 핵심 프로그램인 비주얼스튜디오에서 제공하는 다양한 도구가 있는데, 특정 시점에 용도에 따라 사용하지만 기본적인 역할과 사용법, 그리고 각 도구가 실제로 보여지는 창을 다루는 방법을 알아두면 매우 유용합니다.각 도구는 메뉴나 툴바를 통해서 보여지기도 하고 뒤로 숨겨지기도 하며, 한쪽 구석에 탭 형태로 살짝 노출되어 있기도 합니다. 물론 아래 쪽이나 좌우로 배열해서 사용하는 것이 일반적이기도 합니다. 이런 창 관리는 각 창을 클릭한 상태로 움직이는 방식으로 움직이고 최종 위치에 갖다 놓는 방식(Drag & Drop)으로 할 수 있고 Window 메뉴에서 구체적인 처리를 할 수 있습니다. 창을 Float 상태로 만든다는 의미는 개별적인 도구 창을 독립적인 다이얼로그 창으로 보여지게 ..
컴퓨터 프로그램의 생성부터 실제 실행까지의 과정을 이해하는 것은 프로그래밍 세계의 기본기를 다져가며 성장할 수 있는 아주 중요한 단계입니다. 지금 다루고 있는 주제는 Visual Basic이지만 프로그래밍 언어는 CPU(중앙처리장치로 스마트폰등에 많이 사용하는 ARM부터 MIPS, PowerPC, 인텔 Atom, Celeron, Pentium등 다양한 CPU들이 존재합니다)가 이해할 수 있는 기계어(Machine Language)로 만들어지기 위한 첫번째 단계입니다. 복잡한 회로로 이루어진 CPU가 알아들을 수 있는 언어를 만든다니 쉽게 이해 할 수 없지만 아무튼 사람이 원하는 대로 기계를 동작키 위한 첫 단계가 비주얼 베이직과 같은 프로그래밍 언어입니다. VB외에도 C언어, Python, C#, Jav..
Visual Basic과 Visual Basic.Net은 다른 것일까? 결론부터 말하면 다른 언어라고 할 수 있습니다. 비주얼베이직이 1991년 VB 1.0으로 발표되던 시점으로 돌아가 보면 한창 인기 운영체제로 사용하던 MS-DOS 체계에서 1990년 Windows 3.0과 후속으로 Windows 3.1이 발표 되고 인기를 얻으면서 GUI 기반의 응용 프로그램을 복잡하고 힘들게 만들었다면 VB 1.0은 프로그래머에게 윈도우 프로그램을 쉽게 제작할 수 있는 기회를 제공하였습니다. 이후에 VBX(Visual Basic eXtension)를 통해서 VB에 다양성과 확장성을 부여하게 되었고 VB 3.0에서는 DAO(Data Access Objects)를 통해 데이터베이스에 접근할 수 있도록 하면서 단순하고 소..