# 공유 데이터를 잃지 않고 Mac 앱 삭제하기

> 시스템 구성 요소는 벤더 삭제 도구를 쓰고, 소유권으로 잔여물을 식별하며, 프로필·프로젝트·그룹 컨테이너를 보존한다.

Published: 2026-06-19 | Updated: 2026-08-08

자체 완결형 앱을 휴지통으로 드래그하는 것만으로 충분한 제거가 되기도 합니다. 다른 앱은
헬퍼, 드라이버, 시스템 확장, 로그인 항목, 공유 컨테이너, 또는 큰
사용자 데이터베이스를 설치합니다. 목표는 벤더와 비슷한 파일 이름을 전부 지우는 것이
아닙니다. 다른 앱이 여전히 소유하는 문서나 공유 데이터를 지우지 않으면서 해당
소프트웨어를 완전히 빼내는 것입니다.

어디에 숨는지, 손으로 어떻게 지우는지, 그리고 추측 없이 한꺼번에
잡는 더 빠른 방법을 정리합니다.

## 휴지통으로 드래그하면 잔여 파일이 남는 이유

Mac 앱은 번들(`.app` 파일)이지만, 대부분의 앱은 처음 실행할 때 그 번들
바깥에도 데이터를 씁니다. 환경설정, 캐시, 지원 파일,
때로는 로그인 항목이나 백그라운드 에이전트입니다. `.app`을 지우면
프로그램은 사라지지만, Library 폴더 곳곳에 남긴 흔적은 사라지지 않습니다. 그 흔적이
사람들이 말하는 앱 잔여 파일, 즉 leftovers 또는 remnants입니다.

<figure class="blog-diagram">
  <img src="https://mole.fit/img/blog/app-uninstall-layers.webp" width="1360" height="454" loading="lazy" alt="Bundle ID가 앱 번들을 지원 데이터, 캐시, 환경설정, 컨테이너, launch agent에 연결한 뒤 검토와 제거로 이어집니다">
  <figcaption>완전한 제거는 번들 식별자를 따라 앱과 Library 상의 발자취를 추적한 뒤, 전체를 검토하고 나서 휴지통으로 옮깁니다.</figcaption>
</figure>

작은 앱이라면 남은 것은 해롭지 않은 환경설정 몇 개일 수 있습니다. 브라우저, 게임,
개발 도구, 미디어 앱은 사용자가 제어하는 데이터를 기가바이트 단위로 남길 수 있습니다. 크기만으로는
버릴 수 있는 캐시와 프로필, 프로젝트, 메시지, 플러그인, 또는
다운로드한 콘텐츠를 구분하지 못합니다.

## 시스템을 바꾸는 앱은 벤더 제거 도구를 먼저 사용하세요

VPN 클라이언트, 백신, 오디오 드라이버, 가상화 소프트웨어, 클라우드 동기화
클라이언트, 입력 장치 도구, 시스템 확장이 있는 앱은 내장 또는 벤더가 제공하는
제거 도구로 빼야 합니다. 그 절차는 확장을 비활성화하고,
특권 서비스를 내리고, 영수증을 Finder가 추론할 수 없는 순서로 지울 수 있습니다.
시작하기 전에 설정이나 로컬 데이터를 내보내고, 구독이나
장치 인증을 따로 해제해야 하는지도 확인하세요. Apple의
[제거 안내](https://support.apple.com/102610) 역시 전용 제거 도구가 있으면
그쪽을 우선하며, 앱을 지워도 구독은 취소되지 않고
그 앱으로 만든 문서도 남않는다고 적고 있습니다.

## 앱 잔여 파일이 숨는 곳

일반적인 사용자별 잔여 파일은 기본으로 숨겨진 사용자 Library 폴더 안에
있습니다. 시스템에 깊게 묶인 소프트웨어는 `/Library` 아래에도 항목을 둘 수 있어,
시스템 전체를 찾기보다 해당 제거 도구를 쓰는 이유이기도 합니다. Finder에서
Option을 누른 채 **이동** 메뉴를 열면 **라이브러리**가 나타납니다. 흔한 사용자 위치는
다음과 같습니다.

- `~/Library/Application Support/`: 앱의 주요 지원 데이터. 종종
  가장 큰 잔여입니다.
- `~/Library/Caches/`: 속도용으로 앱이 만든 캐시 파일.
- `~/Library/Preferences/`: 앱 설정(`.plist`) 파일.
- `~/Library/Containers/` 와 `~/Library/Group Containers/`: 샌드박스 앱 데이터.
- `~/Library/Logs/`: 앱 로그 파일.
- `~/Library/Saved Application State/`: 창과 세션 상태.
- `~/Library/LaunchAgents/`: 로그인 시 앱이나 그 서비스를 다시 띄우는
  백그라운드 헬퍼.

샌드박스 앱은 컨테이너에 데이터를 두고 그룹 컨테이너로 공유할 수 있습니다.
그 그룹 컨테이너를 쓰는 모든 앱과 확장을 확인하기 전에는
절대 지우지 마세요. 은퇴한 앱 하나 때문에 지우면 같은 개발자의
다른 앱 데이터까지 지울 수 있습니다.

## 번들 식별자로 찾기

잔여 파일은 눈으로 맞추기 어렵습니다. macOS는 앱의 **번들
식별자**, 즉 `com.spotify.client` 같은 reverse-DNS 문자열로 이름을 붙이고,
표시 이름으로 붙이지 않기 때문입니다. 먼저 식별자를 가져오세요.

```
osascript -e 'id of app "Spotify"'
mdls -name kMDItemCFBundleIdentifier -r /Applications/Spotify.app
```

그다음 식별자와 벤더 이름을 검색 단서로 쓰세요.

```
find ~/Library -maxdepth 4 \( -iname "*spotify*" -o -iname "*com.spotify*" \) -print 2>/dev/null
```

검색 결과는 후보이지 증명이 아닙니다. 각 경로의 내용, 소유 앱,
역할을 확인하세요. 환경설정은 `defaults`로 조회할 수 있지만, preference 도메인을
지우는 일은 선택 사항이며, 예전 설정으로 다시 설치할 수 없게 됩니다. 공간이
미미하거나 나중에 다시 설치할 가능성이 있으면 남겨 두세요.

## 손으로 지우는 방법

1. 고유한 데이터를 내보내고 최신 백업을 확인합니다.
2. 벤더의 제거 안내를 확인하고, 헬퍼, 확장, 드라이버, 라이선스 상태가 있는
   소프트웨어에는 그 절차를 사용합니다.
3. 앱과 보이는 헬퍼를 앱 자체 또는 활성 상태 모니터에서 종료합니다.
4. 단순한 `.app`을 휴지통으로 옮긴 뒤, Library에서 정확한 번들과 벤더 일치 항목을
   검토합니다. 캐시와 프로필, 프로젝트, 데이터베이스, 공유 컨테이너를 구분합니다.
5. 남은 벤더 로그인 항목은 **시스템 설정 > 일반 > 로그인
   항목 및 확장 프로그램**에서 끕니다. plist 파일 이름만으로 launchd 레이블을
   추측하지 마세요.
6. 벤더 확장이나 제거 도구가 요청할 때만 재시작합니다. 관련 앱,
   파일 형식, 장치, 동기화를 테스트한 뒤 휴지통을 비웁니다.

이 방법도 되지만, 느리고 실수하기 쉽습니다. 앱 이름과 개발자 이름이
폴더 이름과 항상 일치하지 않고, 샌드박스 데이터는 깊이 묻혀 있으며,
잘못된 파일을 지우거나 정작 중요한 항목을 놓치기 쉽습니다.

## 더 빠르고 안전한 방법

<figure class="blog-diagram">
  <img src="https://mole.fit/img/en/uninstall.webp" width="2584" height="1741" loading="lazy" alt="앱이 펼쳐져 번들과 ~/Library/Application Support 및 ~/Library/HTTPStorages의 잔여 항목이 각각 크기와 체크박스와 함께 보이고 하단에 제거 버튼이 있는 제거 검토 화면입니다">
  <figcaption>제거가 지울 모든 파일, 즉 앱과 Library 잔여를 크기와 체크박스와 함께 나열해 삭제 전에 확인합니다. Mole의 제거 검토 화면입니다.</figcaption>
</figure>

전용 제거 도구는 번들 식별자를 해석하고 관련 Library
일치 항목을 모을 수 있습니다. [Mole](https://mole.fit/)은 후보와 크기를 제거 전에 보여 주고, 경로를 검증하며,
일반 파일은 휴지통을 사용합니다. 검색 부담은 줄이지만 벤더
제거 도구를 대체하지는 않으며, 공유 컨테이너를 함부로 버릴 대상으로 만들지도 않습니다. 검토는
제거의 일부이며, 장식용 확인 화면이 아닙니다.

## 내부 원리: 안전한 제거 도구가 동작하는 방식

건너뛰어도 되지만, 여기서 순서와 검증이 왜 중요한지 보여 줍니다. CLI와 네이티브
앱은 구현이 다르지만, 둘 다 작업을 발견, 검토,
확인 후 실행으로 나눕니다. 아래 순서는 네이티브 앱 경로를 따릅니다.

<figure class="blog-diagram">
  <img src="https://mole.fit/img/blog/uninstall-safety-sequence.webp" width="1360" height="454" loading="lazy" alt="안전한 제거 도구가 앱 신원을 확인하고 잔여물을 찾으며 검토 계획을 제시하고 확인을 기다린 뒤, 앱과 헬퍼를 중지하고 모든 경로를 검증하며 승인된 작업을 언로드하고 허용된 항목을 휴지통으로 옮기며 건너뛰거나 제거된 결과를 기록합니다">
  <figcaption>발견 단계에서는 아무것도 삭제할 수 없습니다. 실행은 확인 후에만 시작되며, 모든 로그인 항목과 파일 경로는 다시 안전 검사를 거친 뒤에야 unload되거나 휴지통으로 옮겨집니다.</figcaption>
</figure>

번들 식별자는 reverse-DNS 형태일 때만 받아들여지며, 그 이후에야
번들 기반 매칭을 구동합니다. 잘못된 입력이 검색 패턴을 넓히지 못하게 하기 위함입니다.
스캐너는 파일 이름으로 추측하지 않고, 내장 로그인 항목 식별자를 해당 `Info.plist` 파일에서
읽습니다. 전체 계획을 승인한 뒤, 앱은
대상 앱을 종료하고 정확한 헬퍼를 멈춥니다. 로그인 항목은
`PathGuard`가 승인한 뒤에만 unload되고, `DeletionExecutor`는 휴지통 계층을
호출하기 전에 모든 URL을 다시 검증합니다. 없거나, 보호되었거나, 거부된 경로는
조용한 부분 삭제가 아니라 명시적인 건너뛰기가 됩니다.

## 안전한 제거 규칙

시스템에 묶인 소프트웨어에는 벤더 제거 도구를 사용하세요. 단순한 앱이라면
번들을 지운 뒤, 식별자와 데이터 유형으로 정확한 잔여를 검토하세요. 문서,
프로필, 데이터베이스, 그룹 컨테이너는 소유가 증명될 때까지 보존하세요. 관련 앱과
서비스를 확인하는 동안 삭제한 항목은 휴지통에 두고, Mac이 여전히
기대한 대로 동작한 뒤에만 비우세요.

---

Canonical HTML page: https://mole.fit/ko/blog/how-to-completely-uninstall-apps-on-mac
Blog index for agents: https://mole.fit/ko/blog/llms.txt
Site index for agents: https://mole.fit/llms.txt
