애드소프트 기술블로그

개발·서버 운영 실무 기록

애드소프트 박재호입니다. IIS·ASP.NET 웹 서비스와 메일서버를 직접 운영하고, Unity 게임과 데스크톱 앱을 만들며 겪은 문제와 해결 과정을 기록합니다.

최신 글

audiodg.exe CPU 높음 — Windows 오디오 장치 그래프 격리의 정체와 오디오 향상·제조사 효과 확인법

audiodg.exe(Windows 오디오 장치 그래프 격리)는 소리를 섞고 효과를 입히는 Windows 기본 프로세스로, CPU 가 높을 때는 대개 오디오 향상·이퀄라이저·마이크 효과 같은 효과 모듈이 원인이다. 실제 PC 에서 부모 서비스와 메모리, 출력 장치마다 끼어 있는 Realtek·Windows 효과 모듈을 레지스트리로 확인하고 원인을 좁히는 순서를 정리했다.

taskhostw.exe 는 무엇인가 — Windows 작업을 위한 호스트 프로세스와 backgroundTaskHost.exe, 어떤 작업인지 찾기

taskhostw.exe 는 작업 스케줄러가 DLL 형태의 예약 작업을 돌릴 때 쓰는 Windows 기본 그릇이고, backgroundTaskHost.exe 는 Store 앱의 백그라운드 작업을 잠깐 돌리는 그릇이다. 실제 PC 에서 taskhostw 두 개가 각각 어떤 예약 작업을 담고 있는지 시작 시각과 올라온 DLL 로 찾고, 종료할 때 뜨는 "끝내지 못하게 막고 있음" 화면의 의미를 정리했다.

0x80070643 업데이트 설치 오류 — 1603 "설치 중 치명적 오류"의 정체와 업데이트 기록 확인법

0x80070643 은 Win32 오류 1603 ERROR_INSTALL_FAILURE, 설치 프로그램이 치명적 오류로 멈췄다는 뜻 외에는 아무것도 말해 주지 않는 코드다. 복구 환경·Defender·.NET 업데이트에서 유명해진 사례를 공식 안내 기준으로 요약하고, Get-HotFix 와 Windows 업데이트 이벤트로 내 PC 업데이트 기록을 확인하며 실패 원인에 다가가는 순서를 정리했다.

StartMenuExperienceHost.exe 는 무엇인가 — ShellExperienceHost·TextInputHost·sihost 와 '일시 중단됨'의 정체

StartMenuExperienceHost.exe 는 시작 메뉴 화면을 그리는 Windows 기본 프로세스이고, ShellExperienceHost·TextInputHost·sihost 도 알림·입력 패널·셸 기반을 나눠 맡는 정상 프로세스다. 실제 PC 에서 경로와 서명, 부모, 메모리, 스레드 39개가 모두 멈춰 있던 '일시 중단됨' 상태를 확인하고 시작 메뉴가 안 열릴 때 볼 순서를 정리했다.

0x80070005 "액세스가 거부되었습니다" — 오류 코드 읽는 법과 어디서 막혔는지 찾기

0x80070005 는 Win32 오류 5번 ERROR_ACCESS_DENIED 를 HRESULT 로 감싼 값이다. 앞의 0x8007 이 "Win32 오류"라는 표시라서 다른 0x8007xxxx 코드도 같은 방법으로 풀린다. 내 PC 이벤트 로그에 실제로 남은 0x80070005 를 찾아 어느 작업이 어떤 권한에 막혔는지 따라가고, 업데이트·스토어·설치에서 볼 때 확인할 순서를 정리했다.

SearchHost.exe 와 SearchIndexer.exe 는 무엇인가 — 시작 메뉴 검색 창과 Windows Search 색인, CPU·디스크가 높을 때

SearchHost.exe 는 작업 표시줄·시작 메뉴의 검색 창을 그리는 앱이고, SearchIndexer.exe 는 Windows Search 서비스가 파일·메일 색인을 만드는 프로세스다. 이름은 비슷해도 하는 일이 다르다. 실제 PC 에서 SearchHost 와 그 뒤의 WebView2 6개, 그리고 '사용 안 함'으로 되어 있던 WSearch 서비스를 확인하고, 색인 중 CPU·디스크가 높을 때 볼 곳을 정리했다.

VCRUNTIME140.dll·MSVCP140.dll 이(가) 없어 코드 실행을 진행할 수 없습니다 — Visual C++ 재배포 패키지 확인과 x86·x64

VCRUNTIME140.dll·MSVCP140.dll 이 없다는 창은 Visual C++ 재배포 패키지(2015~2022 통합, 버전 14.x)가 없거나 비트가 맞지 않다는 뜻이다. 사본으로 같은 창을 띄워 보고, 레지스트리 VC\Runtimes 와 Uninstall 키로 설치 버전을 확인하는 법, x86·x64 를 둘 다 깔아야 하는 이유, DLL 다운로드 사이트를 피해야 하는 까닭을 정리했다.

explorer.exe(Windows 탐색기) CPU 높음·멈춤 — 작업 표시줄까지 맡는 셸, 다시 시작하는 법과 셸 확장 찾기

explorer.exe 는 파일 탐색기 창뿐 아니라 작업 표시줄과 바탕 화면까지 그리는 Windows 셸 프로세스다. 그래서 멈추면 화면 전체가 굳는다. 실제 PC 에서 explorer.exe 의 메모리·핸들·스레드와 자식 프로세스, 오른쪽 클릭 메뉴에 붙은 셸 확장 34개를 확인하고, 작업 관리자의 '다시 시작'과 원인 DLL 을 찾는 순서를 정리했다.

0xc000007b — 응용 프로그램을 제대로 시작하지 못했습니다, 64비트 프로그램과 32비트 DLL 이 섞였을 때

0xc000007b 는 STATUS_INVALID_IMAGE_FORMAT, 프로그램이 비트가 다른 DLL 을 불러왔다는 뜻이다. 64비트 프로그램 사본 옆에 32비트 DLL 을 두어 같은 오류 창을 띄워 보고, PE 헤더의 Machine 값(0x14c, 0x8664)을 PowerShell 로 읽어 DLL 비트를 확인하는 법, System32 와 SysWOW64 가 이름과 반대인 이유를 정리했다.

csrss.exe·smss.exe·wininit.exe·winlogon.exe·services.exe 는 무엇인가 — 부팅 순서와 부모 관계, csrss 가 두 개인 이유

csrss.exe, smss.exe, wininit.exe, winlogon.exe, services.exe 는 Windows 가 부팅할 때 가장 먼저 뜨는 핵심 프로세스이고 끌 수 없는 것이 정상이다. 실제 PC 에서 운영 체제 시작 후 9초 안에 이들이 뜬 순서, 세션 0과 1로 갈린 부모 관계, csrss 가 두 개인 이유, services.exe 아래 151개 자식, 가짜를 구별하는 기준을 정리했다.