"일단 재부팅해 보셨어요?"
기술 상담에서 가장 흔하게 들려오는 조언이지만, 이 말에는 분명한 근거가 있습니다. 실제 경험상 네트워크 오류, 그래픽 문제, 느려진 성능, 비정상 작동하는 프로그램 등 컴퓨터 문제의 80~90%는 간단한 재부팅만으로 해결됩니다. 윈도우뿐 아니라 스마트폰, 공유기, 심지어 소프트웨어 자체의 문제까지 재부팅으로 개선되는 경우가 많죠.
왜 이렇게 단순한 방법이 이토록 효과적일까요? 컴퓨터 기기에는 어떤 특성이 있길래 재부팅이 문제를 해결하는 걸까요? 그리고 왜 기기를 끄지 않고 실행 중인 상태에서는 문제를 고칠 수 없을까요? 지금부터 그 답을 하나씩 살펴보겠습니다.
재부팅으로 해결되는 대표적인 문제들
복잡한 원리를 이해하기 전에, 먼저 우리가 흔히 겪는 증상과 그 기본적인 원인부터 짚어보겠습니다.
증상: 컴퓨터가 느려지거나 멈춘다
원인: 메모리 누수(memory leak)
해결책: 해당 프로그램 종료 또는 재부팅
증상: 윈도우 블루스크린(Blue Screen of Death)
원인: 드라이버 또는 하드웨어 오류
해결책: 강제 재부팅
증상: Wi-Fi가 갑자기 끊긴다
원인: 드라이버 충돌 또는 공유기 소프트웨어 문제
해결책: 재부팅 또는 공유기 전원을 30초간 차단했다가 다시 연결(파워 사이클)

세 가지 사례를 정리해 보면 공통점이 보입니다. 무언가가 제대로 작동하지 않아 문제가 생기고, 해결책은 처음 상태로 되돌리는 것입니다.
그리고 그 근본 원인은 대개 인간의 실수에서 비롯됩니다. 컴퓨터는 사람이 설계하고 프로그램도 사람이 작성합니다. 사람이 완벽하지 않다면, 사람이 만든 것 역시 완벽할 수 없겠죠. 모든 인공물은 결함을 가질 수 있으며, 시스템이 복잡해질수록 결함의 수도 함께 늘어납니다.
재부팅은 어떻게 메모리 누수를 해결할까?
컴퓨터를 처음 부팅하는 순간을 '점토 시장'에 비유해 볼 수 있습니다. 점토는 메모리를 비롯한 컴퓨터의 다양한 자원을 의미합니다. 운영체제는 이 점토를 관리하며, 필요할 때마다 프로그램들에게 나눠주는 역할을 합니다. 이론적으로 이 순환은 아무 문제 없이 영원히 반복될 수 있습니다. 문제는 일부 프로그램이 공용 자원을 낭비한다는 데 있습니다.

프로그램이 실행되려면 컴퓨터로부터 점토(자원)를 일정량 받아야 하며, 그 점토를 관리할 책임은 프로그램에게 있습니다. 이상적인 프로그램이라면 작업을 마친 후 점토를 깨끗이 정리해 컴퓨터에 돌려주고, 컴퓨터는 그 점토를 필요로 하는 다른 프로그램들에게 다시 배분할 수 있습니다.
이제 세 개의 프로그램이 각각 점토를 할당받았다고 상상해 봅시다. 첫 번째 프로그램은 점토를 문제없이 모두 반환합니다. 두 번째는 점토 한 덩어리를 바닥에 두고 절반만 돌려줍니다. 마지막 프로그램은 점토를 통째로 잃어버려 아무것도 반환하지 못합니다. 결과적으로 컴퓨터가 배분할 수 있는 점토는 점점 줄어듭니다.

시간이 지나면서 결함 있는 프로그램들이 받은 자원을 제대로 돌려주지 못하면, 다른 프로그램들은 자신의 몫을 받기 위해 점점 더 오래 기다려야 합니다. 바로 여기서 메모리 누수, 프로그램 지연, 런타임 오류가 발생하는 것입니다.
컴퓨터를 몇 시간 켜두었더니 동작이 눈에 띄게 느려졌다면, 원인이 자원 관리 실패일 가능성이 매우 높습니다. 그렇다면 어떻게 해결할 수 있을까요?
한 가지 방법은 자원 관리 책임을 프로그램에서 빼앗아 운영체제가 직접 맡는 것입니다. 운영체제가 잃어버린 자원을 감지하면 회수하는 방식이죠. 하지만 이른바 "가비지 컬렉션(garbage collection)"이라 불리는 이 과정은 프로세서에 큰 부담을 주어 시스템 성능을 떨어뜨릴 수 있기 때문에 널리 쓰이지 않습니다.
다른 해결책은 바로 재부팅입니다!
재부팅하면 모든 것이 초기 상태로 리셋되고, 운영체제는 온전한 자원을 가진 새로운 시작점에서 출발합니다. 이후 프로그램들이 실행되며 자원을 요청하고, 같은 과정이 반복되다가 언젠가 또다시 재부팅이 필요해지는 것이죠.
이 현상은 소프트웨어에도 그대로 적용됩니다. 웹 브라우저를 예로 들어볼까요? 크롬이나 파이어폭스를 몇 시간씩 열어두면 점점 버벅거리는 경험, 누구나 있으실 겁니다. 브라우저 자체와 확장 프로그램(addon)에 결함이 있기 때문입니다. 이럴 때 브라우저를 재시작하는 것만으로도 속도를 되찾을 수 있습니다.
재부팅과 파워 사이클은 다른 문제도 어떻게 해결할까?
기본적으로 자원 관리에 적용되는 원리는 드라이버 오류나 저수준(low-level) 에러에도 동일하게 적용됩니다. 오류의 모든 흔적을 지워버리고 컴퓨터를 깨끗한 상태에서 다시 시작하는 것이죠.

예를 들어 Wi-Fi 공유기도 우리 컴퓨터처럼 소프트웨어로 구동됩니다. 파워 사이클, 즉 공유기 전원을 최소 30초간 완전히 차단하면 캐시가 지워지고 소프트웨어가 초기화됩니다.
전원 장치 설계 전문가인 제롤드 파우츠(Jerrold Foutz)는 전자 기기, 심지어 가전제품까지 리셋으로 문제가 해결되는 이유에 대해 흥미로운 견해를 밝힌 바 있습니다.
하드웨어에는 '단일 사건 교란(Single Event Upset, SEU)'이라 불리는 현상의 원인이 많습니다. 전원 글리치, 집적회로(IC)를 통과하는 우주선, 플라스틱 IC 패키지에서 방출되는 알파선 등이 모두 SEU를 일으킬 수 있으며, 논리 상태(1을 0으로, 혹은 그 반대로)를 바꾸거나 대부분의 IC가 가진 pnpn 층에서 래치업(latchup)을 유발할 수 있습니다. 소프트웨어 쪽에서는 컴퓨터가 무한 루프에 갇히는 경우가 있습니다.
즉, 예측할 수 없는 우연한 사건이 전자 기기를 정상적으로 작동할 수 없는 이상한 상태로 만들어 버릴 수 있다는 뜻입니다. 제롤드는 정상 작동하는 모든 기기가 반드시 복구 가능한 상태 중 하나가 바로 '전원이 꺼진 상태'라고 설명합니다. 따라서 기기의 전원을 끄고, 플러그를 뽑고, 배터리를 제거한 뒤 일정 시간을 기다렸다가 다시 전원을 연결하고 재시작할 것을 권장합니다.
왜 어떤 문제는 재부팅이 필수일까?
자원 관리 실패의 경우, 문제를 일으키는 프로그램을 직접 찾아내 종료하는 것만으로도 해결이 가능합니다. 하지만 컴퓨터가 실행 중인 상태에서는 도저히 고칠 수 없는 문제들도 있으며, 그 이유는 꽤 철학적입니다. 아인슈타인은 "문제는 그 문제를 만들어낸 것과 같은 수준의 의식으로는 해결할 수 없다"고 말했습니다. 어느 면에서 이는 컴퓨터에도 해당됩니다. 왜일까요?

컴퓨터는 끊임없이 이벤트를 감시하고 그에 맞게 반응해야 하는 유한 상태 기계(finite state machine)입니다. 유휴 상태일 때조차 새로운 이벤트에 즉각 대응하기 위해 무한 처리 루프(infinite processing loop) 위에서 동작합니다. 마우스를 연결하는 것, 프로그램을 불러오는 것, 시스템을 종료하는 것까지 모든 것이 이벤트이며, 각 이벤트는 상태 변화를 일으킵니다.
재부팅이 필요한 이유 중 하나는, 운영체제에 따라 이미 실행 중인 무한 루프 자체를 수정할 수 없기 때문입니다. 드라이버 설치나 윈도우 업데이트가 시스템 재부팅을 요구하는 이유가 바로 이것입니다. 운영체제가 작동하는 가장 근본적인 방식 자체를 바꿔야 하기 때문이죠. 물론 무한 재부팅 루프에 빠지지만 않기를 바랄 뿐입니다.
만약 오류가 이 무한 처리 루프에 영향을 주었다면, 재부팅만이 시스템을 알려진 정상 상태로 되돌릴 수 있습니다. 컴퓨터에 의식이 없다는 점(적어도 우리가 아는 한)을 감안하면, 이는 아인슈타인의 말과 정반대라고 할 수 있습니다. '의식'이 발전하는 것이 아니라 초기화되니까요. 그렇다면 "무지는 행복이다"라는 속담이 더 적절한 비유일지도 모르겠네요.
결국 모든 것은 '알려진 상태'로의 회귀
이 글은 재부팅으로 해결 가능한 컴퓨터 내부의 문제 중 극히 일부만 다루었습니다. 때로는 이유를 설명할 수 없이 그냥 해결되기도 하며, 전문가조차 원인을 추측할 수 있을 뿐입니다. 핵심은 이것입니다. 재부팅이 효과적인 이유는 모든 것이 원래 상태로 돌아가기 때문입니다. 익숙한 이 상태에서 시스템은 어디서부터 시작해야 하는지 알고 있습니다. 마치 체스 게임 중 누구 차례였는지 잊어버렸을 때, 처음부터 다시 두는 것과 같습니다.
재부팅은 많은 문제의 빠른 해결책일 뿐 아니라, 중요한 문제 해결(troubleshooting) 단계이기도 합니다. 재부팅 후에도 문제가 지속된다면, 원인은 단순한 우연한 오류보다 훨씬 심각할 수 있습니다. 손상된 소프트웨어, 악성코드 감염, 하드웨어 고장 같은 문제는 재시작만으로는 거의 해결되지 않습니다.
여러분은 재부팅만으로 어떤 기기와 증상을 성공적으로 해결하셨나요?
이 글은 Joel Lee와 공동으로 제작되었습니다.
이미지 출처: Computer Comic via Shutterstock, Woman with Clay by Marshall Astor via Flickr, Ctrl+Alt+Dlt via Shutterstock, Slate Board via Shutterstock, Einstein Quote by QuotesEverlasting via Flickr