게임이든 일상적으로 사용하는 프로그램이든, 설치나 실행 중에 오류를 마주하는 일만큼 답답한 경험도 드물 것입니다. 컴퓨터를 오래 사용해 온 숙련된 사용자라 하더라도 Windows의 특정 오류를 수정하려면 골치 아픈 경우가 많습니다.
일반적으로 소프트웨어나 메모리에 손상이 있으면 운영체제(여기서는 Windows)가 경고 메시지를 통해 알려줍니다. 접근이 거부되면 Exception_Access_Violation이라는 문구와 함께 오류 코드 또는 메모리 주소가 표시되는, 이른바 '액세스 위반(access violation)' 오류가 나타납니다. 경우에 따라 특정 모듈 이름이 함께 표시되며, 이것이 문제의 원인일 수 있습니다.
액세스 위반이란 무엇이고, 왜 발생할까요?
'주소 액세스 위반' 오류는 Windows 운영체제에서만 발생합니다. 이 오류를 겪고 있다면 실행하려는 프로그램이 보호된 메모리 주소에 접근하려고 시도했다는 의미입니다.
이때 해당 프로그램은 그 메모리 주소에 접근할 권한이 없기 때문에 시스템이 접근 시도를 거부하게 됩니다. 즉, 현재 그 주소를 사용 중인 프로그램 외에는 접근이 허용되지 않는 것이죠.
숫자 오류 코드는 무엇을 의미할까?
오류에는 보통 숫자 코드가 함께 표시됩니다. 코드 길이는 대개 7~10자리입니다. 예를 들어 0xC0000005는 광범위한 액세스 위반 오류로, 소리 재생이나 제어판 접근이 막히는 현상을 일으킬 수 있습니다.
숫자 오류 코드가 나타나면 예외 매개변수(문자와 숫자 조합)를 읽어 디버깅할 수 있습니다. 첫 번째 매개변수(0)는 위반 유형을, 두 번째 매개변수(1)는 주소를 알려줍니다. 이 코드를 활용하면 문제의 원인과 해결책을 파악하는 데 큰 도움이 됩니다.
주소 액세스 위반 오류를 해결하는 6가지 방법
아래에서 누구나 따라 할 수 있는 6가지 해결 방법을 단계별로 안내해 드립니다.
1. 악성코드 감염 여부 검사하기
시스템 내 하나 이상의 프로그램이 악성코드에 감염되었을 가능성이 있습니다. 악성코드는 메모리 시스템을 손상시켜 이 오류를 유발할 수 있습니다.
오류가 발생하기 전에 갑자기 경고창이 뜨거나 가짜 브라우저 창이 열리는 등 이상 징후를 목격했다면, 정밀하고 깊이 있는 바이러스 검사를 진행해야 합니다.
내장된 백신 프로그램으로 아무것도 발견되지 않았다면, 다른 백신 소프트웨어로 한 번 더 검사해 보는 것이 좋습니다. 악성코드가 실제로 존재했다면 제거하는 것만으로도 문제가 해결될 수 있습니다.
2. DEP 예외 목록에 프로그램 추가하기
악성코드 검사 결과 컴퓨터가 안전하다면, 실행하려는 프로그램을 데이터 실행 방지(DEP) 예외 목록에 추가해 보세요. 이렇게 하면 오류 코드가 표시되더라도 프로그램을 실행할 수 있습니다. 아래 단계를 따르세요.
- 검색창에 '제어판'을 입력하고 엽니다.
- '시스템 및 보안'을 선택합니다.
- 시스템 메뉴에서 '고급 시스템 설정'을 클릭합니다.
- '고급' 탭에서 성능 섹션의 '설정' 버튼을 누릅니다.
- 상단의 '데이터 실행 방지(DEP)' 탭으로 이동합니다.
- '선택한 프로그램과 서비스를 제외한 모든 프로그램과 서비스에 대해 DEP 사용' 옵션을 선택합니다.
- '추가' 버튼을 클릭하고 해당 프로그램의 .exe 파일을 찾습니다.
- 목록에 추가한 뒤 '적용'과 '확인'을 눌러 변경 사항을 저장합니다.
프로그램을 다시 실행해 오류가 사라졌는지 확인하세요. 해결되었다면 축하드립니다! 그래도 같은 오류가 발생한다면 다음 방법을 계속 시도해 보세요.
3. 사용자 계정 컨트롤(UAC) 임시 비활성화하기
Java 기반 프로그램을 설치하거나 실행할 때 이 오류가 자주 발생합니다. 이 경우 사용자 계정 컨트롤(UAC)을 일시적으로 비활성화하면 오류를 피할 수 있습니다.
다만 이 방법은 약간의 보안 위험을 동반하므로 본인 책임하에 진행해야 합니다. 필요한 앱을 실행하는 동안에만 UAC를 끄고, 작업 후 반드시 다시 켜는 것이 좋습니다. 아래 단계를 따르세요.
- 검색창에 '제어판'을 입력하고 엽니다.
- '사용자 계정'을 찾아 두 번 클릭합니다.
- 마지막 옵션인 '사용자 계정 컨트롤 설정 변경'을 선택합니다.
- 슬라이더를 맨 아래 '알리지 않음'으로 내린 뒤 '확인'을 누릅니다.
- 프로그램을 다시 실행해 봅니다.
프로그램이 정상적으로 실행되었다면, 보안을 위해 UAC 설정을 원래대로 되돌리는 것을 잊지 마세요.
4. 프로그램이 읽기 전용 모드인지 확인하기
프로그램 파일이 읽기 전용 모드로 설정되어 있으면 접근이 거부되어 위반 오류가 발생합니다. 아래 단계로 읽기 전용 여부를 확인하세요.
- 바탕 화면의 바로 가기를 찾아 마우스 오른쪽 버튼으로 클릭합니다.
- 메뉴에서 '속성'을 선택합니다.
- 창 상단의 '일반' 탭으로 이동합니다.
- 특성 섹션에서 '읽기 전용'에 체크가 되어 있지 않은지 확인합니다.
- 체크되어 있다면 체크를 해제합니다.
- '적용' 또는 '확인'을 눌러 변경 사항을 저장합니다.
바탕 화면에 바로 가기가 없다면 새로 만들어 같은 과정을 진행하거나, .exe 실행 파일을 직접 오른쪽 클릭해 위 단계를 따르면 됩니다.
5. RAM 불량 여부 점검하기
안타깝지만, 과거 PC가 심각한 악성코드에 감염되어 RAM(랜덤 액세스 메모리) 일부에 물리적인 손상이 생겼다면 그것이 이 오류의 원인일 수 있습니다. RAM 손상 여부는 다음과 같이 확인할 수 있습니다.
- 검색창에 'Windows 메모리 진단'을 입력합니다.
- 프로그램을 실행합니다.
- 첫 번째 옵션인 '다시 시작하여 문제 확인'을 선택합니다.
- 진단이 완료될 때까지 기다렸다가 결과를 확인합니다.
RAM에 손상이 확인되면 교체하는 것이 좋습니다.
6. 문제가 되는 프로그램 재설치하기
실행하려는 프로그램 자체에 결함이 있거나, 처음부터 올바르게 설치되지 않았을 가능성도 있습니다. 이는 Windows 프로그램에서 다양한 오류를 일으키는 가장 흔한 원인 중 하나입니다. 프로그램을 재설치해 문제가 지속되는지 확인해 보세요. 먼저 아래 방법으로 제거합니다.
- 검색창에 '설정'을 입력하거나 Windows 키 + I를 동시에 누릅니다.
- 메뉴에서 '앱'을 선택합니다.
- 목록에서 실행되지 않는 애플리케이션을 찾습니다.
- '제거'를 클릭합니다.
제어판을 통해서도 제거할 수 있습니다. 제어판에서 '프로그램 및 기능'을 연 뒤 목록에서 해당 프로그램을 찾아 '제거' 버튼을 클릭하면 됩니다.
완전히 제거한 후 컴퓨터를 재시작하고, 프로그램을 새로 설치해 보세요. 대부분의 경우 이 과정만으로 오류가 해결됩니다.