일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Winform
- Json.NET
- Cell Border Style
- c#
- sqlite3
- 객체지향
- 경기도 버스정보시스템
- 디자인 패턴
- JSON
- MDB Connect
- C# MDB
- 경기도 버스
- eventargs
- Excel Cell Format
- C# 파일 암/복호화
- delegate
- DrawEllipse
- C# MDB Handle
- 버스 API
- MDB Select
- GDI+
- eventhandler
- NUnit
- WPF
- TDD
- DrawRectangle
- MVC
- 시
- 공공 데이터 포털
- solid
- Today
- Total
목록IT Engineering (149)
White Whale Studio
도형 그리는 방법을 알아보았으니 이제 마우스로 클릭해서 드래그하면 그릴 수 있는 프로그램을 만들어보겠습니다. 화면은 앞의 포스팅에서와 같고 panel의 속성 창에서 마우스 이벤트를 추가해 줍니다. 1234567891011121314 private void panel1_MouseDown(object sender, MouseEventArgs e) { } private void panel1_MouseMove(object sender, MouseEventArgs e) { } private void panel1_MouseUp(object sender, MouseEventArgs e) { }Colored by Color Scriptercs 간략하게 설명을 해보면 Mouse Down : 시작 좌표를 설정하게 됩니다...
이번 포스팅에서는 도형을 그려보겠습니다. 우선 그림을 그리려면 OnPaint 이벤트를 추가해야합니다.폼에 추가를 해도 되긴 합니다만, 저는 추후에 다른 컨트롤 사용성을 위해서 Panel을 삽입해서 Panel에 OnPaint 이벤트를 추가하고그리기로 했습니다. 우선 뭐라도 그려 보겠습니다.빈 사각형, 파란 사각형, 빈 원, 파란 원을 그려보겠습니다. 12345678910 Pen pen = new Pen(Color.Black); private void panel1_Paint(object sender, PaintEventArgs e) { e.Graphics.DrawRectangle(pen, new Rectangle(0, 0, 100, 100)); e.Graphics.FillRectangle(new SolidB..
업종에 따라서 GDI를 사용할일이 있는데, 저도 그런 날이 오고야 말았습니다.아직 시작은 하지 않았지만, 어느정도 정리하는 차원에서 GDI+ (Graphic Design Interface)를 탐구해보겠습니다. https://msdn.microsoft.com/ko-kr/library/aa984364(v=vs.71).aspx 기본적으로는 MSDN을 참고하시기 바랍니다. 일단 우선적으로 저는 Winform을 기반으로 작업을 합니다. Form 혹은 컨트롤 중에서 Panel의 이벤트 속성에 보면 Paint라는 속성이 있는데, 이 부분에서 추가되는 선, 도형, 이미지 등을 그려주게 됩니다. 따라서, private void panelControl1_Paint(object sender, PaintEventArgs e)..
싱글톤 패턴은 하나의 Class 에 하나의 Instance를 가지는 패턴입니다. 개인적으로 가장 이해하기 쉬웠던 예는 TraceManager의 예제였습니다. 에러나 프로세스 정보를 기록하기위해서 사용하는 TraceManager는 다양한 클래스에서 참조할 것이고 참조할 때마다 객체를 생성해서 사용 해야만 한다면 분명히 자원을 많이 잡아먹게 될것입니다. 이러한 경우에 TraceManager를 구현 시에 싱글톤 패턴으로 구현을 하면 될것 같군요. 구현 후에는 프로그램 구동 후 종료가 될때까지 TraceManager의 1개의 인스턴스로 로깅을 남길 수 있습니다. 객체 중에서 하나 이상 존재하게 되는 경우 프로그램에 문제가 될수있다거나 자원을 많이 잡아먹을 가능성이 있는 다른 예를 들어보면, 대화상자나 사용자 설..
SOLID 원칙 중 2번째인 개방 폐쇄 원칙입니다. OCP : Open Closed Principle 이 원칙은 다음과 같습니다. - 기능을 변경하거나 확장은 할 수 있으면서 - 그 기능을 사용하는 코드는 수정하지 않는다. 첨엔 이게 뭔 소린가 싶습니다. 풀이를 해보면 Entity(클래스, 메서드, 모듈 등)는 Interface와 같은 추상화 클래스에 대해 개방 되어 있어야 하지만변경에는 폐쇄되어 있어야 한다는 말입니다. 즉, Interface를 통해 기능을 변경하거나 확장을 하는 것은 가능하나, 외부에서 참조하는 코드는 수정하지 않는다는 것입니다. 아래의 그림에서 보시면 Interface를참조하는 Plus, Minus의 메서드가 있는데, 이러한 메서드에 추가적으로 곱하기나 나누기가 기능이 추가가 되야 ..
SOLID 설계 원칙은 객체 지향 프로그래밍을 할 때 중요한 원칙들입니다. 단일 책임 원칙 : Single Responsibility Principle - SRP 개방 폐쇄 원칙 : Open-Closed Principle - OCP 리스코프 치환 원칙 : Liskov Substitution Principle - LSP 인터페이스 분리 원칙 : Interface Segregation Principle - ISP 의존역전 원칙 : Dependency Inversion Principle - DIP 위에서 보시는 바와 같이 총 5개의 원칙들의 앞 자만을 따서 SOLID라고 합니다.각 원칙들에 대해서 찬찬히 살펴보겠습니다. 우선 해당 포스팅에서는 단일 책인 원칙에 대해서 살펴보겠습니다.단일 책임원칙은 다음과 같습..
이전에 포스팅한 Delegate에 이어 Event에 대해서 살펴보겠습니다. Event와 함께 밀접한 관계에 있는 EventHandler 또한 함께 다루어보겠습니다. 문법적인 Event의 사용법에 들어가기에 앞서 이벤트를 살펴보면이벤트는 동작의 발생을 알리기위해 개체에서 보내는 메시지입니다. 예를 들면, 마우스 클릭, 키보드 입력등의 사용자 입력으로 인해발생하여 다른 프로그램논리에 의해 트리거 될수 있는 거죠. 이벤트를 발생시키는 개체는 이벤트 전송자, 이벤트를 캡쳐하고 응답하는 개체를 이벤트 수신자라고 합니다. 이벤트 통신에서 이벤트 전송자 클래스와 수신자 사이에 어떤 대상이 되는지를 서로 확인하기 위해 C의 포인터 같은 매커니즘이 필요한데이것이 바로 delegate 입니다. delegate에서 설정하는..
Delegate는 대리, 위임이라는 뜻을 가집니다. 언뜻 뜻과는 잘 부합시키기가 어렵네요. Delegate와 관련하여 제가 정리한 항목들을 우선 나열해보겠습니다. 1. Delegate는 메서드를 매개인자(Parameter)로 전달할 수 있다. 2. Delegate 자체를 매개인자로 전달할 수 있다. 3. 복수의 메서드를 등록하여 사용가능하다. (등록은 +=, 해제는 -=) 4. Event는 특수한 형태의 delegate 이다. 4.1 Delegate와 Event의 차이점은 delegate는 클래스 외부에서 호출가능하나 event는 불가 4.2 Event는 메서드 할당 연산자(=) 사용불가 오직 등록은 +=, 해제는 -= 로만 가능 Delegate의 정의에서 중요한 것은 Parameter와 Return T..
Delegate에 대한 내용을 찾다가 Event를 찾게되고;;; 좀더 상세하게 파보다보니 여기까지왔네요.관련된 내용부터 해서 최종적으로는 Delegate와 Event를 알아보겠습니다. EventArgs (Event Arguments) : 이벤트에 사용되는 데이터를 저장하기 위해 참조하는 기본 클래스입니다.MSDN의 설명을 보면이 클래스에는 이벤트 데이터가 없으므로 이벤트가 발생할 때 이벤트 처리기에 대한 상태 정보를 전달하지 않는 이벤트에서 사용됩니다. 이벤트 처리기에 상태 정보가 필요한 경우, 응용 프로그램에서는 이 클래스에서 클래스를 파생시켜 해당 데이터를 보관해야 합니다. This class contains no event data; it is used by events that do not pas..
StyleCop은 Visual Studio 에서 코딩시에 코딩 가이드 라인을 잡아주는 코드 분석기 입니다. DOWNLOAD는 아래의 경로에서 http://stylecop.codeplex.com/ 다운로드 받으시고 그냥 설치하시면 됩니다. 물론 Visual Studio도 설치되어 있어야겠죠? 사용법을 살펴보겠습니다. 우선 코딩을 한 후 코드 작성창이나 솔루션 탐색기의 프로젝트에서 우측 클릭을 하게되면 Run styleCop 이라는 없던 버튼이 생깁니다. 요놈을 눌러줍니다. 눌러주면 화면 하단의 오류 목록창에 쫘악 뜨게 됩니다. 출력 창에서도 가이드를 위반한 갯수가 뜨게 됩니다. 막상 보게 되면 이 룰 위반사항들이 고개가 끄덕여질만큼 타당한것도 있는가하면 이건 너무 한거 아닌가 싶은것들도 있습니다.상황에 따..