맥을 쓰다보면 OS를 종료한다는 것에 대해 무감각해지게 된다. 맥북이라면 그냥 덮어버리면 되고, 아이맥이라면 그냥 두면 알아서 잠드니 말이다. 사무실이나 집에서 쓰는 Windows 7은 맥과 함께 사용하면서도 늘 종료버튼 누르기를 잊지 않는데 말이다. 신기하기 그지 없다. 아무튼 그런 OSX이라는 운영체제를 쓰는 환경에선 사소하긴 하지만 몇가지 단점 아닌 단점이 존재할 수도 있는데 cache와 관련된 것이다. 돈(cash) 말고 데이터캐시.


트위봇(tweetbot)같은 앱은 쌓여가는 타임라인의 image와 같은 데이터를 계속 저장해둔다. 처음에는 얼마 안하던 데이터는 끄지 않고 쓰는 맥에서 며칠이 지나면 엄청난 용량을 소비하게 된다. 단위가 기가단위. 실제로 요 며칠 전 분명 맥으로 저장한 게 없는 데 희한하게도 계속 용량이 줄고 급기야 남은 용량이 40G -> 10G 미만으로 떨어지는 경험을 하게 됐다. 원인이 뭔지 몰라 분석툴을 이용해 확인해보니 tweetbot 혼자서 20기가 가까이 처드시고 계시더군. 물론 그런 경우에 트위봇의 설정에서 캐시를 삭제하는 게 있으니 그걸로 해결하면 되지만 매번 그러려니 귀찮다. 결국 뭔가 자동화 할 수 있는 방법이 있지 않을까?


맨 처음 찾은 것은 Automator. 분명 방법은 있는 듯 한데 찾지 못했다. 그 다음은 구글링으로 관련 앱을 찾기. 역시 해당 앱들이 있었으나 죄다 유료 인데다 한 가지 용도만으로는 담고 있는 기능이 많고 해서 비효율적인 듯. 더 검색해보니 애플스크립트가 남았다. AppleScript. ^^;


이쪽은 손도 안댔는데 무슨 스크립트? 그나마 background 가동에 대한 스크립트가 간단히 소개되고 있길래 바로 가져다 썼다.


delay 10

launch application "Tweetbot"

delay 7200

quit application "Tweetbot"


위 네 줄을 애플스크립트 편집기를 열어서 어플리케이션으로 저장하면 끝난다. 그리고 그 스크립트 파일을 실행하면 10초 후 트윗봇이 실행되고 2시간 후에는 종료. 타이밍을 줄여서 20초 뒤에 종료되도록 테스트 해보니 잘 된다. 그런데 재시작을 안하네? 그래서 다시 라인 추가.


repeat

delay 10

launch application "Tweetbot"

delay 7200

quit application "Tweetbot"

end repeat


그렇게 바꾸니 종료했다가 다시 시작. 캐시는 앱이 종료되고 재시작하면 자동으로 비우니 용량을 잡아먹으려는 간악한 시도는 차단. ^^;

그런데 한 가지 문제점이 있었다. 기능은 잘 되는데 하단 독에 스크립트 아이콘이 떡 버티고 있는 것. 한 번 실행되면 더 이상 건드리지 않을 앱 인데 화면 상 공간을 차지 한다는 게 용납이 안돼! 역시 애플스크립트로 해결할 수 있나 했더니 그럴 필요까지는 없었다.


먼저 해당 스크립트 파일을 우클릭 한 후 '패키지 내용 보기'를 누르면 파인더가 열린다. 그리고 'Contents' 폴더를 열어주면 info.plist가 나오는데 이걸 편집하면 된다. 대게 xcode를 이용하게 될 텐 데 열면 아래와 같은 화면이 나온다. 그리고 빨간 사각형의 라인 하나를 추가해주면 된다. 백그라운드로 돌리는 것에 대한 내용이다.



이렇게 하면 트윗봇은 2시간마다 재시작 하고 캐시는 자동 삭제되고 다시 쌓일 것이다. 2시간마다 되는 지는 '활성화 상태'에서 해당 앱의 CPU 사용 시간을 확인 해보면 된다. 


(사용 시간 11분임을 확인)


간간히 이런 작업 하는 거 재밌다. 삶의 활력소 같은 거라고나 할까? 



+ Recent posts