Programming

우선 MVVM 의 설계 철학은 정말 마음에 든다. MVVM 을 완벽하게 구현한다면 이론상 Designer 와 Developer 의 작업을 완벽하게 분리할 수 있으며(물론 Github, StackOverFlow 등에서는 사실상 이것이 불가능하다는 의견도 있다.), View 와 종속적이지 않게 비지니스 로직을 검증할 수 있다. 결론적으로 '유지보수성' 이 매우 높아지는 효과를 가져온다. 고전적인 Code-Behind 방식 (일반적으로 Winform, WPF 를 통해 코드를 작동시킬 때 View 영역에 Button_Click() 메소드를 생성하는 방식)이 비록 생산성은 MVVM 방식보다 월등히 높지만, 유지보수성에서는 MVVM 우위에 있다. 때문에 장기적으로 관리되어야 할 프로젝트라면 MVVM이 권장된다. 이..
[C#] Task .Wait() vs await 차이점 Task.Wait과 await의 차이점 Stack Overflow에서 발견한 흥미로운 질문과 답변입니다. set 출처: https://stackoverflow.com/questions/9519414/whats-the-difference-between-task-start-wait-and-async-await kayuse88.github.io C# await - C# 프 cypsw.tistory.com 이전 포스팅의 예제와, 결론 자체는 틀리지 않았으나 몇몇 오해할만한 소지가 있다고 판단하여 보완 포스팅을 작성한다. 1. Async is not include Thread 'Async' 는 'Thread' 를 포함하는 개념이 아니다. 오해할 만한 소지가 ..
요즘 내 흥미를 돋구는것중 하나는 이전 포스팅에서 언급했던 MAUI 라는 놈인데 C#을 토대로 크로스 플랫폼(IOS, Android, Windows) 빌드용으로 만들어진 다중 플랫폼 UI 프레임워크 이다. 이놈의 특징은 하나의 코드를 사용해 모든 플랫폼에서 실행할 수 있다 인데... C#을 사용하던 분들은 어리둥절 할 것이다. 해당 프레임워크를 사용한다고 해서 Windows Lagacy 코드가 Android, IOS 위에서 돌아갈리가 없기 때문이다. 아무리 MS 개발자들의 능력이 좋다고 하지만 이건 힘들것이라는것이 내 지론이고, 역시 내 생각은 맞았다. Window 기준 C#을 사용하여 특정 File 을 선택하는 창을 보여줄 때, 우리는 OpenFileDialog(System.Windows.Forms) ..
· Programming
1. COM 개체란 무엇인가? COM 개체 및 인터페이스 - Win32 apps COM 개체 및 인터페이스 learn.microsoft.com COM은 개체가 단일 프로세스 내에서처럼 프로세스 및 컴퓨터 경계를 넘어 쉽게 상호 작용할 수 있도록 하는 기술이다. 예로 들자면 프로그램에서 '클립보드', '파일' 에 접근 할 때 COM 개체를 통해 접근 하는것이다. Clipboard.GetDataObject(); // or OpenFileDialog(); 물론 이와 같은 형태의 COM 개체만 존재하는것은 아니다. C# COM 만들기 C# COM 만들기 윈도우10, VisualStudio2017 기준 MFC Client : http://petra.tistory.com/1133 1. Visual Stidio 20..
#include typedef struct listNode *listPtr; typedef struct listNode { char data; listPtr link; }listNode; listPtr invert(listPtr lead) { listPtr middle, tail; middle = NULL; // 여기서 쓰이는 lead, middle, tail 은 임시로 거쳐가는 변수임. while(lead) { tail = middle; // tail 은 middle 을 취함. middle = lead; // middle 은 lead 를 취함. lead = lead->link; // lead는 lead 의 link 를 취함. middle->link = tail; // tail 부분은 middle 부분보..
우선 Timer 관련 글들을 살펴보면 [ C# ] 세가지 Timer 와 그 차이점 [출처] [C#] 세가지 Timer 와 그 차이점|작성자 코드클럽 blog.naver.com/jjk003/221926047276 특정 작업을 주기적으로 실행하기 위해 흔히 Timer 객체를 사용합니다 정해진 시간 간격으로 변수를 업데이 minineko.tistory.com Forms.Timer 가 Winform 에 '최적화 되었다' 라는 구문이 눈에 띄는데. 이걸 보고 알아서 잘 관리해 주겟거니... 하다가는 함정에 빠지게 된다. 1. Forms.Timer Why there are 5 Versions of Timer Classes in .NET? Why are there five timer classes in the .Ne..
A.py import B b = B.B b.cc() B.py class B: variable = "TTT" def __init__(self): B.variable = "this is BB class" def cc(): print(B.variable); 우선 Python 에서는 두가지 문법이 존재하는데, B.B 와 B.B() 가 그것이다. B.B 는 Static 형식으로 사용할 수 있다 == 생성자가 실행되지 않는다. B.B() 는 Instance 를 만들기에 == 생성자를 실행시킨다. 수정한 A.py import B b = B.B() b.cc() 에러가 발생하는데, 우리는 b 의 '인스턴스' 를 통해 b.cc() 를 실행시켰다. 그런데 b.cc() 선언을 살펴보면 self parameter 없다. B.p..
C++ [대기] / C# [이벤트 발생] C++ #include using namespace std; int main() { HANDLE handle_recv = CreateEvent(NULL, FALSE, FALSE, TEXT("TEST_RECV")); bool wait = false; WaitForSingleObject(handle_recv, INFINITE); } C# using System.Threading; class A { public static void Main() { EventWaitHandle ewh = new EventWaitHandle(false, EventResetMode.AutoReset, "TEST_RECV"); ewh.Set(); } } C++ / C# 간에 서로 뒤바뀌면 C..
· Programming
재귀 함수의 가장 대표격인 Factorial 함수를 통해 설명하겠다. 1. StackOverFlow using System; using System.Diagnostics; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading.Tasks; namespace Cs_Test { class Program { public static ulong Factorial_recursion(ulong num) { if(num == 1) return 1; return num * Factorial_recursion(num - 1); } public static ulong Factorial_loop(ulong num) { ulon..
실제 업무에서는 Struct 내부에 데이터를 넣어 SharedMemory 를 통해 프로세스간 데이터를 공유한다. Install class SharedMemory { public void installSharedMemory(string name) { A a; MemoryMappedFile mmf = MemoryMappedFile.CreateNew(name, 10000); var accessor = mmf.CreateViewAccessor(); a.a = 244; a.b = 255; a.c = 266; accessor.Write(0, ref a); } } struct A { public int a; public int b; public int c; } Read class SharedMemory { publi..
Cyp
'Programming' 카테고리의 글 목록