윈도우 폼으로 화면 기반의 프로그램을 작성하면 System.Windows.Forms 클래스를 상속받아 클래스를 작성하게 됩니다. Forms 클래스의 연관 속성과 메서드, 이벤트는 MSDN 페이지에서 자세하게 확인할 수 있습니다. 페이지의 링크는 https://msdn.microsoft.com/ko-kr/library/system.windows.forms.form(v=vs.100).aspx입니다. 아래의 그림은 Forms 클래스의 속성과 메서드, 이벤트를 마인드맵으로 나타낸 것입니다. 속성을 적절하게 설정하여 제목, 창의 위치나 크기등을 조정하고 메서드 호출을 통해서 원하는 동작을 지시할 수 있으며 다양한 이벤트에 대응하는 적절한 이벤트 처리 루틴을 기술할 수 있습니다. 닷넷 환경에서 VB 또는 C#으로 ..
윈도우 폼(Windows Forms) 응용 프로그램을 본격적으로 다루기에 앞서 전형적인 윈도우폼과 관련된 용어를 정리할 필요가 있습니다.위의 그림은 비주얼스튜디오의 모습으로 전형적인 사각 형태의 윈도우 폼 응용입니다. 창(Window) 상단은 제목줄(Title bar) 또는 캡션바(Caption bar)로 불리며 마우스로 드래그하여 창이동에 쓰이기도 하고 더블클릭하여 창을 최대화하거나 최대화 상태에서 원래 크기로 복귀할 수도 있습니다. 제목줄 우측에 있는 최소화, 최대화, 닫기 버튼이 있는 곳을 컨트롤 박스(Control Box)라 합니다. 테두리는 단순히 창의 경계선 역할에서 끝나지 않고 경계선의 종류에 따라 창의 크기를 변경하는데 사용되기도 합니다. 창 속성에서 컨트롤 박스를 보일지 여부와 경계선의 ..
PHP 프로그램을 개발하다보면 실행 환경이 달라짐에 따라 이전 환경에서는 발생하지 않던 오류 메시지가 나타나거나 정상 동작하지 않는 경우가 있습니다. 통상 PHP실행 환경 파일을 수정한 다음 웹서버를 재가동시키는 것이 일반적인 대처 방법이고, 버전 관련 문제라면 연관 코드를 수정할지 면밀히 검토해야 합니다. 그렇지만, 웹서버 설정을 손대기 어렵거나, 환경 설정 변경이 다른 응용에 미칠 영향이 불투명하다면 프로그램에서 오류메시지 출력에 관한 설정을 실행 과정에 조정할 수 있습니다.error_reporting(0);위의 코드를 삽입하면 이후로는 모든 메시지를 출력하지 않습니다. 실제로 중요한 오류 메시지가 출력되어야 한다면 위험한 설정일 수는 있습니다.error_reporting(E_ALL & ~E_NOTI..
닷넷 환경에서 3D 모델을 표현하려고 자료를 찾다보니 의외로 공부해야 될것이 많았습니다. C#으로 3D 모델을 출력하기 위하여 공부하거나 자료를 찾아야 할 것을 정리해 보면 아래와 같습니다.3D 모델링 도구 *.gif, *.jpg, *.svg등을 모두 2D 그래픽이라 합니다. 평면 위에 다양한 이미지를 표현하는 것입니다. 반면에 3D 모델은 X, Y 좌표에 Z좌표를 추가해서 표현하기 때문에 일반적으로 많이 사용하는 포토샵이나 페인트닷넷, 김프 등으로는 제작할 수 없습니다. 3D 모델을 제작하여 파일로 저장하는 대표적인 도구로는 3DS MAX, Maya, Mudbox등을 들수 있으며 무료로 사용할 수 있는 오픈소스 도구로는 블렌더가 있습니다(3D 모델링 도구 블렌더 설치하기참조) 이러한 3D 모델링 도구를..
통합 개발 환경(IDE)은 일반적으로 프로그램과 연관되는 소스 코드 편집, 컴파일 및 빌드, 실행, 디버그 과정을 하나의 도구에 통합시킨 것으로 개발자의 개발 생산성과 효율성에 지대한 영향을 미칩니다. 그래서 많은 개발자는 프로젝트를 진행하기 이전에 어떤 통합 개발 환경으로 개발할지를 선택하여 팀웍을 이루어 나갑니다. 파이썬도 예외가 아니어서 통합 개발 환경의 사용 유무는 효과적인 분석과 개발 생산성에 많은 영향을 미칩니다. 파이썬(Python) 실행 환경 준비하기에서 설치한 CPython에는 아래의 그림과 같은 IDLE라는 기본적인 GUI 개발 환경이 포함되어 있습니다. 위의 그림에서 보듯이 IDLE은 기본적인 편집 기능과 함께 자동 완성등 개발자의 편의를 위한 장치를 갖추고 있습니다. 게다가 디버깅 ..
파이썬(Python)은 소스 코드를 컴파일한 다음 실행하는 컴파일러(Compiler) 언어가 아니고 실행 시점에 코드를 읽어 처리하는 인터프리터(Interpreter) 언어입니다. 객체지향 프로그래밍 언어이며 자료형 검사를 실행 과정에서 수행하는 동적 타이핑(dynamic typing)을 채용하고 있습니다. 동적 타이핑을 채용하고 있는 프로그래밍 언어는 PHP, Ruby를 비롯하여 자바 스크립트, 펄(Perl) 스크립트등을 예로 들수 있습니다. C/C++과 같은 컴파일러 언어는 빌드 과정을 통해서 실행 프로그램을 산출하지만 파이썬은 소스 코드를 인터프리터가 읽어서 직접 처리하기 때문에 윈도우, 리눅스, 맥등 각 플랫폼별 인터프리터만 있으면 파이썬 프로그램은 어느 곳에서나 간편하게 실행할 수 있습니다. 파..
자바(Java) 언어는 객체지향형 프로그래밍 언어로 문법의 많은 부분을 C/C++에서 가져왔기 때문에 C/C++에 익숙한 개발자라면 어렵지 않게 익힐수 있는 언어입니다. 자바 컴파일러로 컴파일한 응용 프로그램은 특정 CPU를 목적으로하는 코드가 아니라 바이트 코드라 불리는 중간 언어로 만들어지고 바이트 코드 형태로 만들어진 자바 응용은 각 운영체제/CPU별 JVM(Java Virtual Machine, 자바 가상 머신)에 의해 실행됩니다. 개발자는 어떤 플랫폼에서든지 한번만 컴파일하면 동일한 바이트 코드를 윈도우에서도 리눅스나 맥에서도 별도의 변경이나 변형 없이 실행시킬 수 있는 것입니다. 닷넷 프레임워크와 비교한다면 C#.Net, VB.Net, C++/CLI 등으로 작성한 프로그램은 CPU별 목적 코드..
포토샵이나 페인트닷넷과 같은 이미지 편집툴을 사용해본 사용자라면 레이어의 편리함과 유용성에 대해서 더이상의 설명이 필요없겠지만 레이어를 아직 경험하지 못한 사용자를 위하여 간단한 설명을 드리자면 투명한 셀로판지에 그린 여러장의 그림을 레이어에 비유하면 딱입니다. 각각의 셀로판지에는 다른 셀로판지의 그림과 관계없이 자유롭게 그림을 그릴 수 있지만 여러 셀로판지를 겹쳐서 하나의 그림을 만들어 내는 것처럼 하나의 이미지 파일에 여러 레이어를 두어 편집의 편리함과 유용성을 얻을 수 있고 이미지 파일의 재사용성을 극대화할 수 있는 장점이 있습니다. 단순한 그림이라면 C#에서 굳이 레이어를 고민할 필요없이 이미지 편집툴에서 레이어로 편집하여 C#에서는 결과물만 사용하면 됩니다. 그런데 각 레이어 별로 별도의 변형이..
C#에서 이미지를 겹쳐서 보이게 할때 위에 있는 이미지와 아래에 있는 이미지가 자연스럽게 겹쳐서 보이게 하려면 위의 있는 이미지의 배경을 투명하게 제작할 필요성이 있습니다. 배경이 투명한 이미지 만들기는 페인트닷넷으로 투명한 배경의 이미지 만들기를 참조하세요. *.PNG, *.GIF등의 투명한 배경을 지원하는 이미지 파일을 제작했다면 아래의 그림과 같이 프로젝트의 리소스 파일에 이미지를 추가합니다. 예제의 코딩 의도는 계기판을 구현하는 것으로 계기판 바탕 이미지 위에 바늘 이미지를 올리고 입력된 각도에 따라 바늘을 회전시켜 보이는 것입니다. ■ 투명 배경의 이미지 겹치기 두개의 이미지를 모두 도구상자의 PictureBox 컨트롤을 통해서 각각 생성하고 프로젝트 리소스 파일에 등록해 두었던 이미지를 등록합..
프로그래밍은 본질적으로 코딩이라기 보다는 문제해결입니다. 요즘의 응용 프로그램들은 네트웍과 데이터베이스를 기본적으로 다루기 때문에 이런 시스템 자원에 대한 간단한 점검 요령을 갖추고 있는 것은 어찌보면 프로그래머의 기본 자질이라 할 수도 있겠다 싶습니다. 이번 포스팅에서는 윈도우 시스템에서 네트웍을 점검하는 몇가지 요령에 대해서 살펴 볼까 합니다. ■ 윈도우 콘솔창윈도우+R키로 아래와 같은 실행창을 열고 cmd를 입력하여 윈도우 콘솔창을 열수 있습니다. 윈도우 콘솔창이 예전 도스창 처럼 보이기는 하지만 도스 운영체제와는 관계 없고 텍스트만을 입출력하는 콘솔 응용프로그램을 간편하게 실행시켜 결과를 확인할 수 있는 프로그램으로 이해하면 되겠습니다. 네트웍 점검을 위한 대부분의 기능들은 텍스트로 결과를 보여주..
C# 프로그래밍 과정에서 고객의 요청 때문에 PDF 파일을 만드는 경우도 있지만 프로그램 자체에 PDF 생성 기능이 있으면 여러모로 활용도가 넓어질 수 있습니다. 가장 큰 장점은 보고서 인쇄를 대치할 수 있다는 것입니다. SAP이 배포하고 있는 크리스탈 리포트(Crystal Reports)를 사용하여 보고서 인쇄 기능을 개발할 수도 있지만 필자의 경우에는 SAP이 개발자용 자료를 그냥 다운로드 시켜주지도 않고(복잡한 등록 양식을 요구함) 배포 시점에 SAP의 패키지를 추가로 배포해야하는 부담이 귀찮은 것도 있었지만 생성된 보고서 파일을 부가적으로 활용할 수 있도록 해줌과 동시에 PDF 자체의 인쇄 조절 기능등을 활용할 수 있다는 장점을 보고 PDF를 통한 보고서 출력을 시도하게 되었습니다. PDF 생성을..
다국어 기반으로 응용 프로그램을 작성하는 경우 아래의 그림과 같이 "키=내용"으로 단순 구성된 각 언어별 파일을 만드는 방식을 많이 사용하게 됩니다. 이런 다국어 기반의 응용을 지속적으로 버전업 하다 보면 대부분 영어 번역이나 한글 번역등 중심이 되는 기본 언어 파일에는 내용을 추가하거나 변경하지만 다른 언어에 대해서는 추가 및 업데이트를 소홀하게 되는 경우가 많습니다. 특히 커뮤니티의 기여를 통해서 번역을 확장해 가는 오픈 소스 프로젝트의 경우에는 더더욱 이런 현상이 비일비재한 것이 사실입니다. 프로그램은 새로운 버전이 릴리즈 되었는데 정작 번역 파일은 따라가지 못하다보니 듬성 듬성 번역되지 않은 것 때문에 프로그램이 불완전하게 보이기도 합니다. 이런 상황을 보완하기 위해서 기본 언어와 번역 대상을 하..
C# 에서는 System.Math를 통해서 다양한 수학 함수를 제공하고 있습니다. 그중에서도 자주 사용하는 반올림 연관 함수를 정리해 놓습니다. 기본적인 사용 형태는 다음과 같습니다.반올림 Math.Round(값) Math.Round(값, 소숫점)올림 Math.Ceiling(값)버림 Math.Truncate(값)올림이나 버림의 경우에는 값의 정수부분 만을 결과로 돌려주지만 반올림의 경우에는 소숫점을 지정하지 않는 경우에는 정수 값을 리턴하지만 소숫점을 지정하는 경우 해당 소숫점을 기준으로 반올림한 부동소숫점 값을 돌려줍니다. 숫자를 문자열로 변환하는 format 함수에서도 숫자 형식을 벗어난 소숫점을 반올림 처리하는데 올림이나 내림 처리를 하고 싶을 경우에는 반올림을 감안해서 해당 소숫점의 절반 값을 더..
프로그램 개발을 시작하면서 어떤 프로그램을 어떻게 만들것인지를 결정하는 기획 및 설계 단계도 중요하겠지만 잘 드러나지 않는 매우 중요한 성공 요소는 프로그램 개발을 위한 도구의 선정에 있습니다. 개발 조직이 사용하는 도구가 표준화되어 있어 오랜 기간 지속적인 사용으로 이미 익숙한 상태라면 별도의 논의가 필요없을 수도 있지만 이런 조직의 경우에도 프로젝트 시작 이전에 코딩 스타일 표준화를 위한 도구 설정법과 생산성있는 작업을 위한 Tech Tip 나눔의 시간을 가질 필요성이 있습니다. 또한, 도구는 지속적으로 발전하고 있으므로 주기적으로 도구 사용에 관련한 토론의 시간을 가지고 내부 위키 저장소나 KMS(Knowledge Management System)에 관련 내용을 정리해 놓아서 팀원들이 수시로 관련 ..
프로그래밍을 C언어로 시작하는 분들은 한편으로는 가장 핵심적이면서도 기반 기술이 되는 프로그래밍 언어를 배운다는 장점이 있는 반면 "개발자를 위한 프로그래밍 언어"라는 별명에서 유추할 수 있는 것과 같이 컴퓨터 시스템에 대한 배경 지식을 가지고 있는 "개발자"가 아니라면 재미없고 복잡한 마치 "암호"와 같은 언어가 될지도 모르겠습니다. C언어를 처음으로 접한지 어언 20여년이 지나가고 있는 세월이지만 그 때나 지금이나 C언어는 "단순함"과 "자유로움", 그리고 무한한 "확장성"을 두고 개발자를 위한 프로그래밍 언어라 하지 않았나 생각합니다. C언어를 비롯해서 파이썬(Python), Java, C++, C#, Visual Basic등을 비롯한 프로그래밍 언어와 PHP, ASP, JSP, JavaScript..
비주얼스튜디오를 사용하여 화면을 작성하거나 데이터베이스를 다루면서 자주 접하는 창이 있다면 도구 상자(Toolbox) 입니다. 시스템에서 미리 준비한 다양한 컨트롤을 끌어다놓기(Drag & Drop)으로 사용자 화면에 추가하고 해당 컨트롤의 몇가지 속성만 설정하면 간편하게 관련 기능을 사용할 수 있는 방식입니다. 도구 상자의 구성을 살펴보면 공용 컨트롤, 컨테이너, 메뉴 및 도구 모음, 데이터, 구성요소, 인쇄, 대화 상자, WPF 상호 운용성, 보고, VB PowerPacks 등 비주얼스튜디오에서 C#으로 기능을 만들어가는데 필요한 대부분의 것이 잘 준비되어 있으므로 개발자 입장에서는 자신이 구현하려는 기능에 적절한 요소를 잘 찾아서 배치하고 설정하는 것만으로도 프로그래밍을 수행할 수 있는 환경입니다...
C# 프로그램을 개발하다보면 계산 결과를 윈도우 폼의 레이블이나 편집창에 표시하거나 콘솔 모드에서 화면에 출력하는 것으로 기능 수행을 끝내게 되는 것이 보통입니다. C#에서는 변수명.ToString()으로 간단하게 문자열로 변환해서 출력할 수 있지만 소수점이나 폭맞춤등의 필요에 따라 사용자가 원하는 형식으로 변환해야만 하는 경우가 생기는데 이런 경우를 위한 형식 지정 방법을 다룹니다. decimal value = 1234.567m; Console.WriteLine("Default : " + value.ToString()); Console.WriteLine("Basic format : " + value.ToString("C2")); Console.WriteLine("Multi format {0:C2}", ..
요즘 컴퓨터를 배우는 학생들을 보면 컴퓨터를 처음 만지는 순간부터 마우스를 붙잡고 화면 창을 통해서 클릭, 더블클릭, 끌어다놓기로 왠만한 작업을 하다보니 프로그래밍을 배우고는 있지만 텍스트만 표시되는 콘솔 창에서의 작업은 뭔가 친하지 않은 느낌을 받는 모양입니다. PC, 스마트폰과 태블릿까지 온통 GUI(Graphic User Interface) 기반이다 보니 요즘 컴퓨터를 배우는 사람에게 텍스트 기반으로 콘솔 환경이 익숙치 않음은 당연한 현실이 아닌가 싶기도 합니다.그렇지만, 프로그래밍을 본격적으로 배우고 다양한 프로그래밍 언어를 만나다 보면 콘솔 환경에서 작업하는 것에 대한 기본적인 이해는 필수입니다. 대부분 컴퓨터 시스템의 핵심 기능은 GUI 기반이 아니라 텍스트 기반이기 때문입니다. 물론 콘솔 환..
데이터베이스를 사용하는 프로그램을 개발하는 경우 대부분은 특정 데이터베이스를 선택하여 사용합니다. C# 닷넷 기반으로 개발하는 경우 해당 데이터베이스 연관 라이브러리를 참조로 추가하여 간편하게 프로그램을 작성하면 됩니다. 닷넷 프레임워크에서 SQL Server DBMS를 사용하는 경우에는 두 제품 모두 마이크로소프트에서 만든 것으로 쉽게 프로그램을 작성할 수 있는 것은 닷넷 환경에서는 어찌 보면 당연한 현실이 아닌가 싶습니다. 그런데, 오라클이나 MySQL과 같은 다른 데이터베이스를 사용한다고 해서 사용법이 크게 달라지는 것은 아닙니다. 다른 데이터베이스를 사용하는 경우에는 이름만 약간 달라질 뿐이지 사용 형태는 SQL Server를 사용하는 경우와 매우 유사합니다. 예를 들어 SQL Server에서 D..
C# 코딩을 하다보면 구조체나 클래스나 뭔 차이가 있나 싶긴 하지만 몇개의 항목을 가진 간단한 데이터를 구조화해서 다룰경우에는 클래스보다는 struct문을 사용하는 구조체가 적절합니다. 예를 들면 RGB색 정보를 가진 구조체, X, Y 위치를 저장하는 구조체 top, bottom, width, depth의 창 정보를 가진 개체를 구조체로 구현할 수 있을 것입니다. public struct SysInfo { public bool dbstat, netstat; public SysInfo(bool db, bool net) { dbstat = db; netstat = net; } } 구조체는 클래스 처럼 new 생성자로 값을 설정하면서 선언할 수도 있고, 일반 변수처럼 그냥 정의하고 개별 변수에 대해서 직접 초..
다중 쓰레드를 사용하는 프로그램에서 특정 자원이나 특정 코드에 대해서 동시 접근을 차단하고 한번에 하나의 쓰레드만 수행하도록 교통 정리할 필요가 있을 때 사용하는 자원이 뮤텍스(Mutex)입니다. 대표적인 IPC(Inter Process Communication) 자원으로 공유메모리, 메시지 큐와 함께 세마포어(Semaphore)가 있는데 뮤텍스는 값이 1인 세마포어라고도 할 수 있습니다. 세마포어는 통상 정수값을 가지고 프로세스가 접근할 수 있는 여유도를 지정한다면 뮤텍스는 값이 1이므로 한번에 단 하나의 프로세스나 쓰레드만 접근할 수 있도록 할 수 있는 것입니다. 뮤텍스는 프로그램 중복 실행 방지 보다는 실행중 자원 관리에 사용하는 것이 핵심 용도이지만 프로그램 중복 실행 방지를 통해서 뮤텍스 맛보기..
OOP는 Object-Oriented Programming(객체 지향 프로그래밍)의 약자로 현재 프로그래머 들이 즐겨사용하는 대부분의 프로그래밍 언어에는 OOP개념이 포함되어 있습니다. VB .Net 또한 OOP 시각으로 프로그램을 만들어 가는 것이 효과적이며 VB 언어에 가장 적절한 프로그래밍 방법입니다. 초기의 프로그래밍 언어가 프로그램을 데이터와 처리 방법으로 나누는 절차적(procedural) 프로그래밍이었다면 GUI(Graphic User Interface) 기반의 사용자 환경과 수많은 이벤트에 대응해야하는 비절차적 환경에 적절한 OOP는 프로그램을 여러 객체로 나누고 이들 객체 간의 상호 작용을 기술하는 방식으로 프로그래밍합니다. 절차적 프로그래밍 언어로는 C, FORTRAN, COBOL을 들..
좋은 품질 또는 안정성 있는 프로그램이란 다양한 사용자에 의해서 발생하는 다양한 상황에서도 예상할 수 있는 결과를 내는 프로그램입니다. 프로그래머가 생각하고 준비한 범위에서는 잘 동작하지만 그 이외의 경우에는 결과를 예상할 수 없는 프로그램을 좋은 프로그램이라 할 수 없습니다. 중요하게 기억해야할 점은 "완벽함"이 아니라 "예측 가능함"입니다. 철저한 프로그램 설계와 꼼꼼한 코딩으로 모든 경우의 수를 대비한 프로그램을 작성한다면 더욱 좋겠지만 이런 과정은 기간, 인원등 자원의 투입을 수반하게 되어 있고 코드의 크기와 비용이 커짐과 동시에 버그의 출현 가능성도 높아지게 마련입니다. 이러한 "예측 가능성"을 높여주는 대비책이 바로 실행중 예외 처리입니다. 비주얼베이직의 예외 처리 방법은 이전 버전 부터 사용..
지난번 포스팅에서 오픈 소스 사이트에서 아주 고전적인 Turbo-C 2.0을 다운로드할 수 있으며(http://sourceforge.net/projects/borlandtubroc/files/Borland%20Software/) 더 간단하게는 TCC - Tiny C Compiler(http://bellard.org/tcc/)를 활용할 수 있음을 말씀드렸습니다. 이번 포스팅에서는 소스코드를 작성하기에 유용한 jEdit 텍스트 편집기에서 콘솔창을 열어서 간단한 C 프로그램을 직접 컴파일하며 편리하게 학습할 수 있는 방법을 다룰까 합니다. jEdit 편집기에 대해서는 아래의 글들을 참고해 보세요.2015/03/05 | 무료 텍스트 편집기 jEdit 한글판 배포2015/03/03 | BeanShell과 매크로,..
제가 처음 C언어를 공부할때는 터보 C 2.0을 가지고 C언어도 공부하고 심지어 업무에도 사용했던 기억이 있습니다. 도트(dot) 프린터로 연속 용지를 가지고 인쇄하던 시절 터보 C 2.0으로 업무에 활용하여 도넛 그래프를 업무 보고에 사용했던 기억이 새롭습니다. 혹시나 해서 찾아보니 누군가 오픈 소스 프로젝트를 올려놓는 소스포지(sf.net)에 Turbo-C 2.0과 3.0을 올려두었군요. 교육용 목적으로 올려두었다는데 참고할만 합니다. http://sourceforge.net/projects/borlandtubroc/files/Borland%20Software/Turbo-C 2.0을 다운로드 받으셨다면 tc.exe를 실행하시면 아래와 같은 화면을 통해서 최근의 이클립스나 비주얼스튜디오 같으 IDE가 ..
프로그램이 길어지고 복잡해 질수록 연관성 있는 코드를 별도의 묶음으로 분리해 놓으면 프로그램의 가독성이 높아지는 것은 물론이고 해당 코드가 필요한 곳에서는 언제든지 호출하여 사용할 수 있으므로 재사용성을 높이고 오류의 가능성을 최소화하는 효과를 가져올 수 있습니다. 이렇게 특정 기능을 수행하는 단위로 분할하여 묶어 놓는 작업을 모듈화라고 하며 아래의 VB.Net 콘솔 프로젝트의 기본 코드에서도 확인할 수 있지만 모든 프로그램은 하나 이상의 프로시저로 구성된다 할 수 있습니다. Module Module1 Sub Main() End Sub End Module VB.Net은 서브 프로시저와 함수(function) 두가지 형태의 프로시저(Procedure)를 정의해서 사용할 수 있습니다. 서브 프로시저와 함수는..
연산자(Operators)는 식별자와 리터럴 등을 대상으로 연산을 지시하는 문법 요소로 연산 대상의 개수에 따라 연산 대상을 한개만 취하는 단항 연산자(Unary Operator)와 연산 대상으로 2개를 취하는 이항 연산자(Binary Operator)로 나눌 수 있습니다. 단항 연산자에는 +, -, Not 3가지가 있습니다. +, - 단항 연산자는 연산 대상에 +1 또는 -1을 곱한 결과와 같고 Not은 연산 대상의 논리값을 True/False간에 뒤집는 결과를 가져옵니다. 특수한 단항 연산자로 연산 대상의 데이터형을 가져오는 TypeOf 연산자와 연산 대상의 주소를 가져오는 AddressOf 연산자도 있습니다. * 산술 연산자^ : 지수 연산. a^b 는 a를 b제곱한 결과로 2^4는 2*2*2*2의..
앞서 작성한 VB.Net 언어 이해하기에서 VB.Net 언어 구성 요소의 하나로 리터럴을 설명하면서 다양한 데이터 타입을 언급했고 변수 뒤에 특수 문자를 붙여 데이터 타입을 지정하는 방법을 다루었습니다. 데이터 타입 또는 자료형은 특정한 저장 장소에 있는 정보를 어떠한 형태로 인식할 것인가를 다루는 것으로 컴퓨터에 저장되는 정보는 0과 1이라는 디지털 형태로 보관하는 특성상 그 값을 문자로 인식할지 아니면 숫자로 인식할지, 숫자 중에서 정수 인식할지 아니면 실수로 인식할 지에 따라 다양한 해석이 있을 수 있습니다. 다음은 VB.Net의 데이터형을 정리한 것으로 저장소의 크기와 값의 범위를 확인해 둘 필요가 있습니다.Boolean : True , FalseByte : 0~255(1 byte) 메모리의 내용..
흐름 제어(Flow Control)라는 용어는 프로그램의 처리 과정에서 그 흐름(Flow)을 순차적으로 진행시키는 것 뿐만아니라 일정 횟수나 조건을 만족할 동안 반복하거나, 조건에 따라 처리 내용을 바꾸거나, 특정 값에 따라 처리할 내용을 지정하는 것등을 포함합니다. 프로그램의 시작부터 종료까지 그리고 특정 이벤트의 발생시점부터 종료까지 큰 흐름 또는 작은 흐름으로 수행하는 제어들이 모여 하나의 프로그램을 구성하므로 VB를 활용하여 프로그램을 작성하고 싶다면 이 부분에 대해서는 꼭 알아두셔야 합니다. 1. If 조건문If문은 조건에 따라 문장을 처리해야할 때 사용하며 가장 가단한 사용 방법은 아래의 예와 같이 "If 조건 Then 처리문장"의 형식으로 한 줄에 특정 조건을 만족할 때의 처리 문장을 간단하..
앞서 VB.Net 언어 이해하기에서 언급한 것과 같이 문자열은 " " 내부에 유니코드 문자열을 기술한 것이고 데이터 타입의 이름은 String 입니다. 문자열을 표현하는 방법은 워낙 다양해서 이 포스팅을 통해서 언급하기는 어렵고 "인코딩"이란 용어를 만나면 "문자열 표현 방식을 말하는 것이다" 정도로 넘어가셔도 될것 같습니다. 특히 한글 문자열의 경우에는 이전에는 EUC-KR 인코딩을 많이 사용했지만 최근에는 UTF-8(유니코드) 인코딩을 많이 사용하는 추세입니다. "VB에서는 유니코드 인코딩을 사용한다 " 정도만 기억하시면 됩니다. 프로그램을 작성하다 보면 처리의 많은 부분을 문자열(스트링) 처리에 할애하므로 VB 문자열 다루기를 잘 익혀 두시면 프로그래밍을 보다 수월하게 진행하실 수 있습니다. Sub..