Mac에서 Sogou, Baidu, WeChat 입력기 삭제하는 방법
저는 Sogou 입력기를 공식 패키지로 설치한 뒤 제거해 보았습니다. 첫 시도는 「앱이 실행 중」이라는 이유로 거부되었습니다. 설치 프로그램이 /Library/LaunchAgents에 넣은 LaunchAgent 두 개가 KeepAlive로 설정되어 있어서, SogouServices와 SogouTaskManager에 종료를 요청할 때마다 launchd가 다시 실행했기 때문입니다. 나중에 한 사용자도 Tencent의 Chatterfly 입력기에서 비슷한 거부를 겪었다고 알려 왔습니다. 「사용 중」이라서 삭제에 실패한 것입니다.
입력기는 일반 앱과 다릅니다. 전용 폴더에 들어 있고, macOS가 백그라운드에서 계속 실행해 두며, Sogou와 Baidu는 자체 헬퍼까지 함께 가져옵니다. 이 글은 Mac에서 Sogou, Baidu, WeChat 입력기(WeType)를 다룹니다. 각각 어디에 있는지, 무엇이 계속 실행되는지, 어떤 잔여물이 사용자 데이터인지, 그리고 키보드가 먹통이 되지 않는 순서입니다. iFlytek 입력기는 아직 테스트하지 않아서 여기서는 다루지 않습니다.
입력기가 있는 위치
입력기는 /Applications에 설치되지 않습니다. 입력기용 폴더는 두 곳으로, Mac의 모든 계정용인 /Library/Input Methods와 내 계정 전용인 ~/Library/Input Methods입니다. Sogou와 Baidu 공식 설치 프로그램은 둘 다 앱을 root 소유로 /Library/Input Methods에 넣으므로, 옮기려면 관리자 암호가 필요합니다. WeChat 입력기도 /Library/Input Methods/WeType.app으로 같은 곳에 있습니다.
입력기가 늘 실행 중인 것처럼 보이는 이유도 여기에 있습니다. macOS는 필요할 때 입력기를 시작하며, 시스템 설정에서 키보드 패널을 열기만 해도 설치된 입력기를 모두 불러옵니다. Sogou나 Baidu 프로세스가 실행 중이라고 해서 그 입력기로 타이핑했다는 뜻은 아닙니다.
먼저 입력 소스 목록에서 빼기
지금 타이핑에 쓰고 있는 입력 소스를 제거하면 잠깐 동안 아무것도 입력할 수 없게 될 수 있고, 메뉴 막대의 입력 메뉴는 메뉴가 다시 시작될 때까지 그 입력기를 계속 표시합니다. 파일을 건드리기 전에 목록에서 먼저 빼 두세요.
- 메뉴 막대의 입력 메뉴에서 ABC 같은 다른 입력 소스로 전환합니다.
- 시스템 설정 › 키보드 › 텍스트 입력 › 입력 소스 › 편집을 엽니다.
- 서드파티 입력기를 선택하고 제거(빼기 버튼)를 클릭합니다.
Apple은 Mac에서 입력 소스 설정 변경하기에서 이 패널을 설명합니다. 입력 소스를 목록에서 빼도 삭제되지는 않으며, 앱과 헬퍼, 데이터는 모두 Mac에 그대로 있습니다.
계속 실행되는 것
제가 살펴본 세 가지는 모두 프로세스를 두 개 이상 실행합니다.
- Sogou: 입력기 본체(
SogouInput)에 더해SogouServices와SogouTaskManager가 있으며,/Library/LaunchAgents의 에이전트 두 개인com.sogou.SogouServices와com.sogou.SogouTaskManager가 이 둘을 계속 살려 둡니다. 두 에이전트 모두 KeepAlive라서, 에이전트가 로드된 동안에는 프로세스를 종료해도 소용이 없습니다. - Baidu: 입력기(
BaiduIM), 앱 안에 있는enableInput을 실행하는/Library/LaunchAgents의 에이전트com.baidu.InputService, 그리고 앱 안에 있는baiduService를 시스템 도메인에서 실행하는/Library/LaunchDaemons의 데몬com.baidu.baiduService입니다. - WeChat 입력기: 입력기(
WeType)입니다.
순서가 중요합니다. 프로세스를 종료하기 전에 LaunchAgent를 제거하거나 언로드해야 하며, 그러지 않으면 곧바로 다시 실행됩니다. 파일을 직접 지운다면 휴지통에서 실행 중인 것이 남지 않도록 지운 뒤 한 번 재시작하세요.
각 입력기가 남기는 것
Sogou, 공식 6.25.1 설치 프로그램 기준:
| 항목 | 정체 | 처리 방법 |
|---|---|---|
/Library/Input Methods/SogouInput.app |
입력기 본체, 약 549MB | 제거, 관리자 암호 필요 |
/Library/LaunchAgents/com.sogou.SogouServices.plist와 com.sogou.SogouTaskManager.plist |
KeepAlive 에이전트 두 개 | 제거, 관리자 암호 필요 |
/Library/QuickLook/SogouSkinFileQuickLook.qlgenerator |
Sogou 스킨 파일용 훑어보기 미리보기 도구, 약 3MB | 제거, 관리자 암호 필요 |
~/Library/Application Support/Sogou/InputMethod |
Sogou 사용자 데이터, 제 테스트 Mac에서 485MB | 먼저 다른 곳에 복사한 뒤 결정 |
~/Library/Application Support/Sogou/ResHub와 SkinShop |
Sogou의 리소스 폴더와 스킨 폴더 | 제거 |
com.sogou.inputmethod.sogou, SogouServices, SogouHelper, com.sogou.SogouTaskManager 이름의 Caches, HTTPStorages, Preferences |
입력기와 헬퍼의 설정과 캐시 | 제거 |
~/.sogouinput |
제 테스트 Mac에서는 비어 있음 | 제거 |
~/Library/Application Support/Sogou 폴더 자체 |
다른 Sogou 제품과 함께 쓸 수 있는 상위 폴더 | 남김, 위의 하위 폴더만 제거 |
~/Library/Application Support/com.tencent.bugly |
다른 앱도 쓰는 충돌 보고 SDK | 남김 |
Baidu, 공식 5.7 설치 프로그램 기준:
| 항목 | 정체 | 처리 방법 |
|---|---|---|
/Library/Input Methods/BaiduIM.app |
입력기 본체, 68MB | 제거, 관리자 암호 필요 |
/Library/LaunchAgents/com.baidu.InputService.plist |
enableInput을 실행하는 에이전트 |
제거, 관리자 암호 필요 |
/Library/LaunchDaemons/com.baidu.baiduService.plist |
baiduService를 실행하는 시스템 데몬 |
제거, 관리자 암호 필요 |
~/Library/Application Support/BaiduInput |
사용자 사전 폴더, 제 테스트 Mac에서 2.9MB | 먼저 다른 곳에 복사한 뒤 결정 |
com.baidu.inputmethod.BaiduIM 이름의 Caches, HTTPStorages, Preferences |
설정과 캐시 | 제거 |
~/Library/sapi와 ~/Library/Application Support/Baidu |
입력기 소유라는 것을 확인하지 못함 | 무엇이 만든 것인지 알기 전에는 남김 |
com.baidu.BaiduNetdisk-mac이나 baidunetdisk 이름이 붙은 모든 항목 |
다른 제품인 Baidu Netdisk | 남김 |
WeChat 입력기는 제가 매일 쓰는 입력기라 제거하지 않았습니다. 이 Mac에서 Mole은 WeChat 입력기 항목을 17개 표시하고 그중 11개를 기본으로 선택합니다. 목록에 나오지 않는 파일은 ~/Library/Preferences/com.tencent.WeTypeSettings.plist 하나로, WeChat 입력기 설정 헬퍼의 파일입니다. WeChat 입력기를 제거한 뒤라면 이 파일도 지워도 됩니다.
여기서 남길 가치가 있는 것은 사전 폴더뿐입니다. 무엇이든 지우기 전에 BaiduInput이나 Sogou/InputMethod를 ~/Library 바깥 폴더로 복사하고, 나중에 다시 설치할 계획이라면 그 사본을 보관해 두세요.
남은 항목 확인하기
아래 명령은 읽기만 하며, 아무것도 바꾸지 않습니다.
ls "/Library/Input Methods" ~/Library/Input\ Methods 2>/dev/null
pgrep -il 'sogou|baiduim|baiduservice|enableinput|wetype'
ls /Library/LaunchAgents /Library/LaunchDaemons ~/Library/LaunchAgents | grep -iE 'sogou|com\.baidu\.(inputservice|baiduservice)'
ls -d ~/Library/Application\ Support/Sogou/* ~/Library/Application\ Support/BaiduInput ~/.sogouinput 2>/dev/null
첫 번째 명령은 아직 설치된 입력기를 나열합니다. 출력에 SogouInput.app, BaiduIM.app, WeType.app이 있으면 그 입력기가 아직 남아 있다는 뜻입니다. pgrep이 아무것도 출력하지 않으면 관련 프로세스가 하나도 실행되고 있지 않은 것입니다. 이미 제거한 번들의 줄이 나오면 휴지통에서 아직 실행 중인 것이며 다음 재시작 때 사라집니다. 종료한 뒤 몇 초 만에 다시 나타나는 프로세스는 LaunchAgent가 아직 로드되어 있다는 뜻입니다. 에이전트와 데몬이 사라지면 세 번째 명령은 아무것도 출력하지 않아야 합니다. 마지막 명령은 데이터 폴더를 나열하며, 출력되는 것은 아직 디스크에 있는 것이고, 백업한 뒤 남길지는 직접 판단하면 됩니다.
Mole은 이렇게 처리합니다
Mole은 Input Methods 폴더 두 곳을 모두 살펴보므로, 입력기도 다른 앱처럼 앱 목록에 나타납니다. macOS가 사용 여부와 상관없이 입력기를 계속 실행해 두기 때문에, 입력기에는 「지금 사용 중」 표시나 마지막 사용 날짜를 보여 주지 않습니다. 입력기를 고르면 Mole이 먼저 다른 입력 소스로 전환하라고 알려 줍니다.
입력기 본체, 그리고 실행 프로그램이 입력기 안에 있는 LaunchAgent와 데몬은 기본으로 선택됩니다. 실행 중인 입력기에 종료를 요청하기 전에 Mole은 선택된 실행 항목을 언로드해서 KeepAlive가 헬퍼를 다시 시작하지 못하게 합니다. 위에서 말한 Sogou 거부 사례에서 나온 수정입니다. root 소유 항목은 관리자 암호가 필요합니다. 사용자 데이터 폴더(BaiduInput, Sogou/InputMethod, ~/.sogouinput), Sogou의 리소스 폴더, 헬퍼 캐시, 훑어보기 미리보기 도구는 목록에 나오지만 선택되지 않습니다. Mole은 딱 그 하위 폴더만 입력기 것으로 보고, 상위 폴더 Sogou, ~/Library/sapi, 공유 Bugly 폴더는 건드리지 않습니다. 모든 항목은 휴지통으로 가므로 거기서 아직 되돌릴 수 있습니다.
입력기를 제거한 작업이 끝나면 Mole은 입력 메뉴를 다시 시작해 예전 항목이 사라지게 합니다. 이 변경 전에 Chatterfly를 제거했을 때는 입력 메뉴에 여전히 표시되어서 제거에 실패한 것처럼 보였습니다. 잔여물과 백그라운드 헬퍼의 차이는 Mac에서 제거한 앱이 계속 실행되나요?와 Mac 시작 프로그램과 로그인 항목 끄기를 참고하세요.
자주 묻는 질문
입력기를 그냥 휴지통으로 끌어다 놓으면 안 되나요?
관리자 암호를 입력하면 /Library/Input Methods에서 앱을 옮길 수는 있지만, LaunchAgent는 그대로 남고, 그 에이전트가 시작한 Sogou와 Baidu 헬퍼는 재시작할 때까지 계속 실행됩니다. 먼저 입력 소스 목록에서 빼고, 그다음 실행 항목, 마지막으로 앱을 제거하세요.
입력기를 지웠는데 입력 메뉴에 아직 보입니다. 제거에 실패한 건가요?
아마 아닐 겁니다. 입력 메뉴는 시작할 때 읽어 둔 목록을 계속 보여 줍니다. 로그아웃했다가 다시 로그인하세요. Mole의 최적화에도 같은 메뉴를 다시 시작하는 입력기 전환 복구 항목이 있습니다.
직접 등록한 단어가 사라지나요?
사전 폴더를 지울 때만 사라집니다. 먼저 ~/Library/Application Support/BaiduInput이나 ~/Library/Application Support/Sogou/InputMethod를 ~/Library 바깥 어딘가로 복사해 두세요. Mole은 이 폴더들을 선택하지 않은 채 목록에만 표시합니다.