블로그
KomuraSoft LLC가 웹사이트 제작, SEO, Google 광고 운용, Windows 개발, 기존 자산 활용, 장애 조사에 관해 실무적으로 활용할 수 있는 관점을 발신합니다.
사이트 전체 AI 검색
검색어는 결과 생성을 위해 Cloudflare AI Search로 전송됩니다. 개인정보는 입력하지 마세요.
-
절전에서 재개하면 깨지는 앱 ── 전원 이벤트의 구조와 재개에 강한 업무 앱을 만드는 방법
노트북을 열었더니 업무 앱의 통신이 끊어져 있었다――원인은 절전을 전제하지 않은 설계입니다. WM_POWERBROADCAST에 의한 알림의 흐름, Modern Standby의 동작, 끊김·재연결 설계, 절전 억제와 조사 명령까지를 1차 정보로 설명합니다.
-
DllMain과 로더 락 ── 「DLL 초기화에서는 아무것도 하지 말라」는 말의 진짜 이유
DllMain에서 LoadLibrary나 스레드 동기화를 해서는 안 되는 이유는 무엇인가. 모든 DLL 알림을 직렬화하는 로더 락의 구조부터, 데드락이 성립하는 전형적인 시나리오, 지연 초기화 같은 올바른 설계, hang 조사 절차까지를 1차 정보로 설명합니다.
-
「응답 없음」의 정체 ── Windows가 앱을 「멈췄다」고 판단하는 구조와, 멈추지 않는 설계
Windows의 「응답 없음」은 창이 5초 동안 메시지를 꺼내지 않으면 OS가 판단해 고스트 창으로 교체하는 구조입니다. 판단의 내부 동작부터 멈추는 전형적인 원인, UI 스레드에서 무거운 처리를 빼내는 설계, hang 조사 절차까지 설명합니다.
-
spurious wakeup ── 조건 변수가 「알림 없이 깨어나는」 이유와 Windows에서 올바르게 기다리는 방법
조건 변수의 wait는 알림이 오지 않아도 깨어날 수 있습니다(spurious wakeup). 사양이 이를 허용하는 이유를 Windows 구현에서 밝히고, while과 predicate로 쓰는 올바른 대기 방법을 Win32·C++·C# 코드로 보입니다.
-
클립보드와 드래그 앤 드롭의 구조 ── 업무 앱에서 OLE 데이터 전송을 올바르게 다루기
Excel 표를 붙여 넣으면 서식이 무너지고, 원본을 닫으면 붙여 넣을 수 없다── 원인은 같은 내용을 여러 형식으로 두는 클립보드입니다. 표준 형식·지연 렌더링·OLE 드래그 앤 드롭부터 기록과 클라우드 동기 정책까지 설명합니다.
-
WPR/WPA 실무 ── 「PC 전체가 느리다」를 시스템 전체에서 조사하는 성능 조사 입문
「PC 전체가 느리다」「부팅이 느리다」처럼 작업 관리자로는 따라갈 수 없는 성능 문제는 OS 전체 ETW 트레이스를 모아 읽는 WPR/WPA로 조사합니다. wpr.exe 수집 절차부터 WPA에서 CPU·대기·디스크 I/O를 읽는 법까지 설명합니다.
-
앱에서 본 Windows 종료 ── 종료 알림·다시 시작·전원 차단을 올바르게 견디기
Windows Update의 야간 다시 시작으로 계측 데이터가 깨졌다 ── 그런 사고는 설계로 막을 수 있습니다. WM_QUERYENDSESSION과 PRESHUTDOWN으로 종료 알림을 받는 방법, 수 초 안에 끝내는 정리, 전원 차단에도 견디는 저장 설계까지를 1차 정보로 설명...
-
Windows 앱 접근성 입문 ── UI Automation과 합리적 배려 의무화에 대비하기
2024년 4월 시행된 개정 장애인차별해소법을 배경으로, 스크린 리더가 Windows 앱을 읽는 기반 UI Automation을 축으로 WinForms/WPF의 이름 지정, 키보드 조작, 대비, 검증 도구까지 실무 관점에서 정리합니다.
-
일본어 글꼴과 문자의 함정 ── 업무 앱에서 JIS2004·이체자 선택자·외자를 다루는 법
「화면과 장표에서 葛 자의 모양이 다르다」「성명의 글자가 나오지 않는다」── 업무 시스템의 문자 문제는 문자 코드(데이터)와 글꼴(겉모습)의 층을 나누면 정리할 수 있습니다. JIS2004의 자형 변경, 이체자 선택자, 외자의 실무 대응을 설명합니다.
-
그룹 정책에서 Intune으로 ── 중소기업의 디바이스 관리 이전 가이드
AD 서버 교체를 계기로 그룹 정책을 이어갈지, Entra ID+Intune으로 옮길지. 적용 방식의 차이, 라이선스, Group Policy analytics로 현황을 파악하는 법, 5단계 이전 시나리오와 막히는 지점을 중소기업 기준으로 정리합니다.
-
Windows 서비스 계정 선정 ── LocalSystem·가상 계정·gMSA를 구분해서 쓰기
Windows 서비스를 아직 LocalSystem으로 돌리고 있지는 않습니까. LocalService·NetworkService·가상 계정·도메인 사용자·gMSA의 권한과 네트워크상 신원을 판단표로 비교하고, 최소 권한으로 운영하는 고르는 법을 설명합니다.
-
OneDrive 「파일 온디맨드」와 업무 앱 ── 플레이스홀더가 깨뜨리는 전제와 대책
데스크톱 CSV가 읽히지 않거나 가져오기가 「파일을 찾을 수 없습니다」로 실패한다——원인은 OneDrive의 KFM과 파일 온디맨드일 수 있습니다. 플레이스홀더 구조, 속성 판정, 앱과 정보시스템 양쪽의 대책을 설명합니다.
-
Windows 앱 호환이 동작하는 방식 ── 호환성 모드, 심(Shim), Compatibility Administrator로 오래된 앱의 수명을 연장하는 방법
호환성 모드에 체크하면 오래된 앱이 동작하는 이유. 정체인 심(API 훅)의 구조, 대표 심의 역할, Compatibility Administrator와 sdbinst로 조직에 배포하는 방법, 통하지 않는 한계, 수명 연장과 이전 사이의 판단까지 설명합니다.
-
Windows 메모리의 심층(제3회) ── 섹션 객체와 Copy-on-Write: DLL과 파일 매핑의 정체
섹션 객체, 이미지·데이터 매핑, 공유 캐시, Copy-on-Write를 이어서 DLL과 공유 메모리가 물리 페이지를 공유하는 구조를 설명합니다.
-
Windows 셸 통합의 현재 ── 컨텍스트 메뉴, 파일 연결, Windows 11의 변화
Windows 11에서 컨텍스트 메뉴가 「더 많은 옵션 표시」 뒤로 숨는 이유를, 확장자→ProgID→verb라는 파일 연결의 기본, 기존형 셸 확장의 주의점, IExplorerCommand와 MSIX/sparse package의 새 방식까지 이어서 설명합니다.
-
사내 프록시와 Windows 앱 ── WinINET·WinHTTP·.NET의 프록시 해석을 정리한다
브라우저에서는 연결되는데 업무 앱만 사내 프록시를 넘지 못합니다. 원인은 대개 WinINET, WinHTTP, 환경 변수, .NET이 각각 어떤 프록시 설정을 읽는지가 어긋난 데 있습니다. PAC와 WPAD, 인증 프록시, TLS 검사, 원인 분리 절차까지 정리합니다.
-
Windows 메모리의 심층(제2회) ── 물리 페이지의 일생: 다섯 목록과 페이지 파일의 진실
PFN 데이터베이스, Standby, Modified, 메모리 압축, 페이지 파일을 이어서 Working Set에서 벗어난 물리 페이지의 행선을 설명합니다.
-
Windows 패킷 캡처 실무 ── pktmon·netsh trace·Wireshark 역할 나누기
앱 로그에 「타임아웃」만 남는 통신 장애는, 실제로 네트워크에 흐른 패킷을 보면 한 단계 더 깊게 조사할 수 있습니다. Wireshark를 설치할 수 없는 서버에서도 OS 표준 pktmon·netsh trace로 캡처할 수 있습니다. 캡처와 분석의 역할 나누기를 실무 절차로 설명합니다.
-
Windows 메모리의 심층(제1회) ── 가상 주소가 물리 RAM으로 바뀌는 순간: 페이지 폴트의 전말
VirtualAlloc, VAD, 페이지 테이블, TLB, demand-zero, 하드 폴트를 이어서 가상 주소에 물리 RAM이 할당되는 순간을 설명합니다.
-
Windows 오류 코드 읽기 ── Win32·HRESULT·NTSTATUS 삼층 구조
0x80004005가 나오면 검색하기 전에 먼저 분해합니다. Win32 오류·HRESULT·NTSTATUS의 삼층 구조, 0x8007xxxx가 Win32 오류를 감싼 형태라는 가장 중요한 패턴, err.exe와 PowerShell로 코드를 찾는 방법까지 정리합니다.
-
정보처리안전확보지원사 2024년 봄 오후 문제1 해설 ── JWT의 alg=none과 API 인가, WAF의 임시 대책
정보처리안전확보지원사 시험 2024년 봄 오후 문제1을 소재로 JWT의 alg=none, API 인가, Mass Assignment, 4자리 인증 코드 무차별 대입, WAF 임시 대책을 해설합니다.
-
Windows의 「메모리 사용량」은 무엇을 나타내는가 ── Working Set·Private Bytes·Commit·페이지 파일을 올바르게 읽는 법
작업 관리자의 메모리, Working Set, Private Bytes, Commit은 같은 값이 아닙니다. Windows의 가상 메모리와 물리 메모리의 관계, 페이지 파일의 역할, 메모리 부족이나 누수 조사에서 봐야 할 지표를 설명합니다.
-
멀티스레드 실무 베스트 프랙티스 Java 편 ── 가상 스레드 시대의 정석
Java 멀티스레드는 스레드를 직접 만들지 않고 ExecutorService와 가상 스레드에 맡기는 것이 정석입니다. synchronized와 ReentrantLock의 구분, interrupt를 통한 협력적 중단, ConcurrentHashMap의 원자적 연산, Swing EDT...
-
멀티스레드 실무 베스트 프랙티스 C 언어 편 ── Win32 API의 방식으로 안전하게 작성하기
C 언어 × Win32의 멀티스레드는 _beginthreadex로 스레드를 만들고, SRW 락과 조건 변수, Interlocked, 정지 이벤트+WaitForMultipleObjects로 정지를 설계하는 것이 정석입니다. TerminateThread의 위험과 DllMain의 제약까...
-
멀티스레드 실무 베스트 프랙티스 C++ 편 ── RAII와 jthread로 사고를 구조적으로 없애기
C++ 멀티스레드는 data race가 곧 undefined behavior가 되는 세계입니다. std::thread 소멸자의 함정, jthread와 stop_token으로 멈추는 설계, scoped_lock의 deadlock 회피, atomic의 자리, Win32 동기화 API와...
-
멀티스레드 실무 베스트 프랙티스 .NET 편 ── 스레드를 늘리기 전에 정해 둘 것
「스레드를 만들었더니 가끔 죽거나 멈춘다」를 막는 설계의 정석을 .NET/C# 대상으로 정리합니다. 스레드를 직접 만들지 않고 Task에 맡기기, 공유 가변 상태 줄이기, 락의 규율, CancellationToken으로 정지 설계하기, UI 스레드 다루기까지 설명합니다.
-
정보처리안전확보지원사 2023년 가을(레이와 5년) 오후 문제2 해설 ── 방문객용 Wi-Fi로 유출되는 파일
정보처리안전확보지원사 시험 2023년 가을(레이와 5년) 오후 문제2를 소재로, USB 메모리를 막은 회사가 방문객용 Wi-Fi를 통해 파일을 유출당하는 경로를 해설합니다. 서버 인증서 검증과 HSTS, MAC 주소 필터링의 한계, EAP-TLS와 TPM을 이용한 대책을 정리합니다.
-
볼륨 섀도 복사본(VSS)의 원리와 실무 ── 사용 중인 파일은 어떻게 백업되는가
사용 중인 파일은 공유 위반으로 복사하지 못하는데, 백업 소프트웨어는 어떻게 복사할까요. 볼륨 섀도 복사본(VSS)의 requester·writer·provider 역할, copy-on-write 동작, vssadmin 실무와 diff area의 함정을 설명합니다.
-
WMI/CIM을 C#·PowerShell에서 쓰기 ── 하드웨어 정보 가져오기·프로세스 모니터링·원격 조회의 실무 가이드
PC 시리얼 번호 조회, 디스크 여유 공간 모니터링, 프로세스 시작 감지의 흔한 답이 WMI/CIM입니다. Get-CimInstance 등 CIM cmdlet 사용법과 구 Get-WmiObject에서의 이전, C#의 System.Management와 CIM API 구분, 실무 레시...
-
그룹 정책(GPO) 실무 입문 ── 동작 방식·적용 확인·Intune과의 역할 분담
「GPO로 배포한다」는 말의 뜻을 모른 채 AD 환경을 다루고 있지는 않은지요. 그룹 정책의 동작 방식과 LSDOU 적용 순서, gpupdate·gpresult로 적용 여부를 확인하는 방법, Intune과의 역할 분담, 고객사 GPO가 앱 동작을 바꿔 버리는 함정까지 실무 관점에서...