반응형

C# 소스 코드 57

[XML.NET] 17. XmlReader 개체로 데이터 분석(요소 읽기)

XmlReader 개체로 데이터 분석(요소 읽기) XmlReader 클래스에서는 요소 읽기 작업에 관한 6가지 메서드와 1가지 속성을 제공하고 있습니다. 먼저 이들의 역할과 원형을 간략히 살펴봅시다. 현재 노드가 시작 요소인지 확인할 때는 IsStartElement 메서드를 사용합니다.public bool IsStartElement ();public bool IsStartElement (string name);public bool IsStartElement (string local_name, string ns); 현재 노드가 시작 요소일 때 요소를 읽기 위해 ReadStartElement 메서드를 제공합니다.public void ReadStartElement ();public void ReadStartE..

[XML.NET] 16. XmlReader 개체로 데이터 분석(노드 형식 알아내기)

XmlReader 개체로 데이터 분석(노드 형식 알아내기) XmlReader 개체는 정방향으로 XML 데이터 소스를 분석하기 위함입니다. 구조화되어 있는 XML 데이터 소스를 정방향으로 읽기 작업을 하여 원하는 프로그램 데이터로 가공하기 위해서는 현재 위치의 노드가 어떠한 형식인지 알 수 있어야 합니다. 그리고 현재 노드 형식에 따라 요소 읽기와 특성 읽기, 값 읽기 등을 할 수 있어야 할 것입니다. 현재 위치의 노드 형식 알아내기 XmlReader 개체는 정방향으로만 읽기 작업할 수 있습니다. 따라서 XmlReader 개체로 Read 메서드를 호출하면 다음 노드로 위치가 변합니다. XML 데이터는 구조적인 데이터이므로 현재 분석한 노드가 무엇인지에 따라 처리를 다르게 해야 할 때가 많습니다. XmlRe..

[C#] 원형 패턴(Prototype Pattern)

4. 원형 패턴(Prototype Pattern) 원형 패턴은 미리 만들어진 개체를 복사하여 개체를 생성하는 패턴을 말합니다. 그리고 이때 미리 만들어진 개체를 원형 개체라 부릅니다. 일반화 관계로 표현할 때 파생 클래스의 개수가 과도히 많아지고 각 클래스의 메서드에서 수행하는 알고리즘에 차이가 없고 생성 시에 개체의 속성값만 다르다면 원형 패턴을 사용하는 것이 효과적입니다. 2016/04/25 - [프로그래밍 기술/Escort GoF의 디자인 패턴 C#] - [C#] 4. 원형 패턴(Prototype Pattern) - 개요, 시나리오 2016/04/25 - [프로그래밍 기술/Escort GoF의 디자인 패턴 C#] - [C#]4. 원형 패턴(Prototype Pattern) - 설계(Design) 2..

[C#] 팩토리 메서드 패턴(Factory Method Pattern)

3. 팩토리 메서드 패턴(Factory Method Pattern) 프로그래밍하다 보면 같은 방법으로 사용할 수 있는 여러 종류의 개체를 일반화하여 기반 클래스를 정의하고 이를 기반으로 파생 클래스로 정의하는 것은 매우 흔합니다. 이 경우에 사용하는 곳에서 구체적으로 어떠한 개체를 생성해서 사용할 지에 대하여 개발 초기 단계에서 결정할 수 없다면 어떻게 하면 좋을까요? 팩토리 메서드 패턴을 이용하면 이러한 고민을 해결할 수 있습니다. 추상 팩토리 클래스에서는 사용할 개체(추상 클래스)를 생성하는 것에 대해 약속만 합니다. 대신 파생 팩토리 클래스에서 구체적으로 어떠한 개체를 생성할 것인지 구현합니다. 이처럼 구체적인 개체를 생성하는 부분을 분리하면 추상 팩토리 클래스에서는 어떠한 개체를 생성할 것인지에 ..

[C#] 빌더 패턴(Builder Pattern)

2. 빌더 패턴(Builder Pattern) 프로그래밍하다 보면 여러 요소로 구성되는 개체가 있습니다. 그리고 이와 같은 개체를 생성하는 방법이 목적에 따라 다양한 경우가 생깁니다. 이 경우에 빌더 패턴은 목적에 따른 개체를 생성하는 과정에 대한 약속과 각 과정에서 수행할 구체적인 알고리즘을 분리하여 개체를 생성하는 패턴입니다. 빌더 패턴에서 빌더는 추상 클래스로 개체를 생성하는 과정들을 약속합니다. 빌더를 기반으로 파생한 클래스에서는 생성 과정들에 대해 구체적으로 구현합니다. 이처럼 정의하면 빌더를 사용하는 곳에서는 서로 다른 구조를 갖는 개체를 같은 방법으로 생성할 수 있습니다. 2016/04/25 - [프로그래밍 기술/Escort GoF의 디자인 패턴 C#] - [C#] 2. 빌더 패턴(Build..

[C#] 추상 팩토리 패턴 (Abstract Factory Pattern)

1. 추상 팩토리 패턴 (Abstract Factory Pattern) 프로그래밍하다 보면 특정 목적에 따라 사용해야 하는 개체들이 서로 호환성이 있어야 하는 경우가 발생합니다. 목적에 따라 사용해야 하는 개체군들이 있을 때 특정 목적에 맞게 호환성 있는 개체가 무엇인지 조사하고 사용하기 위해서 비용이 발생할 수 있습니다. 이럴 때 추상 팩토리 패턴을 사용하면 효과적으로 비용을 줄일 수 있을 것입니다. 특히, 비슷한 작업을 위해 필요한 개체들 사이에 호환성을 유지해야 하는 여러 종류의 개체군이 있을 때 추상 팩토리 패턴을 사용하면 표준화된 방식에 의해 자신에게 맞는 개체군을 효과적으로 사용할 수 있게 해 줍니다. 이를 위해 추상 팩토리 패턴에서는 서로 호환성 있는 개체들을 생성하는 부분만 담당하는 개체를..

4. 4 폼 구현 [Windows Forms 응용 프로그램]

4. 4 폼 구현 이제 사용자와 상호작용하는 폼을 구현합시다. 4.4.1 RegForm 프로젝트에 RegForm을 추가하고 자식 컨트롤을 배치합니다. 정보를 표시하는 Label 컨트롤을 제외하고 9개의 컨트롤을 배치합니다. 일련 번호를 표시할 Label, 제목과 내용을 입력할 TextBox, 제출과 취소와 이미지 선택을 위한 버튼, 선택한 이미지를 표시할 PictureBox, 날짜를 선택하는 DateTimePicker와 MonthCalendar입니다. [그림 4.6] RegForm 자식 컨트롤 배치 using System; using System.Collections.Generic; using System.Drawing; using System.Windows.Forms; namespace MyReadin..

4.3 엔진 개발 [Windows Forms 응용 프로그램]

4.3 엔진 개발 이제 도서 관리자 응용의 엔진을 개발합시다. 폼을 제외한 나머지 부분을 여기에서는 엔진이라고 부를게요. 4.3.1 BookStory 도서 정보는 BookStory 클래스로 정의합시다. BookStory 클래스는 차후에 라이브러리 형태로 만들어 제공할 수 있는 형식입니다. 접근 지정을 public 으로 설정한 부분은 라이브러리 형태로 만들 때 외부 프로젝트에서 접근할 수 있게 설정한 것입니다.public class BookStory{ 도서의 일련 번호는 읽기 전용 멤버로 선언합니다. readonly int seqno;//도서 일련 번호도서 일련 번호를 가져오기 할 수 있는 속성을 제공합니다. public int No { get { return seqno; } } 도서 제목을 가져오기 할 ..

3. 2 실습: 다른 프로젝트에서 만든 컨트롤 사용하기 [Windows Forms 응용 프로그램]

3. 2 실습: 다른 프로젝트에서 만든 컨트롤 사용하기 3.2.1 같은 솔루션에서 사용하기 이번에는 다른 프로젝트에서 만든 컨트롤 라이브러리를 참조하여 사용하는 방법을 알아봅시다. 먼저 3.1에서 만든 솔루션에 ColorSelectorControlLib 프로젝트를 추가하세요. 프로젝트 템플릿은 WIndows Forms 컨트롤 라이브러리를 선택합니다. [그림 3.7] 컨트롤 라이브러리 프로젝트 추가 여기에서는 3.1 실습에서 만든 ColorSelectorControl을 라이브러리 형태로 만들 것입니다. 새로 생성한 프로젝트에 기본으로 만들어진 UserControl1 은 제거하세요. 3.1 실습에서 사용자 정의 컨트롤을 추가하여 하나 하나 작성할 수 있지만 여기에서는 이미 만들었던 것을 가지고 실습하기로 할..

반응형