이 글을 3줄로 요약하면
· 이 문구는 COM 오류 0x80040154(REGDB_E_CLASSNOTREG), 즉 "등록된 클래스를 못 찾았다"는 뜻입니다.
· 파일이 깨진 게 아니라 연결 정보가 레지스트리에서 사라졌거나 어긋난 상태입니다.
· 그래서 어디서 떴는지가 전부입니다. 판별표에서 상황을 먼저 고르고 그 섹션만 처리하면 됩니다.
"클래스"가 정확히 무엇을 가리키는가
여기서 말하는 클래스는 파일이 아니라 등록부의 한 줄입니다.
"클래스가 등록되지 않았습니다"는 윈도우의 구성 요소 체계인 COM이 내는 오류 문구입니다. Microsoft 문서의 COM 오류 코드 목록에서 이 값은 0x80040154, 기호 이름은 REGDB_E_CLASSNOTREG, 설명은 "Class not registered(클래스가 등록되지 않음)"입니다.
COM에서 클래스는 "이 기능을 실행할 구성 요소"를 가리키는 이름표입니다. 프로그램은 파일 경로가 아니라 CLSID라는 고유 번호로 구성 요소를 요청하고, 윈도우는 레지스트리의 등록부를 뒤져 그 번호에 해당하는 파일을 찾아 올립니다.
그래서 이 오류는 "파일이 깨졌다"가 아니라 "찾아갈 주소가 등록부에 없다"는 뜻에 가깝습니다. 실제로 파일은 멀쩡히 폴더에 있는데도 이 문구가 뜨는 경우가 흔합니다. 고칠 자리가 파일이 아니라 등록 정보라는 점이 이 오류의 핵심입니다.
등록 정보가 사라지는 계기는 대체로 셋입니다. 프로그램을 설치·제거하며 연결이 덮이거나 지워진 경우, 업데이트가 중간에 끊겨 등록만 빠진 경우, 그리고 시스템 파일이 손상돼 등록부 자체가 온전하지 않은 경우입니다.
레지스트리부터 손대지 않습니다
CLSID 키를 직접 만들거나 값을 바꾸라는 안내가 돌아다니지만, 어떤 구성 요소인지 특정하지 않은 채 손대면 되돌리기 어렵습니다. 아래 A~D는 모두 등록 정보를 정상 절차로 다시 만들게 하는 방법입니다.
어디서 떴는지로 원인 좁히기
같은 문구라도 뜬 자리가 다르면 완전히 다른 문제입니다.
| 어디서 떴는가 | 유력한 원인 | 먼저 볼 항목 |
|---|---|---|
| 사진·이미지 파일을 더블클릭할 때 | 파일 형식에 걸린 기본 앱 연결이 어긋남 | 원인 A → 3번 |
| 특정 프로그램 하나에서만 반복 | 그 프로그램이 쓰는 DLL이 등록되지 않음 | 원인 B → 4번 |
| 여러 앱에서 동시에, 갑자기 시작됨 | 시스템 파일·구성 요소 저장소 손상 | 원인 C → 5번 |
| 사진 앱·카메라 앱이 아예 안 켜짐 | 앱 패키지 등록 실패 | 원인 D → 6번 |
| 원격 데스크톱 연결 직전에 끊김 | 업데이트 누락·중단 | 원인 D → 6번 |
| 특정 파일 하나만 안 열리고 나머지는 정상 | 시스템이 아니라 그 파일 자체 손상 | 8번 FAQ 참고 |
원인 A파일 형식과 기본 앱 연결이 어긋났다
사진·이미지에서만 뜬다면 여기서 끝나는 경우가 많습니다.
이미지 뷰어·PDF 뷰어·압축 프로그램처럼 파일 형식을 가로채는 프로그램은 설치할 때 자기 앱을 기본값으로 등록합니다. 그 프로그램을 지우면 등록만 남고 실제 구성 요소는 사라져, 윈도우가 없는 대상을 부르게 됩니다.
1파일 형식별 기본 앱을 다시 지정한다
Win + I → 앱 → 기본 앱 → 위쪽 검색창에 .jpg처럼 확장자를 입력합니다. 나오는 항목을 눌러 다른 앱으로 바꿨다가 원래 앱으로 되돌리면 연결이 새로 기록됩니다.
2파일 쪽에서 직접 연결 프로그램을 고른다
문제의 파일을 우클릭 → 연결 프로그램 → 다른 앱 선택 → 원하는 앱을 고르고 항상 이 앱을 사용에 체크합니다. 확장자별로 따로 걸리므로 .png·.jpg·.heic처럼 쓰는 형식마다 확인합니다.
3최근에 설치·제거한 프로그램을 되짚는다
증상이 시작된 시점 근처에 이미지 뷰어나 압축 프로그램을 설치·제거했다면 그 프로그램이 원인일 가능성이 큽니다. 다시 설치했다가 정상 제거 절차로 지우면 등록도 함께 정리됩니다.
이 방법이 안 통하는 경우
기본 앱을 바꿔도 같은 문구가 뜨거나, 앱 선택 목록 자체가 비어 있다면 연결이 아니라 그 앱의 구성 요소가 등록되지 않은 상태입니다. 4번 또는 6번으로 갑니다.
원인 B구성 요소(DLL)가 등록되지 않았다
특정 프로그램 하나에서만 반복될 때의 자리입니다.
COM 구성 요소가 담긴 DLL은 파일을 복사하는 것만으로는 쓸 수 없고, 레지스트리에 등록되어야 호출됩니다. 설치 관리자가 이 등록 단계에서 권한 부족 등으로 실패하면 파일은 있는데 등록만 빠진 상태가 됩니다.
1대상 DLL이 실제로 있는지 먼저 확인한다
Win + E → 주소창에 C:\Windows\System32를 붙여넣고 검색창에 파일 이름을 입력합니다. 32비트 프로그램용 DLL은 C:\Windows\SysWOW64에 있습니다. 파일이 아예 없다면 등록이 아니라 그 프로그램 재설치가 먼저입니다.
2관리자 권한으로 해당 DLL을 등록한다
시작 버튼 우클릭 → 터미널(관리자)에서 실행합니다. 탐색기 관련 오류라면 위 파일이 대표적입니다. "DllRegisterServer가 성공했습니다" 알림창이 뜨면 등록된 것입니다.
3적용을 위해 탐색기를 다시 시작한다
Ctrl + Shift + Esc → 프로세스 탭에서 Windows 탐색기를 선택하고 다시 시작을 누르거나, PC를 재부팅합니다.
아무 DLL이나 등록하지 않습니다
regsvr32는 COM 등록 함수를 가진 파일만 등록할 수 있습니다. 대상이 아닌 파일에 실행하면 "모듈을 로드하지 못했습니다" 또는 "DllRegisterServer 진입점을 찾을 수 없습니다"가 뜹니다. 이런 메시지가 나오면 그 파일은 대상이 아니니 다른 원인을 봐야 합니다.
이 방법이 안 통하는 경우
등록에 성공했는데도 그대로거나, 어떤 DLL이 문제인지 특정할 수 없다면 추측으로 여러 파일을 등록하지 않습니다. 7번에서 이벤트 로그로 실패한 모듈 이름을 먼저 확보합니다.
원인 C시스템 파일이 손상됐다
한 앱이 아니라 여기저기서 동시에 뜰 때의 자리입니다.
사진·계산기·캡처 도구·원격 데스크톱처럼 서로 무관한 기능에서 같은 문구가 뜬다면 개별 앱 문제로 보기 어렵습니다. 등록부를 포함한 시스템 구성 요소가 온전하지 않을 가능성이 큽니다.
1시스템 파일 검사를 먼저 돌린다
시작 버튼 우클릭 → 터미널(관리자)에서 실행합니다. 검사 100%까지 기다립니다. 손상 파일을 찾으면 자동으로 복구합니다.
2복구에 실패했을 때만 DISM을 쓴다
"일부를 복구할 수 없었습니다"가 나올 때 사용합니다. sfc가 복구에 쓸 원본 이미지를 온라인에서 받아 보강합니다. 완료 후 sfc /scannow를 한 번 더 돌립니다.
순서를 바꾸면 시간만 듭니다
DISM을 먼저 돌리는 안내가 많지만, sfc가 정상으로 끝나면 DISM은 필요 없습니다. sfc → (실패 시) DISM → sfc 재실행 순서가 가장 낭비가 적습니다. 중간에 창을 닫지 않습니다.
이 방법이 안 통하는 경우
sfc가 "위반 사항을 발견하지 못했습니다"로 끝났다면 시스템 파일은 정상입니다. 그렇다면 원인은 개별 앱 쪽이므로 6번으로 이동합니다.
원인 D앱 패키지나 업데이트가 어긋났다
사진 앱·카메라 앱·원격 데스크톱에서 뜰 때의 자리입니다.
스토어 앱은 설치할 때 자기 구성 요소를 시스템에 등록합니다. 업데이트가 중간에 끊기면 앱은 목록에 남고 등록만 어긋난 상태가 되어, 실행 순간 이 문구가 뜹니다. 원격 데스크톱처럼 시스템 기능이 붙어 있는 항목도 마찬가지입니다.
1밀린 업데이트를 먼저 모두 설치한다
Win + I → 좌측 맨 아래 Windows 업데이트 → 업데이트 확인. 재부팅이 필요한 항목까지 끝낸 뒤 증상을 다시 확인합니다.
2해당 앱을 복구하거나 재설정한다
Win + I → 앱 → 설치된 앱 → 문제 앱 우측 점 세 개(⋯) → 고급 옵션 → 아래로 스크롤해 복구를 먼저 누릅니다. 데이터가 유지됩니다. 그래도 안 되면 재설정을 누릅니다.
3증상 시작 시점이 뚜렷하면 복원 지점을 쓴다
특정 프로그램 설치 직후부터 시작됐다면 Win + R → rstrui로 복원 지점 목록을 열어, 오류가 없던 시점의 지점을 고릅니다. 복원 지점이 없으면 이 방법은 쓸 수 없습니다.
이 방법이 안 통하는 경우
복구·재설정 후에도 같은 문구가 뜬다면 그 앱이 부르는 다른 구성 요소가 문제입니다. 7번에서 이벤트 로그로 실제 실패 지점을 확인한 뒤 4번으로 되돌아갑니다.
어떤 구성 요소가 빠졌는지 확인하는 법
추측으로 DLL을 등록하기 전에, 로그에 남은 이름을 먼저 읽습니다.
화면에 뜨는 문구는 클래스 이름도 CLSID도 알려주지 않습니다. 하지만 윈도우는 실행 실패를 이벤트 로그에 더 자세히 남깁니다. 여기서 오류 모듈 이름이나 예외 코드를 확보하면, 어느 원인 섹션으로 돌아가야 하는지가 정해집니다.
1이벤트 뷰어에서 실패 기록을 연다
Win + R → eventvwr.msc → Windows 로그 → 응용 프로그램. 오류가 난 시각과 가까운 빨간 오류 항목을 클릭하고 아래 일반 탭에서 오류 모듈 이름 줄을 확인합니다.
2모듈 이름을 원인 섹션으로 되짚는다
이름이 특정 프로그램 폴더 안의 DLL이면 원인 B, 윈도우 시스템 폴더의 파일이면 원인 C, 스토어 앱 패키지 폴더면 원인 D로 갑니다. 추측 대신 이름으로 고를 수 있게 됩니다.
3CLSID가 적혀 있으면 등록부에서 대조한다
로그나 프로그램 오류 창에 중괄호로 둘러싼 번호가 보이면, Win + R → regedit → 주소창에 HKEY_CLASSES_ROOT\CLSID를 붙여넣고 그 번호가 있는지 찾습니다. 확인만 하고 값을 고치지 않습니다. 없다면 등록이 빠진 것이 확인된 것이고, 고치는 방법은 4번·6번입니다.
자주 묻는 질문
작업 중 자주 막히는 지점만 모았습니다.
Q.재부팅만 해도 사라지나요?
A.등록이 방금 갱신됐는데 실행 중이던 프로세스가 옛 상태를 들고 있는 경우에는 재부팅으로 사라집니다. 하지만 재부팅 후에도 반복된다면 등록 정보 자체가 빠진 것이므로 원인 A~D 순서로 확인해야 합니다.
Q.sfc나 DISM 명령이 실행되지 않습니다.
A.관리자 권한이 아닌 창에서 실행한 경우가 가장 흔합니다. 시작 버튼을 우클릭해 터미널(관리자)로 연 뒤, 창 제목에 관리자가 붙어 있는지 확인하고 다시 실행합니다.
Q.regsvr32를 실행했는데 아무 반응이 없습니다.
A.성공하면 작은 알림창이 뜨지만 놓치기 쉽습니다. 반대로 "모듈을 로드하지 못했습니다"나 "진입점을 찾을 수 없습니다"가 떴다면 그 파일은 COM 등록 대상이 아닙니다. 그 경우 등록을 반복하지 말고 7번으로 돌아가 대상을 다시 확인합니다.
Q.특정 사진 한 장만 안 열리고 나머지는 잘 열립니다.
A.그 경우는 시스템 문제로 보기 어렵습니다. 같은 파일을 다른 기기에서 열어 보거나 원본을 다시 받아 확인하는 편이 빠릅니다. 같은 형식의 다른 파일도 함께 안 열릴 때만 원인 A로 갑니다.
Q.레지스트리에 CLSID 키를 직접 만들어 넣어도 되나요?
A.권장하지 않습니다. 클래스 등록은 키 하나가 아니라 여러 항목이 맞물린 구조라 일부만 만들면 다른 오류로 바뀔 뿐입니다. 등록은 regsvr32나 앱 복구·재설치처럼 정상 절차로 만들게 하는 편이 안전합니다. 확인 목적으로 볼 때도 값을 고치지 말고, 손대야 한다면 파일 → 내보내기로 백업부터 합니다.
함께 보면 좋은 글
등록·모듈 문제로 이어지는 오류들입니다.
0x80004005 오류, 지정되지 않은 오류의 상황별 해결 순서 같은 HRESULT 체계에서 원인이 코드에 실려 있지 않은 경우입니다 · 눌러서 확인하기 → 0xc0000135 오류, 응용 프로그램을 시작하지 못했습니다 해결 순서 구성 요소가 빠져 실행 자체가 막힐 때 함께 보면 좋습니다 · 눌러서 확인하기 → 런타임 오류 R6034, C 런타임 라이브러리 오류 해결 순서 등록·매니페스트가 어긋났을 때 나타나는 다른 형태입니다 · 눌러서 확인하기 →참고 문서 · Microsoft Learn — COM 오류 코드 (REGDB_E_CLASSNOTREG 0x80040154)
참고 문서 · Microsoft Learn — regsvr32 명령 참조
참고 문서 · Microsoft 지원 — Windows에서 시스템 파일 검사기 사용




