들어가며
맥 관련 사이트나 커뮤니티에 올라오는 OS X 추천 프로그램 모음글들을 보면 OnyX나 MainMenu 같은 맥용 유지보수 프로그램들이 여기 어김없이 이름을 올려두고 있는 것을 볼 수 있습니다. 또 이런 맥 유지보수 프로그램들을 정기적으로 실행해 OS X을 관리하고 사전에 시스템에 문제가 생기는 것을 예방할 것을 [직, 간접적으로] 독자들에게 권유하고 있습니다. 어쩔 때는 맥을 사용하는데 있어 이런 프로그램이 없으면 절대 안 된다라고 겁을 주는 것 처럼 느껴지기도 합니다. 이런 프로그램들이 실제로 어떤 방법으로 OS X을 청소하고 보수하는지, 또 얼마나 자주 실행되야 하는지는 정확한 정보도 없이 말입니다.
이런 프로그램들을 자주 사용한다고해서 시스템에 심각한 문제가 생기는 것은 아닙니다. 하지만 '헬스장에 다녀 수명이 늘어난 사람은 늘어난 수명에 해당하는 시간을 헬스장에서 낭비했다'라는 우스갯소리처럼 맥의 성능을 더 좋게 하기 위해 할애하는 유지보수 시간이 실제로 성능 향상으로 얻은 이득보다 더 길 수 있습니다. 또 지나친 유지보수 작업은 시스템의 성능을 오히려 갉아먹는 요소가 되기도 합니다. 결정적으로 가장 큰 문제는 즐겁고 편하자고 사용하는 맥이 스트레스를 받아가며 관리를 해주어야 하는 객체가 되어버린다는 점입니다.
운영체제는 그 종류를 불문하고 자기 스스로를 점검하고 보수하는 체계가 갖춰져 있습니다. 사용자가 굳이 번거롭게 유지보수 작업을 수동으로 해주지 않더라도 운영체제를 사용하는 동안 누적되는 각종 캐시 파일과 임시 파일, 로그 파일들을 백그라운드에서 조용히 정리해줍니다.
하지만 시중에 판매되거나 무료로 배포되는 여러 맥 유지보수 프로그램들은 시스템 기본 유지보수 프로세스를 강제로 실행해주는 대리인에 불과한 경우가 많습니다. 즉, 시스템 성능을 높여주는 뭔가 마법같은 기능이 들어가 있는 것이 아니라 운영체제 기본 유지보수 기능을 조금 앞당겨 실행하는 것 뿐입니다.
또 이런 유지보수 프로그램들을 사용하면서 '시스템 최적화'라는 미명하에 캐시 파일과 임시 파일들을 같이 삭제하는 경우가 부지기수입니다. 캐시 파일이라는 것이 뭔가요? 사용자가 빈번히 사용하거나, 추후 시스템이 필요할 것 같은 파일들을 미리 준비해 놨다가 필요한 순간에 재빠르게 불러드리는 목적으로 존재하는 파일입니다. 하지만 유지보수 프로그램들을 이용해 이런 파일들을 빈번히 삭제해 버리면 정작 필요한 순간에 새로 캐시를 작성해야 하기 때문에 되려 체감 속도가 더 떨어지는 부작용이 발생할 수 있습니다. 애플이 캐시 파일을 생성하고 삭제하는 기능을 사용자들에게 전적으로 공개하지 않는 이유는, 현재의 캐시 생성/삭제 메커니즘이 사용자에게 가장 최적의 성능을 제공하기 때문입니다.
이번 글을 통해 맥이 자기 스스로를 유지관리하기 위해 어떤 프로세스를 갖추고 있는지 한번 들여다 보고, 또 외부 프로그램들이 말하는 '유지보수'기능이 무엇인지 한번 살펴보도록 하겠습니다.
맥의 자동 유지보수 체계
OS X은 유닉스(UNIX)기반인 만큼 시스템 유지보수 기능도 유닉스를 그대로 차용하고 있습니다. 특별히 사용자가 설정값을 바꾸지 않는 이상, 매일 새벽 3시 15분부터 5시 반 사이에 유지보수 스크립트가 자동으로 실행됩니다. 또 일주일에 한 번은 평상시보다 좀 더 '빡 센' 작업이 실행되며, 한 달에 한 번은 각종 로그 파일들을 정리하는 작업이 진행됩니다. 쉽게 말해 가사 도우미 아주머니가 하루에 한번씩 방청소를 해주고, 일주일에 한번은 집안 대청소를, 한 달에 한 번은 고지서 영수증 정리를 집주인 대신 해주는 것을 떠올리시면 될 것 같습니다. 게다가 집주인의 신경에 거슬리지 않도록 집주인이 잠든 야밤에 조용히 청소만 해 놓고 싹 사라집니다 :-) 1
이처럼 OS X의 유지보수 작업은 실행 주기와 작업 내용에 따라 세가지로 분류되는데, 각각의 유지보수 작업은 서로에 독립적으로 작동하며, 또 그 아래 여러 개의 작은 (서브) 작업들로 구성되어 있습니다. 즉, 하나의 유지보수 작업은 그 안의 여러 서브 작업들을 실행시켜 주는 일종의 배치 스크립트라고 할 수 있습니다. (아래 이미지들 참조)
일간(Daily) 유지보수 작업: 하루 동안 시스템에 누적되는 캐시(스크래치) 파일과 임시 파일들을 삭제하며, 시스템의 각종 정보를 기록한 로그(log) 파일을 최신 상태로 갱신합니다. 일간 유지보수 작업은 /private/etc/periodic/daily 폴더에 들어있는 일련의 서브 스크립트들로 구성되어 있으며, 작업 완료 후 /var/log/daily.out 파일에 수행 내역이 기록됩니다.
주간(Weekly) 유지보수 작업: locate 및 whatis 데이터 베이스등 유닉스 파일 체계와 밀접한 관련이 있는 데이터 베이스를 최신 상태로 재구성(rebuild) 합니다. 주간 유지보수 작업은 /private/etc/periodic/weekly 폴더에 들어있는 두 개의 서브 스크립트로 구성되어 있으며, 작업 완료 후 /var/log/weekly.out 파일에 수행 내역이 기록됩니다.
월간(Monthly) 유지보수 작업: wtmp와 install.log, cu.modem.log 등 비교적 중요도가 떨어지는 로그 파일들을 새로 갱신합니다. 월간 유지보수 작업은 /private/etc/periodic/monthly 폴더에 들어있는 3개의 서브 스크립트들로 구성되어 있으며, 작업 완료 후 /var/log/monthly.out 파일에 수행 내역이 기록됩니다.
이 세 유지보수 작업은 /System/Library/LaunchDaemons/com.apple.periodic~*.plist 형식으로 OS X 백그라운드 프로세스로 등록되며 매일 새벽 3시 15분부터 5시 반 사이에, 즉 맥 사용 부하가 가장 낮은 시간대에 자동으로 실행됩니다. 만약 이 시간에 맥이 잠자기 모드에 있거나, 완전히 꺼저 있는 경우엔 잠자기에서 돌아온 직후나 다음 부팅 시간에 실시됩니다. 2
이제 OnyX와 MainMenu의 시스템 유지보수(Maintenance) 섹션을 한 번 보도록 하겠습니다.
Daily.. Weekly.. Monthly... 어디서 많이 보던 단어들이죠? :-)
이런 외부 프로그램들의 시스템 유지보수 기능은 OS X이 기본적으로 제공하는 주기별 유지보수 기능(캐시와 임시 파일 삭제 및 파일 데이터 베이스 재구성)과 디스크 권한 복구를 조합한 것에 불과합니다. 때가 되면 시스템이 자동으로 시행해 주는데다 [굳이 시스템에 문제가 없는 이상] 작업을 앞당겨 해 주어야 할 필요가 전혀 없습니다.
참고로 주기별 유지보수 작업이 제대로 작동하고 있는지 확인하려면 응용 프로그램 > 유틸리티 폴더에서 터미널을 실행한 후 아래 명령어를 입력해 주시면 됩니다. 결과 중간에 각각의 유지보수 작업이 언제 마지막으로 실시되었는지 날짜가 표시됩니다.
ls -al /var/log/*.out
혹시 OS X 기본 유지보수 기능을 외부 프로그램이 아닌 OS X 자체적으로 실행할 수는 없냐구요? 있습니다.
sudo periodic daily
위 명령어로 일간(daily) 보수유지 스크립트를 실행할 수 있는데, daily 대신 weekly나 monthly를 넣어 주간, 월간 유지보수 스크립트를 실행할 수 있습니다. 혹은 아래 명령어로 세 유지보수 스크립트를 동시에 실행할 수도 있습니다. 앞서 말씀드렸다시피 굳이 직접 이런 작업을 외부 프로그램이나 터미널에서 직접 해 주실 필요는 없습니다. 그냥 때가 되면 저절로 작동하기 때문입니다.
sudo periodic daily weekly monthly
이외 외부 관리 프로그램의 Cleaning 혹은 Home Clean으로 불리는 기능은 앞서 말씀드린 시스템/사용자 캐시 파일과 임시 파일, 로그 파일을 삭제하는 기능인데 이 역시 OS X 기본 유지보수 작업에 모두 포함되어 있는 기능입니다. 단지 한번에 캐시 파일을 확 삭제하느냐, 아니면 사용 빈도가 낮고 생성 시기가 오래된 파일부터 먼저 삭제하는가의 차이만 있을 뿐입니다.
그럼 디스크 권한 복구(Repair Permission)는?
위 주기별 스크립트 말고도 맥 유지보수를 이야기 할 때 자주 등장하는 것이 있습니다. 바로 디스크 권한 복구(Repair Permission)입니다. 디스크 권한 복구 기능은 위 운영체제 기본 유지보수 작업에 포함되지 않기 때문에 시스템에 문제가 있을 시 사용자가 수동으로 실행해 주어야 합니다.
하지만 여기서 중요한 것은 '시스템이 정상적으로 작동하지 않는 경우'에만 디스크 권한 복구가 효능을 발휘한다는 점입니다. 마치 백신 주사를 주기적으로 맞아 독감에 걸리는 걸 예방하는 것을 떠올려 디스크 권한 복구 기능에도 일종의 시스템 오류 발생을 예방하는 효과가 있다고 생각하신다면 경기도 오산입니다. 어제 권한 복구 작업을 했더라도, 오늘 바로 디스크 파일 권한이 꼬여 시스템에 문제가 발생할 수 있습니다. 디스크 권한 복구는 시스템에 문제가 생겼을 때 후속 조치 차원에서 시도할 수 있는 작업이지, 사전에 시스템에 문제가 생기는 것을 예방해 주지는 않습니다
하지만 시스템 권한에 문제 있을 경우 사용자가 단번에 인지할 수 있는 큰 문제가 발생하기도 하는 반면, 겉으로 잘 드러나지 않는 미미한 문제가 발생하기도 하는데 때때로 디스크 권한 복구 작업을 실행하면 이런 미묘한 문제가 교정되어 고질적인 문제가 해결되거나, 혹은 미묘한 성능 향상이 따라오기도합니다. 따라서 앞서 소개한 주기별 유지보수 기능과는 달리 2~4주에 한번꼴로 사용자가 직접 실행해 주시는 것도 좋습니다. 물론 이것도 혹시나 사용자가 발견하지 못한 경미한 오류를 '수리하기' 위함이며, 특별히 시스템 사용에 불편이 없으시다면 굳이 해주실 필요성은 없습니다.
참고로 디스크 권한 복구는 굳이 외부 프로그램을 사용하지 않더라도 OS X에 기본적으로 포함되어 있는 디스크 유틸리티나 터미널 명령어 등을 통해 실행할 수 있습니다.
터미널 명령어
sudo diskutil repairpermissions /
애매한 것을 정해주는 남자 패러디 - '디스크 권한 복구. 이거 참 애매합니다잉. 철수네 어머님은 권한 복구 잘 모르시는데도 여태껏 맥 쌩쌩 잘 사용하고 계십니다잉. 하지만 지금 딱 정하겠습니다잉. 2주나 한 달에 한 번씩 해주는 걸로 말입니다잉~ 디스크 권한 복구하는 날 여자 친구랑 데이트 잡히면 다음 날이나 다음 주에 해도 상관없습니다잉. 안 해준다고 하드가 날라가거나 맥이 바로 뻗고 그런거 아닙니다잉.'
정리
이쯤에서 이 글의 제목을 다시 한번 상기해 주셨으면 좋겠습니다.
'맥 유지 보수에 지나친 노력과 시간을 쏟아붓고 계시지는 않으십니까?'
맥도 때때로 사용자의 손길을 필요로 합니다. 하지만 반복적이고 지루한 유지보수 작업은 최소한의 시간만 할애하고, 가급적 맥에게 맡겨두십시오. 기본적인 유지보수 작업은 '맥이 다 알아서 해줍니다.' 그리고 외부 맥 관리 프로그램과 디스크 권한 복구 기능은 될 수 있으면 유지보수 용도가 아닌 시스템 문제 해결(트러블 슈팅) 용도로 사용하세요.
다음번에는 이번 글의 연장 선상에서 맥 사용 중 만나게 되는 각종 문제들을 유형별로 분류하고, 각각의 유형별로 시도해 볼 수 있는 해결 방법을 정리해 보도록 하겠습니다.