블로그
KomuraSoft LLC가 웹사이트 제작, SEO, Google 광고 운용, Windows 개발, 기존 자산 활용, 장애 조사에 관해 실무적으로 활용할 수 있는 관점을 발신합니다.
웹사이트 제작, SEO, Google 광고 운용, 기존 사이트 개선, Windows 개발, 기술 상담까지 한 번에 상담할 수 있습니다. 상황 정리 단계여도 문제 없습니다.
웹사이트 제작 · SEO · Google 광고에 대해 상담하기-
C#을 Native AOT로 네이티브 DLL로 만드는 방법 - UnmanagedCallersOnly로 C/C++에서 호출하기
.NET의 Native AOT와 UnmanagedCallersOnly로 C# 클래스 라이브러리를 네이티브 DLL로 발행해 C/C++에서 in-process로 호출하는 구성을, 핸들 기반 수명 관리와 에러 코드, C ABI 설계 요령으로 정리합니다.
-
Generic Host / BackgroundService를 데스크톱 앱에 가지고 들어오는 이유 - 기동・수명・graceful shutdown의 정리가 꽤 편해진다
WPF나 WinForms 같은 데스크톱 앱에서 Generic Host와 BackgroundService를 도입해 기동, 상주 처리, graceful shutdown, DI, 로그, 설정의 입구를 한 곳으로 모으는 설계 정리법과 안티패턴을 실무 시점으로 풀어냅니다.
-
ActiveX / OCX를 지금 어떻게 다룰 것인가 - 남길지・감쌀지・교체할지 판단표
ActiveX / OCX 자산을 만났을 때 무작정 폐기하지 말고, 그 부품이 무엇을 떠맡고 있는지를 기준으로 남길지・감쌀지・교체할지를 32bit / 64bit, 등록 방식, 브라우저 의존, 벤더 보수까지 함께 따져 판단하는 표를 정리합니다.
-
WPF / WinForms의 async/await와 UI 스레드를 한 장으로 정리 - await 후의 돌아갈 곳, Dispatcher, ConfigureAwait, .Result / .Wait()의 막힘 포인트
WPF/WinForms에서 async/await가 헷갈리는 핵심—await 후의 복귀 스레드, Dispatcher와 Invoke의 사용 구분, ConfigureAwait(false)의 진짜 의미, .Result/.Wait()로 화면이 굳는 이유까지 한 장으로 정리합니다.
-
산업용 카메라 제어 앱이 1개월 뒤에 갑자기 떨어질 때(후편) - Application Verifier란 무엇인가와 이상계 테스트 기반의 만드는 방법
Application Verifier로 핸들 오용, 힙 파괴, 저리소스 시 fault injection을 강제로 일으켜 산업용 카메라 제어 앱처럼 장시간 동작하는 Windows 네이티브 앱의 이상계 테스트 기반을 만드는 방법을 정리합니다.
-
산업용 카메라 제어 앱이 1개월 뒤에 갑자기 떨어질 때(전편) - 핸들 누수의 발견 방법과 장기 가동용 로그 설계
Windows 산업용 카메라 제어 앱이 약 한 달 연속 가동 후에 떨어지는 사례를 통해, 핸들 누수의 발견 절차와 Handle Count 관측, create/close 쌍을 추적하는 로그 설계, 단시간에 재현하는 실패 경로 테스트의 진행 방식을 정리합니다.
-
TCP 재전송으로 산업용 카메라 통신이 수 초 멈출 때 - RFC1323 타임스탬프와 재전송 대기의 구분
산업용 카메라 통신이 가끔 수 초 멈추는 원인을 패킷 캡처로 추적해, RTO 재전송 대기와 RFC1323 타임스탬프 옵션의 효과를 정리합니다. Wireshark 확인 포인트와 구분 사용 표도 함께 제시합니다.
-
FileSystemWatcher 사용법과 주의점 - 누락, 중복 알림, 완료 판정의 함정
Windows .NET 파일 감시에서 FileSystemWatcher의 이벤트를 완료 알림으로 오인하기 쉬운 함정과, 재스캔 요청·원자적 claim·idempotency를 축으로 누락과 중복을 견디는 안전한 설계 패턴을 정리합니다.
-
Media Foundation이란 무엇인가 - COM과 Windows 미디어 API의 얼굴이 보이는 이유
Media Foundation을 만지면 왜 COM의 얼굴이 진해지는지를, CoInitializeEx와 MFStartup의 분담, IMFAttributes와 GUID, IMFActivate, Source Reader / Sink Writer / Media Session / MFT의 ...
-
C# async/await의 베스트 프랙티스 - Task.Run과 ConfigureAwait의 판단표
C# async/await의 베스트 프랙티스를 I/O 대기와 CPU 계산의 구분, Task.Run·ConfigureAwait(false)·fire-and-forget·WhenAll·SemaphoreSlim·Channel의 형 선택 판단표로 정리합니다.