Windows PC에서 DLL 오류 메시지가 나타나 곤란했던 적이 있으신가요? DLL 오류는 문제의 원인을 찾기 위해 여러 단계를 거쳐야 하는 경우가 많아 초보자에게 특히 답답한 문제로 꼽힙니다.
이 글에서는 가장 자주 발생하는 DLL 오류의 종류를 살펴보고, 이러한 성가신 문제를 단계별로 해결하는 방법까지 자세히 안내해 드립니다.
DLL이란 무엇인가?
문제를 해결하기 전에 오류 메시지의 의미를 이해하는 것이 도움이 됩니다. DLL은 Dynamic Link Library(동적 연결 라이브러리)의 약자입니다. 이 파일들은 Windows의 핵심 구성 요소로, 프로그램이 매번 기능을 처음부터 작성하지 않고도 다양한 작업을 수행할 수 있게 해줍니다.
예를 들어, 프로그램이 화면에 메시지를 표시하고 싶을 때 해당 DLL을 호출합니다. 개발자가 새로 만들 필요 없이 적절한 DLL을 사용해 대화 상자를 생성하는 방식입니다. 덕분에 프로그래머의 작업 효율이 높아지고 Windows 전반의 일관성도 유지됩니다.
그런데 문제가 생기면 DLL 파일이 사라질 수 있습니다. 하나의 DLL을 여러 프로그램이 동시에 공유할 수 있기 때문에, DLL 오류가 반드시 한 앱의 문제만을 의미하지는 않습니다. 이것이 바로 DLL 오류 해결이 까다로운 이유 중 하나입니다.
자주 발생하는 DLL 오류
예상할 수 있듯이, 어떤 DLL은 다른 것보다 오류 메시지에 더 자주 등장합니다. 문제를 일으키는 것으로 유명한 DLL들을 살펴보겠습니다.
MSVCP140, MSVCP120, MSVCP110, MSVCP100
이 네 가지는 모두 동일한 DLL의 서로 다른 버전(14.0, 10.0 등)입니다. MSVC는 Microsoft Visual C++를 의미하며, Windows 응용 프로그램에서 가장 널리 사용되는 형식 중 하나입니다.
설치된 프로그램 목록을 열어보면 Microsoft Visual C++ 20xx 재배포 가능 패키지(Redistributable)라는 항목이 여러 개 보일 가능성이 높습니다. 특정 버전의 패키지가 필요한 프로그램을 설치할 때마다 설치를 요구하며, 없으면 정상적으로 작동하지 않습니다.
이 파일은 수많은 응용 프로그램이 사용하기 때문에 오류에 자주 등장합니다. Skype 실행 시, WordPress 데스크톱 앱, 각종 게임에서 관련 문제가 보고된 바 있습니다.
MSVCR100, MSVCR71
이 두 DLL은 위 항목들의 짝꿍입니다. 앞선 파일 이름의 CP가 C++를 의미한다면, 이 파일들은 C 언어로 작성된 라이브러리를 포함합니다. 역시 같은 파일의 서로 다른 버전이며, 프로그램 호환성을 위해 여러 버전이 함께 설치되어 있을 가능성이 큽니다.
너무나 널리 쓰이는 파일이다 보니, 다양한 소프트웨어를 실행할 때 오류가 발생하기도 합니다.
VCRUNTIME140
Dynamic Link Library의 'Link'라는 단어에는 이유가 있습니다. VCRUNTIME140은 앞서 소개한 두 종류와 연관된 또 다른 DLL입니다. Visual C++ 라이브러리의 버전 7~13은 버전마다 다른 이름을 사용해 위와 같은 공통 파일들이 생겼습니다. 그러나 버전 14부터는 어느 언어를 사용하든 새로운 DLL에 연결해야 하며, 그 이름이 바로 버전마다 변경되는 VCRUNTIME입니다.
이 오류는 Adobe Creative Cloud 소프트웨어나 Kodi를 실행하려 할 때 발생하는 것으로 알려져 있습니다.
D3DX9_43
이번에는 조금 다른 계열의 DLL입니다. 파일 이름의 DX는 Microsoft DirectX, 즉 멀티미디어 게임과 앱을 구동하기 위한 API 모음을 가리킵니다. 제목의 43은 특정 버전 번호이므로 다른 숫자와 함께 나타날 수도 있습니다.
컴퓨터는 DirectX를 고사양 프로그램에서만 사용하기 때문에, 이 오류는 주로 비디오 게임을 시작할 때 나타납니다.
Lame_enc
Lame_enc는 PC를 비난하는 말이 아닙니다. 오디오 소프트웨어가 MP3로 변환할 수 있게 해주는 LAME(LAME Ain't an MP3 Encoder) 인코더를 가리킵니다. 소프트웨어 특허 문제 때문에 프로그램이 MP3 인코딩 소프트웨어를 법적으로 포함할 수 없어, LAME은 직접 설치해야 합니다.
이 오류를 겪는 대부분의 사용자는 Audacity에서 사용하기 위해 LAME을 설치한 경우입니다. Audacity를 사용하지 않는다면 MP3를 불러오거나 저장하려 할 때 이 오류를 볼 가능성이 높습니다.
아래의 문제 해결 단계를 진행하기 전에, 실제로 LAME이 설치되어 있는지 먼저 확인하세요. Audacity does not export MP3 files directly...(Audacity는 MP3 파일을 직접 내보내지 않습니다...)로 시작하는 메시지가 보인다면 LAME을 다운로드한 후 다시 시도해 보세요.
NTDLL
목록 중 가장 심각한 오류일 것입니다. NTDLL은 NT 커널 함수를 처리하는 파일입니다. NT는 예전에는 New Technology의 약자로 Windows 제품명에 포함되었지만, 지금은 기술 정보에만 남아 있습니다.
이 DLL 관련 오류는 대개 드라이버 문제나 Windows와 프로그램 간 인터페이스 충돌로 인해 발생합니다. 이 파일은 저수준 시스템 기능을 담당하기 때문에, 충돌이 발생하면 Windows 부팅조차 되지 않는 경우가 많습니다.
DLL 오류 해결 방법
주요 오류들을 살펴봤으니, 이제 일반적인 문제 해결 과정을 단계별로 안내하겠습니다. 아래는 범용적인 절차이므로 모든 오류에 적용되지 않을 수 있지만, DLL 파일 누락으로 인한 오류라면 이 순서대로 진행하면 도움이 됩니다.
- 재부팅
- 누락된 DLL 확인
- Windows 업데이트 설치
- 해당 프로그램 재설치
- 관련 드라이버 업데이트
- 시스템 파일 검사 실행
- 악성코드 검사
- DLL 재등록
- 시스템 복원 시도
- Windows 초기화
0단계: 하지 말아야 할 것
DLL 오류를 검색하다 보면 필요한 DLL 파일 하나만 다운로드하면 모든 문제가 해결된다고 주장하는 웹사이트를 반드시 만나게 됩니다. 이런 사이트에서 DLL 파일을 다운로드하지 마세요.
드라이버 업데이트 유틸리티와 마찬가지로, 이런 사이트들이 DLL을 어디서 가져왔는지 알 방법이 없습니다. 거의 확실히 비공식 파일이며, 대부분 오래되었고 악성코드가 포함되어 있을 수도 있습니다. 게다가 DLL 하나만 교체해서는 문제가 해결되지 않는 경우가 많아, 새 파일을 찾아 헤매는 것은 시간 낭비일 뿐입니다.
또한 오류를 일으키는 특정 DLL 파일로 바로 뛰어들거나 Windows 레지스트리를 함부로 건드리지 마세요. 이런 고급 작업은 대부분의 경우 불필요하며, 오히려 더 큰 문제를 일으킬 수 있습니다.
1단계: 재부팅
대부분의 문제 해결과 마찬가지로, 재부팅부터 시도해야 합니다. 운이 좋다면 사소한 일시적 오류일 뿐이며, 재부팅만으로 해결될 수 있습니다. 작업을 저장하고 재부팅한 후, 오류를 일으켰던 작업을 다시 시도해 보세요.
2단계: 누락된 DLL 확인
Windows가 DLL 폴더를 보호하기 때문에 가능성은 낮지만, 실수로 DLL을 삭제했을 수도 있습니다. 휴지통에서 해당 DLL을 찾아 있다면 복원하세요. 이미 휴지통을 비웠다면 복구 프로그램을 사용해 되살릴 수 있습니다.
3단계: Windows 업데이트 설치
많은 DLL 오류가 Microsoft 배포 라이브러리와 관련이 있으므로, Windows 업데이트를 확인하면 최신 버전을 받아 문제를 해결할 수 있습니다. 업데이트를 미루고 있었다면 특히 중요합니다.
사용 가능한 업데이트를 모두 설치한 후, 시스템을 다시 재부팅하여 적용되었는지 확인하세요.
4단계: 해당 프로그램 재설치
특정 프로그램이 DLL 파일에 접근할 때 문제를 일으키는 경우가 있습니다. 오류를 발생시키는 프로그램을 제거한 후 최신 버전을 새로 설치해 보세요. 상황에 따라 다소 번거로울 수 있지만 중요한 단계입니다.
5단계: 관련 드라이버 업데이트
특정 하드웨어를 다룰 때 DLL 오류가 나타난다면, 해당 드라이버를 업데이트해야 합니다. 예를 들어 인쇄할 때마다 오류가 발생한다면 프린터 드라이버를, 게임 실행처럼 그래픽 집약적인 작업에서 오류가 발생한다면 그래픽 카드 드라이버를 업데이트해 보세요.
6단계: 시스템 파일 검사 실행
다음으로 SFC(System File Checker) 명령을 실행해 보세요. Windows가 다양한 시스템 파일을 검사하여 누락되거나 손상된 파일을 자동으로 복구해 줍니다.
시작 메뉴에 cmd를 입력하고, 해당 항목을 마우스 오른쪽 버튼으로 클릭한 후 관리자 권한으로 실행을 선택하세요. 그다음 아래 명령을 입력합니다:
sfc /scannow
검사에는 시간이 걸리므로 여유 있을 때 실행하세요. 완료되면 Windows가 문제 발견 여부를 알려줍니다.
7단계: 악성코드 검사
DLL 오류가 반드시 악성코드 때문인 것은 아니지만, 그럴 가능성도 있습니다. 과거 감염이 DLL 파일을 손상시켰거나 지금 조작하고 있을 수도 있습니다. 백신 프로그램으로 검사한 후, 무료 버전의 Malwarebytes로 한 번 더 검사하여 가능성을 배제하세요.
8단계: DLL 재등록
이 시점에서는 해당 DLL 파일의 등록을 해제했다가 다시 등록해 볼 가치가 있습니다. 이렇게 하면 Windows가 잠시 DLL을 '잊었다가' 구성 요소를 다시 설정하게 되어 문제가 해결될 수 있습니다.
시작 메뉴에 cmd를 입력하고 마우스 오른쪽 버튼으로 클릭한 후 관리자 권한으로 실행을 선택해 명령 프롬프트를 열세요. 아래 명령을 한 줄씩 입력하되, 문제가 되는 DLL의 파일 이름으로 바꿔 입력합니다:
regsvr32 /u FILENAME.dll
regsvr32 FILENAME.dll
9단계: 시스템 복원 시도
오류가 최근에 시작되었다면, 시스템 복원을 통해 과거 시점으로 돌아가 문제를 되돌릴 수 있습니다.
시작 메뉴에 제어판을 입력해 열고 복구를 선택한 다음, 시스템 복원 열기를 클릭하세요. 화면 안내에 따라 복원 시점을 선택하면 Windows가 나머지 과정을 진행합니다.
시스템 복원에 문제가 발생하면 관련 문제 해결 가이드를 참고하세요.
10단계: Windows 초기화
여기까지 왔다면 사실상 할 수 있는 문제 해결은 거의 다 한 것입니다. 사용 가능한 Windows 및 드라이버 업데이트를 모두 설치했고, 프로그램을 재설치했으며, 명령 프롬프트 도구를 시도했고, 최근에 재부팅까지 했다면 이제 Windows 초기화를 진행하세요.
다행히 이 PC 초기화 기능을 사용하면 개인 파일을 유지한 채 Windows를 새로 설치할 수 있습니다. 이 단계까지 가지 않기를 바라지만, 위의 모든 문제 해결을 마쳤다면 더 많은 시간을 허비하기보다는 초기화하는 편이 현명합니다.
어떤 DLL 오류가 당신을 괴롭히고 있나요?
이제 몇 가지 흔한 DLL 오류의 원인과 해결 방법을 알게 되셨습니다. 안타깝게도 DLL 오류는 가장 성가신 문제 중 하나이긴 하지만, 몇 번의 빠른 업데이트와 재부팅만으로 사라지기를 바랍니다.