부담 없는 윈도우 재설치
운영체제 재설치는 이전 시대에 꽤 골아픈 문제였지만 최근 경험은 그렇게까지 골아프지는 않았습니다.
퇴근할 때 컴퓨터를 끄지 않습니다. 보안 상 사용하지 않는 컴퓨터를 꺼 놓는 것이 안전하다는 사실을 이해하고 있고 또 사용하지 않는 컴퓨터를 끄지 않아 생기는 에너지 낭비, 부품 수명 감소 같은 문제가 있다는 점 역시 알고 있습니다. 그럼에도 컴퓨터를 여간해서 끄지 않는 이유는 여러 가지가 있습니다. 컴퓨터가 켜지고 꺼질 때 기다리는 시간이 아까워서이기도 하고 컴퓨터를 끄면 컴퓨터를 사용하지 않는 동안에 수행될 관리 작업들이 제가 컴퓨터를 사용하고 있을 때 일어나 작업에 영향을 주기 때문이기도 합니다. 가령 스토리지 검사, 백업, 보안 검사, 검색용 인덱스 생성 같은 작업들은 작업을 상당히 방해하는데 이 작업들은 컴퓨터를 사용하지 않는 시간대에 수행되어 낮 시간에 컴퓨터를 사용하는 동안 저를 방해하지 않습니다.
이 중 가장 중요한 이유는 컴퓨터가 켜지는 시간 동안 기다리고 싶지 않아서인데 만약 컴퓨터에 전원이 꺼져 있다면 출근해서 컴퓨터에 전원을 켜고 한참이나 기다려야 합니다. 스토리지 대부분이 SSD로 바뀌며 과거에 비해 부팅은 이루 말할 수 없을 만큼 빨라졌지만 이전에 작업하던 상태 그대로 프로그램들을 실행해 이전에 있던 자리에 갖다 놓고 다시 이전에 작업하던 맥락에 이어 작업을 시작하는데 까지는 시간이 걸립니다. 게다가 만약 이전에 작업하던 상태로 돌아가다가 주의력을 잃기라도 하면 어제 퇴근할 때에 이어서 작업을 재시작 하는데 더 많은 시간이 필요해질 수 있습니다. 이 때 컴퓨터를 끄지 않고 퇴근하면 출근해 자리에 앉은 다음 패스워드를 입력해 잠금을 해제하는 순간 바로 어제 자리에서 일어나던 바로 그 상태에서 일을 시작할 수 있습니다. 모든 프로그램들은 여전히 어제 배치해 둔 그 위치에 실행되고 있고 이 작업을 수행하며 작성한 메모와 참고자료 역시 어제 놔 두고 간 그 자리에 그대로 떠 있습니다. 컴퓨터가 켜지기를 기다릴 필요도 없고 반복적으로 프로그램을 실행해 원하는 위치에 가져다 둘 필요도 없어집니다.
이렇게 생산성 저하를 막는 조치는 댓가를 치러야 하는데 다른 사람들에 비해 하드웨어 구성요소의 수명이 빨리 끝날 각오를 해야 합니다. 총 가동시간을 기록하는 스토리지 장치들은 가정용 컴퓨터 환경에서 잘 도달하지 않는 몇 만 시간에 달하는 가동시간에 쉽게 도달하는데 보통 가동시간이 길어질 수록 결함을 일으킬 가능성이 올라갑니다. 가정용 장비라면 가동시간이 그 정도까지 길어지지 않아 결함을 일으킬 가능성이 유의미하게 증가하는 시점보다 교체 주기가 더 빨리 돌아와 아무 문제를 겪지 않을 수 있습니다. 하지만 이렇게 거의 서버에 가깝게 항상 켜져 있는 컴퓨터에 붙어 있는 장치들은 잠깐 신경을 안 쓰면 순식간에 시간이 흘러 가동시간이 만 시간을 쉽게 넘기며 결함률이 유의미하게 올라가는 구간에 도달합니다. 하지만 회사에서 사용하는 기계를 관리할 책임은 회사에 있고 핵심 장비 결함으로 제가 일하지 못하게 되면 그런 동안에도 제게 임금을 지불해야 하니 회사에 손해가 일어납니다. 때문에 회사에서는 생산성 향상을 위해 장비 결함률을 올리는 사용 습관에도 불구하고 장비에 문제가 생기면 빠른 시간 안에 문제를 해결해 줘야 합니다. 이걸 믿고 컴퓨터를 절대 끄지 않고 있습니다.
한편 지금까지 사용하던 SSD의 총 가동시간이 15,000시간에 다다르면서 슬슬 문제가 생길 거라고 예상했는데 이렇게 생각한 이유는 크게 두 가지입니다. 일단 운영체제가 설치된 드라이브의 응답 속도가 굳이 벤치마크를 안 해 봐도 느낄 수 있을 만큼 뚜렷하게 느려지기 시작했습니다. 윈도우 탐색기를 열 때 더 자주 모래시계가 보이고 파일을 선택할 때, 파일 프리뷰를 생성할 때 더 오래 걸리기 시작합니다. 또 퇴근할 때 컴퓨터를 켜 놓고 갔다가 다음 날 와 보면 밤새 운영체제가 크래시 되어 재시작 되어 있을 때가 있었고 이런 경험은 점점 더 늘어났으며 어느 순간 그냥 매일 아침 재시작 된 상태의 윈도우를 맞이하는 일이 당연해집니다. 이전 같으면 이런 상태를 설명하고 이벤트 뷰어에 나타난 로그를 근거로 더 심각한 문제를 겪기 전에 하드웨어 교체를 요청할 수 있었지만 지금의 우리들은 그렇게 잘 갖춰진 관리 부서가 없고 또 그렇게 잘 관리할 여유도 없어 그냥 대강 하루에 한 번 재시작 한다고 생각하고 문제를 방치해 왔습니다.
그러다가 이제는 컴퓨터를 사용하지 않는 동안에 일어나던 크래시가 이제 컴퓨터를 사용하던 도중에 나타나기 시작했고 그런 크래시가 하루에 세 번이 되자 더 이상 참을 수 없었습니다. 사실 더 이상은 안되겠다고 생각하게 된 계기는 크래시가 일어난 다음 재시작 될 때 비트락커 리커버리 코드를 입력하라는 메시지가 나타났을 때입니다. 컴퓨터에 달린 ‘모든’ 드라이브는 비트락커로 암호화 되어 있는데 드라이브 중 일부는 첫 번째 드라이브에 키를 저장해 운영체제가 부팅 되면 자동으로 언락 되도록 설정되어 있었고 첫 번째 드라이브는 항상 자동으로 언락 되고 있었습니다. 부팅 과정에서 그런 첫 번째 드라이브의 언락에 실패해 리커버리 코드를 입력하라는 메시지가 나타난 것입니다. 이제 크래시로 인한 문제가 첫 번째 드라이브의 암호화를 해제하는 동작에도 문제를 일으킬 만큼 커져 있었고 이 상태로는 조만간 스토리지가 완전히 고장날 뿐 아니라 이 상태로는 업무에도 너무 큰 영향을 받을 거란 생각이 들어 사정이 녹녹하지 않음을 알고 있지만 하드웨어 교체를 요청합니다.
다행히 재고 기계로부터 SSD를 분리해 바로 교체할 수 있었는데 교체하려고 컴퓨터를 뜯어 보니 컴퓨터를 잘 모르고 또 부품 조립을 전혀 하지 않는 제가 봐도 뭔가 구조가 이상해 보였습니다. SSD는 메인보드에 있는 SSD 전용 슬롯에 장착하는 구조였는데 그 슬롯에 접근하려면 그래픽 카드를 분리해야 했습니다. 커다란 그래픽 카드를 장착하면 SSD 슬롯이 가려져 SSD를 교체할 수 없는 구조였습니다. 그래서 그래픽 카드 가이드를 제거하고 보조 전원을 뽑은 다음 그래픽 카드를 완전히 탈거하자 그 아래에 방열판이 달린 SSD가 나타납니다. 그런데 CPU를 식히는 방열판은 표면적을 넓히고 열효율을 올리기 위해 구리로 만들고 올록볼록한 형상으로 만드는 등 난리를 치는데 비해 SSD 방열판은 그냥 평평한 알루미늄 판떼기일 뿐이었습니다. 또 서멀 페이스트를 사용하지도 않고 대강 양면테이프처럼 보이는 찐득한 뭔가에 의해 SSD와 방열판이 서로 떨어지지 않고 붙어 있는 수준이었는데 이런 방열판이 실제로 도움이 되긴 하는지 알 수 없었습니다.
가장 이상하다고 느낀 점은 그래픽 카드가 방열판 위를 지나가는 구조인데 그래픽 카드는 그 스스로 엄청난 열을 내기 때문에 CPU에 맞먹는 방열 구조 뿐 아니라 팬을 달아 직접 방열판을 식혀 주고 있습니다. 이렇게 열을 많이 내는 그래픽 카드 바로 밑에 똑같이 열을 많이 내는 SSD가 달려 있어 서로 거리가 아주 가깝다는 점은 서로 열을 주고 받아 둘 중 열에 더 약한 어느 한 하드웨어가 먼저 고장 나도 전혀 이상하지 않아 보였습니다. 특히 방금 설명한 잘 모르는 사람이 대충 봐도 엉성해 보이는 SSD에 붙은 방열판은 분명 어떤 열원의 열을 빼앗아 가열될 수는 있겠지만 그 열원이 SSD일지 그래픽 카드일지는 확실하지 않아 보입니다. 모르긴 몰라도 방열판은 어쩌면 방열판이 없어 공기를 통해 일어났을 열 전달을 더 촉진해 그래픽 카드와 SSD 중 어느 한 쪽이 망가질 때까지 서로의 열을 전달하는 역할을 하고 있을 것 같습니다. 이런 구조라면 그리 오랜 시간 지나지 않아 다시 같은 문제가 일어날 것 같았는데 그렇다고 메인보드를 교체할 수 있을 상황은 아니니 이런 문제가 다시 일어날 거라고 생각만 한 채 SSD만 교체하고 상황을 마무리 합니다.
이제 운영체제를 재설치 해야 했는데 정말 오랜만의 운영체제 재설치여서 생소한 느낌이 들었습니다. 한때 윈도우 운영체제가 불안하던 시대에는 사려깊지 않게 만들어진 드라이버들끼리 충돌하기만 해도 부팅에 영구적으로 실패하는 상태가 돼 운영체제를 재설치 해야 해서 재설치가 아주 익숙한 경험이었지만 이제 더 이상 그렇지 않습니다. 윈도우 기계를 한번 사용하기 시작하면 기계의 수명주기 내내 운영체제를 재설치 할 일이 없었습니다. 그렇다 보니 오래 전에는 종종 복구가 불가능한 문제가 일어날 때 운영체제를 재설치 하며 자료를 날리기도 하고 자료를 날리지 않기 위해 같은 드라이브에 파티션을 나누거나 다른 스토리지 기계를 사용하는 등의 대책을 세우기도 했지만 이제는 그런 행동 자체가 필요하지 않은 시대가 되었습니다.
처음 회사에 스토리지 교체를 요청할 때 관리 부서에서는 먼저 윈도우를 재설치 해 보면 어떻겠느냐는 제안을 했는데 이벤트 뷰어를 통해 명백히 스토리지에 쓰기 오류가 연속으로 일어나고 있는 상황에서 시간 낭비라는 생각이 들었지만 또 그 제안을 아예 거부할 수 있을 것 같지도 않아 따르기로 했는데 이 제안을 해 주신 관리 부서 팀원 분이 말을 채 마치기도 전에 윈도우 재설치 메뉴를 눌러 재설치를 시작해 버렸습니다. 오히려 제게 재설치를 제안한 분이 당황해서 ‘어? 아무 준비 없이 재설치 해버려도 돼요?’ 라고 물어보셨는데 아무 준비 없이 운영체제 재설치를 시작해도 잃어버릴 데이터가 ‘전혀’ 없었습니다. 핵심 문서와 빌드는 모두 서버로부터 받아 참고하거나 개발하고 제 앞에 높인 컴퓨터는 빌드를 수행하기 위한 역할, 그리고 서버에 있는 데이터를 가공하는 단말기 역할을 할 뿐입니다. 그래서 아무런 고민 없이 즉시 재설치를 시작할 수 있었습니다.
아무 준비 없이 운영체제를 재설치 할 수 있는 체계를 조금 더 검토해 봅시다. 일단 기획팀 입장에서 모든 문서는 노션에 있습니다. 개인적으로 이런 동작을 썩 좋아하지는 않지만 노션은 내용이 변경되면 그때그때 저장하기 때문에 아무 순간에 작업이 중단되더라도 지난 몇 초 사이의 데이터를 날릴 가능성이 있을 뿐입니다. 다음으로 빌드와 소스는 모두 깃헙에 있습니다. 아직 푸시하지 않은 커밋을 유실 할 수 있겠지만 코드를 만들지 않는 이상 언리얼 에디터에서 일어난 바이너리 파일 수정은 커밋과 함께 푸시하는 전통적인 형상관리도구의 동작을 따라할 수 있는 옵션이 있어 푸시되지 않은 로컬 커밋이 남아있을 가능성은 없거나 적습니다. 또 기획서에 첨부하기 위해 만든 드로잉은 이미 윈도우 파일 히스토리에 의해 다른 드라이브에 백업 되어 있을 뿐 아니라 드랍박스에 의해 다른 서버에 백업 되어 있고 또 개인적으로 사용하는 Forgejo에 의해 돌아가는 별도 형상관리도구에 의해 버전 별로 기록하고 있습니다. 이쯤 되면 로컬에서 복구할 수 없는 데이터는 검색을 빠르게 만들기 위한 인덱스와 각 프로그램의 설정 정도인데 이들은 나중에 CPU를 사용해 복원해야 합니다. 이런 상황이니 아무런 준비, 고민 없이 바로 재설치를 선택할 수 있었습니다.
물론 데이터 유실에 대한 부담은 전혀 없지만 재설치 후 이전에 사용하던 자잘한 프로그램들을 재설치 하는 과정은 그리 편안하지 않습니다. 이번에 여러 프로그램들을 재설치 하면서 이 경험이야말로 운영체제 재설치를 머뭇거리게 만드는 요소가 되었음을 깨달았습니다. 이전 시대에는 혹시 일어날 지도 모르는 데이터 유실 때문에 운영체제 재설치를 고민했다면 이제는 이전과 비슷한 환경으로 돌아가기 위해 이전에 사용하던 모든 프로그램을 재설치 하는 과정이 꽤 고통스럽기 때문에 재설치를 망설여야 하게 됩니다. 다행히 Chocolatey를 사용해 어지간한 프로그램 대부분을 재설치 할 수 있었는데 이게 아니었으면 여러 웹사이트에 하나하나 방문해 설치 파일을 다운로드 해 하나하나 설치하는 고통스러운 과정을 거쳤어야만 했을 겁니다.
choco install epicgameslauncher
choco install obs-studio
choco install git-fork
choco install slack
choco install telegram
choco install vlc
choco install autoit
choco install everything
choco install shotcut
choco install audacity
choco install dropbox
choco install rescuetime
choco install vscode
choco install zoom
choco install 7zip
choco install putty
choco install winscp.install
choco install treesizefree
choco install steam
choco install nvidia-display-driver
choco install sql-workbench
choco install balsamiqwireframes
choco install figma
choco install gpg4win
choco install warp
choco install filezilla
choco install kakaotalk
choco install microsoft-windows-terminal
하지만 Chocolatey를 사용하는 경험이 아주 마음 편하지는 않은데 유료 버전은 제작사가 패키지의 무결성을 보증하는 것 같지만 무료로 사용할 수 있는 커뮤니티 버전은 악의적으로 만들어진 패키지를 설치할 때 의도하지 않은 프로그램이 함께 설치될 가능성이 있기 때문입니다. 그렇다고 이 서비스를 유료로 사용하자니 이렇게 여러 가지 프로그램을 한 번에 설치하며 큰 효율을 발휘할 일이 몇 년에 한 번 일어날 뿐이어서 오직 이런 상황에 안정감을 얻기 위해 돈을 내는 것도 썩 좋은 아이디어는 아닐 것 같습니다. Chocolatey를 사용해 웬만한 프로그램을 편안하게 설치했지만 다른 한 편으로는 여전히 프로그램 하나하나를 모두 실행 시켜 이전에 사용했던 설정을 되돌리는 과정은 자동화 되지 않았기 때문에 어쩔 수 없이 시간을 상당히 소모해야만 했습니다. 만약 각 프로그램의 현재 설정 까지 이런 식으로 되돌릴 수 있으면 정말 좋겠다는 생각이 듭니다.
이전에는 운영체제를 재설치하면 거의 그 날 하루 종일 다른 일을 할 수 없었는데 몇 년 만에 겪은 운영체제 재설치는 대략 두어 시간 정도 걸렸고 이 시간이 지난 다음에는 바로 이전과 똑같이 업무에 복귀할 수 있었는데 이전 재설치 경험에 비하면 확실히 크게 개선되었습니다. 이번 경험에 근거해 이후 운영체제를 재설치 해야 하는 상황이 찾아오더라도 크게 귀찮아 하지 않고 바로 재설치를 선택할 수 있을 겁니다.