블로그
KomuraSoft LLC가 웹사이트 제작, SEO, Google 광고 운용, Windows 개발, 기존 자산 활용, 장애 조사에 관해 실무적으로 활용할 수 있는 관점을 발신합니다.
사이트 전체 AI 검색
검색어는 결과 생성을 위해 Cloudflare AI Search로 전송됩니다. 개인정보는 입력하지 마세요.
-
Windows I/O의 심층(제3회) ── I/O 완료 포트(IOCP)와 .NET 스레드 풀: async/await의 지하실
I/O 완료 포트(IOCP)를 그림으로 설명하는 연재의 제3회입니다. 완료 큐와 스레드 수 제어를 하나로 묶은 설계, 동시성 값과 LIFO 해제, .NET 스레드 풀과 async/await 계속(continuation)의 실행 스레드까지 정리합니다.
-
MSMQ는 언제까지 쓸 수 있는가 ── 「deprecated조차 아닌」 레거시 큐의 마이그레이션 판단
MSMQ는 공식 deprecated 목록에 없는 한편, System.Messaging은 .NET Framework에만 있어 .NET으로의 이전을 가로막습니다. 폐지 소문과 실제 현재 위치를 사실로 정리하고, 계속 쓸지·옮길지의 판단 기준과 이전 대상 고르는 법을 정리합니다.
-
Windows I/O의 심층(제2회) ── 동기 I/O와 비동기 I/O: OVERLAPPED의 진짜 의미
Windows의 동기 I/O와 비동기 I/O(overlapped I/O)를 그림으로 설명하는 연재의 제2회입니다. FILE_FLAG_OVERLAPPED의 의미, 완료 통지의 네 가지 방식, 비동기인데도 동기 완료되는 조건, 취소 절차, .NET과의 대응까지 정리합니다.
-
정보처리안전확보지원사 2023년 가을(레이와 5년) 오후 문제1 해설 ── 16건의 리뷰가 2건만 표시되는 저장형 XSS
정보처리안전확보지원사 시험 2023년 가을(레이와 5년) 오후 문제1을 소재로, 저장형 XSS 공격의 흐름을 해설합니다. 문자 수 제한이 분할 게시로 깨진 이유, 세션ID가 외부로 전송되지 않고 이미지로 반출된 경로, 거기서 효과가 있었던 대책을 정리합니다.
-
AppLocker·App Control for Business(WDAC)와 업무 앱 배포 ── 「실행 제어」에 막히기 전에
AppLocker, App Control for Business(구 WDAC), Smart App Control의 차이와, 자사 업무 앱이 고객 환경의 실행 제어에 막히지 않기 위한 개발·배포 측 대책을 정리합니다. 차단 시 이벤트 로그를 읽는 방법도 함께 정리합니다.
-
Windows I/O 내부 구조(제1회) ── 모든 읽기·쓰기는 IRP가 된다: I/O 시스템의 전체 그림
Windows I/O 시스템을 밑바닥부터 설명하는 연재의 제1회입니다. Object Manager namespace, driver·device·file 세 가지 object, IRP 수명 주기, CloseHandle 뒤에서 일어나는 일까지를 그림으로 정리합니다.
-
SMB 서명과 LDAP 채널 바인딩 ── NTLM 대책의 「남은 절반」을 실무에서 마무리하기
NTLM을 멈추기까지의 기간 동안, 릴레이 공격의 피해를 줄이는 방어가 SMB 서명과 LDAP 서명·채널 바인딩입니다. OS별 기본값, 감사 이벤트 읽는 법, 강제 적용으로 나아가는 절차, 업무 앱과 장비를 고치는 방법까지 실무 관점으로 정리합니다.
-
그림으로 이해하는 NTLM과 Kerberos ── 왜 인증은 NTLM으로 「떨어지는가」
NTLM과 Kerberos의 차이를 그림으로 정리합니다. 챌린지/응답, TGT와 서비스 티켓, SPN을 찾을 수 없을 때 Negotiate가 NTLM으로 떨어지는 조건, 릴레이 공격과 Pass-the-Hash가 성립하는 이유, NTLMv1 삭제까지 공식 문서의 근거와 함께 설명합니다.
-
장비에 올릴 OS로서 OpenHarmony는 선택지가 되는가 ── Windows IoT·임베디드 Linux와의 비교
산업 기기의 OS 선정에 OpenHarmony는 들어가는가. Windows IoT Enterprise LTSC, 임베디드 Linux, OpenHarmony의 유지보수 기간·필요 메모리·개발 환경·조달성을 1차 정보로 비교하고, 채택해도 되는 조건과 제외해야 할 조건을 판단표로 정리...
-
NTLM 사용 중단으로 업무 앱이 멈출까 ── 감사 로그를 모으는 방법과, 의존을 없애는 순서
NTLM 사용 중단에 대비해, 자사 Windows 환경과 업무 앱이 어디에서 NTLM에 의존하는지 파악하는 절차를 정리합니다. 감사 정책, NTLM/Operational 로그의 이벤트 8001~8004를 추적하는 방법, NTLM으로 fallback하는 전형적인 패턴과 수정 방법, ...
-
OpenHarmony란 무엇인가 ── HarmonyOS·HarmonyOS NEXT와의 차이
OpenHarmony와 HarmonyOS는 같은 것이 아닙니다. OpenAtom 재단이 운영하는 오픈소스 OS와 Huawei의 상용 OS, Android 호환을 제거한 HarmonyOS NEXT 이후의 관계를 1차 자료를 바탕으로 체계적으로 정리합니다.
-
Windows의 TPM이란 무엇인가 ── 그림으로 보는 「키를 밖으로 내보내지 않는 금고」와 측정 부팅
TPM을 그림으로 설명합니다. 키를 칩 밖으로 내보내지 않는 구조, PCR과 측정 부팅, BitLocker와 Windows Hello에서의 쓰임, dTPM·fTPM·Pluton의 차이, Get-Tpm으로 확인하는 방법, 복구 키를 요구받았을 때의 대처까지 실무 관점으로 정리합니다.
-
QR 코드를 읽은 값을 그대로 쓰면 안 됩니다 ── 오류 정정이 통과해도 값은 보장되지 않습니다
QR 코드의 오류 정정은, 정정이 통과하면 값이 맞다고 보장하는 장치가 아닙니다. 샘플 이미지와 decoder 2종으로 측정한 결과에서, 오염이 어디에 걸리느냐에 따라 다른 값으로 읽힐 수 있는 이유와 업무 시스템 쪽에 필요한 검증을 설명합니다.
-
Windows 앱에서 USB 기기를 다루는 방법 ── 가상 COM・HID・WinUSB・전용 SDK를 고르는 법
Windows 앱에서 장치나 USB 기기를 제어하는 방법을, 가상 COM 포트・HID・WinUSB・벤더 제공 SDK의 4가지 방식으로 비교합니다. 드라이버 도입 필요 여부, 여러 대 연결 시의 식별, 착탈 추적, 성능의 상한까지 실무 관점으로 정리합니다.
-
winget + PowerShell로 PC 키팅을 자동화한다 ── 절차서를 실행 가능하게 만들기
신입 사원 PC 설정을 재현 가능하게 만드는 방법을 정리합니다. winget으로 앱을 도입하고 export/import하는 방법, WinGet Configuration의 선언적 구성, PowerShell로 보완하는 설정, 무인 실행 시 주의점까지 설명합니다.
-
PowerShell 보안 강화 ── 로그·AMSI·언어 모드·JEA
PowerShell을 금지하지 않고 안전하게 쓰기 위한 실무를 정리합니다. 스크립트 블록 로그와 트랜스크립션 활성화, AMSI와 구버전 사용 중지, 언어 모드로 제한하기, JEA로 권한 위임하기까지 설명합니다.
-
Get-WinEvent로 이벤트 로그를 실무에서 조사하기 ── 필터링 속도가 조사 시간을 가른다
Windows 이벤트 로그 조사를 PowerShell로 효율화하는 방법을 정리합니다. Where-Object로 걸러내면 느린 이유, FilterHashtable과 XPath의 쓰임 구분, 재시작·로그온·앱 비정상 종료 조사 레시피, 여러 대에서 수집하는 방법까지 설명합니다.
-
PowerShell 모듈의 사내 배포와 업데이트 ── PSResourceGet와 사내 리포지토리
공유 폴더의 ps1을 복사해 돌려 쓰는 운영에서 벗어나는 방법을 정리합니다. 모듈 매니페스트 작성, 버전 관리, PSResourceGet를 사용한 사내 리포지토리 구축과 배포·업데이트, 서명과의 조합까지 설명합니다.
-
PSScriptAnalyzer로 PowerShell 스크립트 품질을 지키는 방법 ── 규칙 선정과 CI 도입
PowerShell 정적 분석 도구 PSScriptAnalyzer를 사내 스크립트에 도입하는 실무 가이드입니다. 먼저 활성화해야 할 규칙, 설정 파일 작성법, 기존 자산에 대한 단계적 도입, GitHub Actions에서의 CI화까지 설명합니다.
-
PowerShell로 REST API와 연동하기 ── Invoke-RestMethod의 실무
PowerShell에서 사내 API나 SaaS REST API를 호출하는 실무를 정리합니다. 인증 헤더 전달 방법, 일본어 JSON 문자 깨짐 대책, 4xx/5xx 오류 처리, 429 재시도, 페이징, 프록시와 TLS의 함정까지 설명합니다.
-
PowerShell 스크립트가 느릴 때 볼 곳 ── 배열·파이프라인·매칭의 핵심
PowerShell 스크립트가 느려지는 대표적인 원인을 정리합니다. 배열의 +=가 O(n^2)가 되는 이유, 파이프라인과 foreach의 차이, 매칭의 해시 테이블화, 파일 I/O 개선, 올바른 측정 방법까지 실무 관점에서 설명합니다.
-
Write-Host를 그만두기 ── PowerShell의 출력 스트림과 로그 설계
PowerShell 6가지 출력 스트림의 구분 사용, Write-Host가 가진 문제와 올바른 쓰임새, 함수 반환값이 오염되는 원인, -Verbose와 -InformationVariable로 호출 측에서 제어하는 방법, 구조화 로그를 남기는 방법을 정리합니다.
-
Microsoft Graph PowerShell 입문 ── AzureAD·MSOnline 폐지 이후의 Microsoft 365 운영
AzureAD·MSOnline 모듈 폐지 이후의 Microsoft 365 운영을 Microsoft Graph PowerShell로 이전하는 실무 가이드입니다. 연결과 스코프 설계, 인증서를 이용한 무인 실행, 사용자 현황 조사와 라이선스 집계의 정석 스크립트를 해설합니다.
-
PowerShell의 병렬 처리 ── ForEach-Object -Parallel과 Job의 구분
ForEach-Object -Parallel·Start-ThreadJob·Start-Job의 차이와 구분, $using:와 스레드 안전성, ThrottleLimit 정하는 법, 오히려 느려지는 경우까지 실무 관점에서 정리합니다.
-
PowerShell에서 외부 exe를 올바르게 호출하기 ── 인자의 따옴표·종료 코드·문자 깨짐의 함정
PowerShell에서 robocopy나 사내 EXE를 호출하면 인자가 깨지고, 종료 코드를 얻지 못하며, 출력이 깨집니다. PowerShell 7.3의 인자 전달 변경, 구문 분석 중지 토큰 --%, Start-Process의 용도 나누기까지 실무 관점에서 정리합니다.
-
Process Explorer / Handle / VMMap 실전 ── hang·누수·「파일 사용 중」을 지금 이 순간의 상태에서 추적하기
「점점 무거워진다」「파일을 지울 수 없다」「hang이 걸렸다」를 조사하는 Sysinternals 실전 제2탄입니다. Process Explorer의 핸들 검색·스레드 스택·누수 감시 컬럼, handle.exe, VMMap으로 메모리 내역을 나누는 방법을 실무 관점에서 설명합니다.
-
사용 중인 exe/DLL을 어떻게 교체할까 ── Restart Manager와 자동 업데이트의 「파일 사용 중」 문제
사용 중인 exe/DLL은 왜 교체할 수 없는가. 실행 중 파일 잠금과 「이름 변경은 가능하다」는 특성, Restart Manager로 점유 프로세스를 열거·종료·재시작하는 방법, rename-then-replace와 MoveFileEx의 재부팅 시 치환까지 C# 진단 코드와 함께...
-
키오스크 모드로 업무 단말을 고정한다 ── Assigned Access·Shell Launcher 선택과 운영 설계
접수 단말이나 장치 조작 화면처럼 특정 앱 전용 Windows 단말을 만드는 방법을 정리합니다. Assigned Access·Shell Launcher·멀티 앱 키오스크의 차이와 에디션 요건, PowerShell과 XML 설정 예, 자동 로그온과 비정상 종료 후 복구까지 실무 관점...
-
Windows의 시각 동기화(w32time)와 업무 시스템 ── 「로그 타임스탬프가 맞지 않는다」를 원리부터 해결하기
장치와 PC에서 로그 시각이 어긋나는 원인을 Windows Time 서비스(w32time)의 원리부터 설명합니다. 도메인 계층과 워크그룹의 기본 동작, w32tm 명령으로 하는 진단, 고정밀 시각과 가상 머신의 주의점, Stopwatch와 UTC를 함께 쓰는 로그 설계까지 정리합니다.
-
레지스트리의 32bit/64bit 리디렉션과 가상화의 함정 ── Wow6432Node와 「썼는데 값이 없다」 문제
32bit 앱의 HKLM\Software 쓰기가 Wow6432Node로 리디렉션되는 구조, UAC 가상화로 VirtualStore에 전달되는 조건, COM 등록이 bitness로 나뉘는 실무 피해, RegistryView와 reg.exe /reg:64로 올바르게 읽고 쓰기까지를 실...