반응형

프로그래밍 기술 604

[리눅스/유닉스 시스템 프로그래밍] 리눅스

1.1 리눅스 리눅스는 핀란드 대학생이었던 리누즈 토발즈가 1991년 개발한 운영체제입니다. 이후 리눅스는 GNU 프로젝트로 유지 보수 및 발전하였고 GCN/Linux로도 부릅니다. 특히 레드햇, 페도라, 우분투 등의 배포판들이 생기면서 시스템 프로그래머를 꿈꾸는 이들 뿐만 아니라 일반 사용자들까지 대중적으로 사용하고 있습니다. 최근에는 IBM이나 구글, 선, 오라클 등의 많은 IT 업체들의 지원을 받아 비약적으로 발전하고 있습니다. 리눅스는 유닉스 운영체제를 연구하기 위한 목적으로 만들었습니다. 이러한 이유로 리눅스의 커널은 유닉스의 복사본이라고도 부릅니다. 리눅스를 GNU 프로젝트로 포함하면서 아파치, MySQL, PHP를 넘어서는 GNU의 대표 프로젝트로 자리잡았습니다. 리눅스 운영체제는 명령행 인..

[리눅스/유닉스 시스템 프로그래밍] 들어가기에 앞서

1. 들어가기에 앞서 리눅스(Linux)는 "Lnux Is Not UniX."라는 의미의 운영체제입니다. 리눅스가 유닉스가 아니라고 이름을 부여한 이유는 유닉스와 매우 흡사한 운영체제이지만 상업적인 목적이 아닌 정보 공유 목적으로 만든 GNU의 대표적인 프로젝트입니다. 시스템 프로그래머를 꿈꾸는 이들에게 운영체제와 운영체제에서 제공하는 시스템 호출 및 자료구조를 이해하는 것은 필수적입니다. 리눅스는 이러한 이들에게 무료로 제공하며 전체 소스 코드를 볼 수 있어 시스템을 분석하고 학습하는데 최적인 운영체제입니다. 운영체제는 컴퓨터 시스템을 구성하는 H/W와 S/W를 운영하는 소프트웨어입니다. 대표적인 운영체제에는 유닉스, 윈도우즈, 리눅스 등의 Non RTOS(Real Time OS)와 VxWorks나 p..

TreeView 실습 [Windows Forms 응용 프로그램]

2.5 실습: TreeView 이번에는 계층적으로 자료를 표시할 수 있는 TreeView 사용법을 알아봅시다. MSDN: TreeView 이번 실습에서는 트리 뷰의 부모의 첫번째 자식, 마지막 자식으로 노드를 추가하는 방법과 선택한 노드의 이전, 이후로 추가하는 방법, 노드를 삭제하는 방법 및 트리의 항목을 펼치거나 축소하는 방법 등을 알아볼게요. [그림 2.11] 실행화면 및 컨트롤 배치 using System; using System.Windows.Forms; namespace Ex_TreeView { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void tv_demo_AfterSelect(o..

ListView 실습 [Windows Forms 응용 프로그램]

2.4 실습: ListView 이번에는 ListView 사용 방법을 알아봅시다. 앞으로 다양한 컨트롤들의 사용 방법을 알아보지만 각각의 컨트롤의 사용법은 매우 다양하기 때문에 모든 것을 다룰 수는 없습니다. 실제 여러분들도 모든 컨트롤의 모든 기능을 익혀야 하는 것도 아닙니다. 필요하면 원하는 컨트롤을 찾고 이를 사용하는 방법을 익힐 수 있게 노하우를 쌓는 것이 중요합니다. 보다 자세한 사항은 MSDN 사이트를 참고하세요.(MSDN의 ListView) ListView 컨트롤은 컬럼을 지정하여 ListView의 스키마를 정의할 수 있습니다. 그리고 서브 아이템들로 구성한 ListViewItem 개체를 항목에 추가할 수 있습니다. 여기에서는 회원의 ID, 이름, 나이로 구성한 ListView를 디자인 한 후..

ComboBox, ListBox, CheckListBox 실습 [Windows Forms 실습]

2. 3 실습: ComboBox, ListBox, CheckListBox 이번에는 ComboBox, ListBox, CheckListBox 컨트롤의 사용법을 알아봅시다. 이들 컨트롤은 Items 컬렉션 속성을 갖고 있어 요소 개체를 보관하고 이들의 정보를 화면에 표시하는 역할을 수행합니다. 우리는 이들 컨트롤에 요소를 추가하거나 삭제할 수 있고 선택 항목을 변경하였을 때 이에 관한 이벤트 처리를 하는 방법을 살펴볼 것입니다. 그리고 프로그램 방식으로 전체 요소의 개수를 알아내고 선택 항목이 무엇인지 확인하는 작업을 수행할 것입니다. 특히 CheckListBox 컨트롤은 요소 항목이 Checked 상태인지 여부도 확인할 수 있습니다. [그림 2.5] 실행화면 콤보 박스는 텍스트 박스처럼 입력도 할 수 있습..

CheckBox와 RadioButton 사용 실습 [Windows Forms 응용 프로그램]

2. 2 실습: CheckBox와 RadioButton 사용 CheckBox와 RadioButton도 Button 컨트롤 만큼 자주 사용하는 컨트롤입니다. 두 개의 컨트롤은 모두 체크 상태를 속성으로 갖는 컨트롤입니다. 특히 RadioButton은 여러 개의 항목 중에 하나의 항목만 체크 상태를 갖을 수 있는 특징을 갖고 있습니다. CheckBox와 RadioButton 컨트롤을 사용할 때 프로그램 방식으로 상태를 변경할 수도 있어야 하며 현재 체크 상태를 파악할 수 있어야 할 것입니다. 또한 사용자에 의해 체크 상태가 바뀌는 시점도 알 수 있어야 합니다. 이번에 실습에서 만들 프로젝트에는 자동차, 집의 소유 유무를 설정할 CheckBox 컨트롤과 성별과 혈액형을 설정할 수 있는 RadioButton으로..

2. 공용 컨트롤 , 동적으로 버튼 생성 [Windows Forms 응용 프로그램]

2. 공용 컨트롤 이번 장에서는 Windows Forms 응용 프로그램을 만들 때 기본적으로 사용하는 공용 컨트롤들을 사용하는 방법을 다루기로 할게요. [그림 2.01] 도구 상자의 공용 컨트롤 2. 1 실습: 동적으로 버튼 생성 버튼은 사용자의 명령을 받아 특정 기능을 수행할 때 사용하는 컨트롤입니다. 실습을 통해 버튼 사용법을 알아 봅시다. [그림 2.02] 실행화면 실습할 프로그램은 동적으로 버튼을 추가하며 각 버튼을 클릭했을 때의 클릭 수를 화면에 표시하는 프로그램입니다. 폼의 상단에는 동적으로 생성한 버튼 개수를 표시하는 부분과 동적 버튼을 추가하기 위한 버튼이 있습니다. 그리고 동적으로 생성한 버튼과 Label을 배치할 FlowLayoutPanel이 있습니다. 또한 FlowLayoutPanel..

1. Form [Windows Forms 응용 프로그램]

1.Form Form 클래스는 Windows Forms 응용 프로그램의 UI(사용자 인터페이스)를 구성하는 창과 대화상자를 나타내는 클래스입니다. Form 클래스는 Windows Forms 응용 프로그램의 기본 단위로 GUI(Graphics User Interface) 환경에서 사용자와 상호 작용하기 위한 다양한 UI 컨트롤을 포함하여 쉽고 빠르게 개발할 수 있게 만들어졌습니다. 상속 계층System.Object System.MarshalByRefObject System.ComponentModel.Component System.Windows.Forms.Control System.Windows.Forms.ScrollableControl System.Windows.Forms.ContainerControl S..

26. 방문자 패턴(Visitor Pattern) [Escort GoF의 디자인 패턴]

26. 방문자 패턴(Visitor Pattern) 26.1 개요 프로그래밍하다 보면 여러 구성 요소로 구성된 개체를 정의해야 하는 경우는 매우 흔한 일입니다. 그리고 특정 명령을 수행함에 있어 내부 구성 요소 개체들의 형식에 따라 적용해야 할 구체적 행위가 다른 경우가 있습니다. 이 경우에 방문자 패턴을 사용하면 개체들의 형식에 따라 적용해야 할 구체적 행위를 분리하여 정의할 수 있습니다. 이는 새로운 행위를 정의할 필요가 생길 경우에도 구성 요소 형식을 변경하지 않으면서 추가할 수 있게 됩니다. 방문자 패턴에서는 개체를 구성하는 여러 요소 개체들에게 요소의 형식에 따라 수행할 구체적 작업을 방문자에 정의하게 됩니다. 대신 요소의 형식에서는 방문자를 수용하는 메서드를 제공하고 방문자를 통해 자신을 제어하..

25. 템플릿 메서드 패턴(Template Method Pattern) [Escort GoF의 디자인 패턴]

25. 템플릿 메서드 패턴(Template Method Pattern) 25.1 개요 템플릿 메서드 패턴은 특정 연산을 수행하는 단계별로 수행해야 할 행위에 대한 약속을 기반 클래스에서 정의하고 각 단계별로 수행하는 구체적 구현은 파생 클래스에서 재정의하는 형태의 패턴입니다. 비슷한 형태의 프로그램을 작성에 필요한 뼈대를 일반화하여 제공하는 것은 실무에서 자주 사용하는 기법입니다. 일반화 과정을 통해 작성된 뼈대가 마련되어 있다면 실제 프로그래밍할 때에는 이를 기반으로 세부적인 기능만 재정의를 하여 효과적으로 프로그래밍할 수 있습니다. 그리고 설계 단계에서 뼈대에 대한 부분을 고민하지 않아도 되어 비용을 줄일 수 있고 기술 노하우를 축적할 수 있게 해 줍니다. 이를 위해서 템플릿 메서드 패턴에서는 특정 ..

반응형