맥 유지보수에 지나친 노력과 시간을 쏟아붓고 계시지는 않으십니까?

2012. 10. 14. 07:49    작성자: ONE™

들어가며

맥 관련 사이트나 커뮤니티에 올라오는 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) 유지보수 작업: locatewhatis 데이터 베이스등 유닉스 파일 체계와 밀접한 관련이 있는 데이터 베이스를 최신 상태로 재구성(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주나 한 달에 한 번씩 해주는 걸로 말입니다잉~ 디스크 권한 복구하는 날 여자 친구랑 데이트 잡히면 다음 날이나 다음 주에 해도 상관없습니다잉. 안 해준다고 하드가 날라가거나 맥이 바로 뻗고 그런거 아닙니다잉.'

정리

이쯤에서 이 글의 제목을 다시 한번 상기해 주셨으면 좋겠습니다. 

'맥 유지 보수에 지나친 노력과 시간을 쏟아붓고 계시지는 않으십니까?'

맥도 때때로 사용자의 손길을 필요로 합니다. 하지만 반복적이고 지루한 유지보수 작업은 최소한의 시간만 할애하고, 가급적 맥에게 맡겨두십시오. 기본적인 유지보수 작업은 '맥이 다 알아서 해줍니다.'  그리고 외부 맥 관리 프로그램과 디스크 권한 복구 기능은 될 수 있으면 유지보수 용도가 아닌 시스템 문제 해결(트러블 슈팅) 용도로 사용하세요.

다음번에는 이번 글의 연장 선상에서 맥 사용 중 만나게 되는 각종 문제들을 유형별로 분류하고, 각각의 유형별로 시도해 볼 수 있는 해결 방법을 정리해 보도록 하겠습니다.   



  1. OS X 버전에 따라 작업 시간이 다소 상이할 수 있습니다. [본문으로]
  2. OS X 10.5 레오퍼드 및 이전 버전은 다음 유지보수 주기가 올 때까지 작업이 미뤄집니다. [본문으로]
    
  1. 이전 댓글 더보기
  2. Blog Icon
    구름

    ONE님 글 매번 잘보고 있습니다.
    개인적으로...시스템에 관계되는 프로그램은 가급적 사용하지 말자 주의입니다.
    편리함을 얻은 대가로 경을 치른 적이 종종 있었거던요.

    오늘도 잘보고 갑니다...

  3. 블로그에 글을 올릴 때 비슷한 문제로 자주 고민하고 있습니다.
    저도 개인적으로는 OS X을 기본 상태에서 기본 프로그램를 최대한 활용하는 편입니다만 실제로 OS X 사용을 편하게 해주는 시스템 관련 프로그램이나 터미널 명령어들도 곧잘 사용해보고 하는 편입니다. 다만 이게 남들에게 추천을 하게 될 때는 상당히 조심스러워지더군요. 시스템에 문제가 생길 소지도 있고, 읽으시는 분들의 맥 작업 흐름을 깨는 것 같기도 하고..
    글을 올릴 때 최대한 부가 설명도 덧붙이고, 장단점도 설명해 드리고 있지만 결국 최종적인 판단은 읽으시는 분들의 몫이라고 생각합니다 :-)

  4. Blog Icon
    로몬

    이런 포스트를 이렇게 볼수있음에 늘 감사하게 되는 고퀄리티!
    원님 좋은 한주 보내시길!!

  5. 로몬님도 환절기 감기 조심하시고 힘차게 한 주 시작하세요!

  6. Blog Icon
    댕글댕글파파

    sudo 이런 명령어는 유닉스 명령어인가 보네요.
    저런 터미널 명령어는 어떻게 알 수 있는지요.
    경기도 오산입니다. 여기에서 웃었네요 ㅎㅎ

  7. 전통적인 유닉스 명령어도 있고 애플이나 써드파티 개발자가 만든 바이너리를 OS X에 추가한 것도 있고, 홈브류등으로 추가로 받을 수 있는 것도 있고 종류가 정말 다양합니다.
    OS X에서 기본적으로 제공하는 것들은 터미널에서 Shift + ESC + ? 단축키를 누르시거나, Apple Dev Library 등에서 조회하실 수 있습니다.
    https://developer.apple.com/library/mac/navigation/

  8. Blog Icon
    rkay8496

    잘 읽었습니다.

  9. 댓글 친히 남겨주셔서 감사합니다.

  10. Blog Icon
    archiForum

    경기도 오산입니다 ㄷㄷㄷㄷㄷㄷㄷ

    좋은 글 감사해요 :-)

  11. 나름 나노 개그를 시전했는데 아키님이 처음 언급해 주셨네요 :-) 감사합니다.

  12. Blog Icon
    한대

    정말 좋은 정보 알아가네요.^^

  13. Blog Icon
    조으다바다

    한결같이 좋은 정보를 나누어주셔서 진심으로 감사합니다!^^

    조금 궁금한 부분이 있습니다.

    "만약 이 시간에 맥이 잠자기 모드에 있거나, 완전히 꺼저 있는 경우엔 잠자기에서 돌아온 직후나 다음 부팅 시간에 실시됩니다."

    잠자기 모드에서도 관리모드가 작동이 되지않는건가요? 새벽 3시15분이면 대체적으로 컴퓨터를 사용하지않을 시간이고 '잠자기'모드에

    자동으로 들어가지는것 아닌가요?

    제가 잘 이해를 못해서 이렇게 문의드립니다.^^;

  14. 말씀하신대로 그 시간대는 대부분 맥들이 잠을 자고 있는 시간이지요.

    하지만 맥이 잠자기에 들어갔다고 해서 야밤에 줄곳 잠자기 상태에 있는게 아니라 타임머신 백업 작업이나 Bonjour/DNSresponder 갱신 작업, 파워냅 기능 등이 개시될 때는 잠시 잠자기에서 깨어나 관련 작업을 마치고 다시 잠자기에 들어갑니다.

    이때 유지보수 관련 작업들이 동시에 이뤄질 수 있습니다. 즉 맥이 잠자기에 들어가면 (사용자가 마우스를 흔들거나, 키보드를 누를 때까지) 줄 곳 잠만자는 것은 아닙니다.

    하지만 이런 기능이 제공되지 않는 구 OS X이나 구형 맥의 경우는 천상 아침에 맥이 부팅됐을 때나 잠자기에서 깨어났을 때 유지보수 작업이 실시됩니다 :-)

  15. Blog Icon
    조으다바다

    감사합니다.

    꽤 오래도록 맥을 써왔는데도

    이 블로그에서 접하는 많은 부분이 새롭고 또 유익합니다.

    행복하세요.^^

  16. Blog Icon
    리즌

    좋은 글 감사히 잘 봤습니다... m(ㅡㅡ)m
    자주 찾아 오지는 못하지만 맥 관련 글을 보고 싶을때 항상 먼저 찾습니다~^^
    일교차가 큰데 건강 조심 하시구요.. 편안한 밤 되세요~!

  17. 네, 리즌님도 환절기 감기 조심하시구요, 종종 소식 전해 주세요.
    감사합니다.

  18. Blog Icon
    편한녀석

    제 바로가기 목록에 있는 유일한 블로그 입니다. 역시 감사합니다!

  19. 바로가기에 있는 유일한 블로그라... 최고의 격찬인 것 같습니다 :-)

  20. Blog Icon
    유호진

    윈도우 생각해서 그렇게 하는 분들이 많은 듯 합니다. 맥은 그냥 맥답게 사용하는 것도 참 좋은데 말이죠.

  21. Blog Icon
    감사

    감사합니다. 너무 많이 배우고 갑니다. 그런데 정말 궁금합니다. 이러한 내용들은 알려면 어느 정도 내공을 쌓아야 하는지요. 또 어떻게 공부를 해야 하는지요. 영업비밀인가요^^*

  22. Blog Icon
    1mm/day

    이게 과연 개인이 운영하는 블로그가 맞습니까?! 양과 질에서 High quality가 뭔지를 보여주네요. 맥북을 산지 이제1주일 째라 거의 Mac盲이라 할 수 있는데 어제 이런 블로그가 있다는 얘기를 듣고 왔더니 이건 뭐 개인 블로그가 아니라 애플에서 운영하는 웹사이트 같군요.
    저 역시 제 즐겨찾기에 저장해 놓은 유일한 블로그 입니다. ^^b

  23. Blog Icon
    살리아

    아,,, 맥의 부팅시간과 shutdown시간이 윈도우에비해서
    유난히 길고,, 또 편차가 들쑥날쑥한 이유가 이거였나보군요'ㅇ'

    저도 맥을 쓰면서 unix명령어를 알게모르게 익히고 있어서
    가끔 linux와 정말 혼동됩니다,,,ㅠㅠㅠ

  24. Blog Icon
    김성욱

    ㅎㅎ 저 들어라고 글 올리신듯.... ㅋ
    정말 많이 배우고 갑니다.
    감사*^_______^*

  25. Blog Icon
    doublehands

    이 블로그에서 이것저것 정말 많이 배우고 있는 맥북유저입니다. 매번 감사드려요^^

    그런데 저는 왜 이 작업이 자동으로 이루어지지 않을까요? ㅠㅠ
    저번 4월달에 ls -al /var/log/*.out 요걸 쳐봤더니 작년 날짜로 되어있더라고요.
    그래서 sudo periodic daily weekly monthly이거 수행해 주었는데

    오늘 확인해보니 daily weekly monthly 모두 저번 4월 그 날짜로 고정되어있네요..
    아마도 제 맥북은 이걸 자동으로 수행하지 않나봅니다.
    왜 그럴까요? ㅠㅠ

    제 맥북은 2011 early 모델이고 마운틴라이언입니다.

  26. Blog Icon
    이성일

    저도 2013 레이트 버전 13인치 맥프레 사용중인데 자동으로 안되네요 ㅜ.ㅜ 왜그런걸까요 ㅠㅠ??

  27. Blog Icon
    이성일

    제가 미국에있어서 오늘 채팅으로 애플텍크니션과 1:1 대화를 하다가 안되서 지니어스 바에 예약해주셨는데 방금 확인해보니까 자동으로 다시 하기 시작했네요.

    항상 병원가려고하면 아픈게 낫는다는... ㅎㅎ;;

  28. Blog Icon
    청염

    Mavericks로 업데이트 한 후,

    ls -al /var/log/*.out

    으로 보수 관련 log를 확인할 수 없습니다. 뭔가 바뀐건가요?

  29. Blog Icon

    비밀댓글입니다

  30. Blog Icon
    dddd

    와..정말 잘 보고갑니다. 좋은 글 읽혀주셔서 고맙습니다 ㅎ

  31. Blog Icon
    제시

    오 정말 감사합니다. 백신프로그램을 다운받아야하는 거 아닌가 했는데, 맥은 정말 멋지군요!! 감사합니다

  32. Blog Icon
    123

    감사합니다. 시간나면 한번 쭈우우욱 정독해야겠어요.