한 가지 철학적인 질문을 던져보겠습니다. 명확한 증상과 함께 잘 정의된 오류 메시지가 나타나는 문제가 좋습니까, 아니면 겉으로는 아무런 증상이 없으면서도 무슨 문제인지 알 수 없는 애매한 메시지만 남기는 문제가 좋습니까? 저는 개인적으로 전자를 훨씬 선호합니다. 며칠 전, 후자 유형의 문제를 Windows 환경의 Firefox 오류 형태로 그대로 겪었기 때문입니다.
운영 환경에 아무런 변경도 가하지 않은 상태에서 평소처럼 웹 서핑을 하던 중, 별개의 이유로 Windows 7 이벤트 뷰어 로그를 살펴보게 되었습니다. 그런데 그곳에서 Firefox와 관련된 일련의 오류들을 발견했습니다. 메시지 내용은 다음과 같았습니다.
"Firefox 원본에서 이벤트 ID 58에 대한 설명을 찾을 수 없습니다. 이 이벤트를 발생시키는 구성 요소가 로컬 컴퓨터에 설치되어 있지 않거나 설치가 손상되었습니다. 로컬 컴퓨터에 해당 구성 요소를 설치하거나 복구할 수 있습니다."
자, 그럼 이 문제를 디버깅해 보겠습니다.
문제 자세히 살펴보기
이 문제는 Firefox 68.0.1이 설치된 Windows 7 컴퓨터에서 발생했습니다. 겉보기에는 아무런 문제가 없습니다. 무언가 잘못되었다는 유일한 단서는 바로 이 오류 메시지들이며, 이 메시지들은 브라우징 세션과 연관성이 있는 것으로 보였습니다. 즉, Firefox를 사용할 때마다 로그 항목이 기록되는 패턴이었습니다.
오류에 대한 상세 설명은 조금 더 단서를 주긴 하지만, 크게 도움이 되지는 않았습니다.
"Firefox 원본에서 이벤트 ID 58에 대한 설명을 찾을 수 없습니다. 이 이벤트를 발생시키는 구성 요소가 로컬 컴퓨터에 설치되어 있지 않거나 설치가 손상되었습니다.
이벤트가 다른 컴퓨터에서 발생한 것이라면, 표시 정보를 이벤트와 함께 저장해야 합니다.
다음 정보가 이벤트에 포함되어 있습니다:"
그리고 이어서 표시된 바이너리 데이터는 다음과 같았습니다.
z:/task_1563391906/build/src/browser/app/winlauncher/SameBinary.h
이 정보를 바탕으로 웹을 검색한 결과, 해당 연도 7월 중순에 작성된 Mozilla 포럼 스레드 하나를 찾을 수 있었습니다. 날짜 자체는 큰 의미가 없지만, 그래도 유용한 단서였습니다. 문제가 Firefox 사용과만 연관되어 있다는 점(제 경우와 포럼 게시자의 경우 모두)을 고려할 때, 첫 번째 추측은 브라우저 자체의 문제라는 것이었습니다. 과거 Firefox 65에서 경험했던 종료 시 CPU 사용량 급증이라는 비슷하게 미스터리한 문제와 결합해 보면, 이번 사례는 제 판단을 더욱 확고히 해주었습니다.
그렇다면 왜 브라우저가 갑자기 오작동하기 시작한 걸까요? 특별히 변경한 것도 없는데 말입니다. 그리고 장기적으로 이 오류가 갖는 의미는 무엇일까요? 당장은 명쾌한 답을 내놓기 어려웠지만, 문제 해결에 나서기로 결정하기에는 충분한 정보를 확보한 상태였습니다.
해결 방법
여기까지의 일반적인 결론은 이러했습니다. 이것은 Firefox 전용 문제라는 것. 오류 메시지로 미루어 볼 때 스레드 관리에 문제가 있을 가능성이 있고, 어떤 라이브러리가 이상한 방식으로 손상되었을 수도 있지만, 사용자가 즉각적으로 인지하기 어려운 수준이라는 점입니다. 이벤트 로그가 정확히 짚어준 부분이 하나 있다면, 바로 '구성 요소 복구'를 권장했다는 점입니다.
그래서 저는 아주 단순한 방법을 택했습니다. 브라우저를 재설치하는 것입니다. Mozilla 공식 다운로드 페이지에서 Firefox 68.0.1 설치 파일을 내려받아 다시 실행했습니다. 기술적으로는 아무것도 변한 것이 없었습니다. 브라우저는 여전히 기존과 동일하게 자리하고 있었으니까요. 하지만 실질적으로는 분명한 차이가 있었습니다. 바로 오류가 사라졌다는 것입니다.

마치며
앞서 말씀드렸듯이 저는 기괴한 오류를 몹시 싫어합니다. 이런 오류는 예측 불가능하게 느껴지고 디버깅이 어렵기 때문입니다. 분석적이고 약간의 편집증이 있는, 어찌 보면 정직한 기술 덕후라면 제대로 설명되지 않거나 아예 정의조차 되지 않은 문제를 잡으려다 사소해 보이는 것들에 지나치게 많은 시간과 노력을 소모하게 됩니다.
이번 사례에서는 모든 조건이 우리에게 불리하게 작용하는 듯했지만, 체계적인 접근이 큰 도움이 되었습니다. 오류 메시지들이 대략적인 방향을 제시해 주었고, 포럼 스레드가 제 추측을 뒷받침해 주었습니다. 그리고 해결 과정에서도 시스템 설정 변경은 최소화하고 브라우저부터 손대기 시작했습니다. 여기서 '시스템 변경'에는 무해해 보이는 재부팅조차 포함됩니다. 굳이 그럴 필요가 없으니까요. 이 글이 도움이 되었기를 바랍니다. 다소 생소한 이 오류에 대해 추가로 알고 계신 정보가 있다면 언제든 이메일로 알려주세요.
즐거운 컴퓨팅 되세요.