# Mac의 LaunchAgents와 LaunchDaemons란 무엇이고 어떤 것을 지워도 되나요

> launchd 폴더에 든 것, 판단 전에 plist 읽는 법, 남은 작업을 안전하게 중지하고 제거하는 법, 건드리면 안 되는 폴더를 설명합니다.

Published: 2026-11-07 | Updated: 2026-11-09

LaunchAgents와 LaunchDaemons는 macOS의 `launchd`에게 백그라운드에서 무엇을 언제 시작할지 알려 주는 작은 `.plist` 파일을 모아 둔 폴더입니다. 에이전트는 로그인한 사용자 한 명을 위해 실행되며 화면에 무언가를 표시할 수 있고, 데몬은 사용자 인터페이스 없이 시스템 전체를 위해 실행됩니다. 이미 지운 앱의 서드파티 항목은 대개 제거해도 됩니다. `/System/Library`는 건드리지 말고, 파일을 옮기기 전에 먼저 작업을 중지하세요.

## 다섯 개의 폴더

Apple의 [launchd 안내서](https://support.apple.com/guide/terminal/apdc6c1077b-5d5d-4d35-9c19-60f2397b2369/mac)에는 다음 위치가 나와 있습니다.

| 폴더 | 들어 있는 것 | 건드려도 되는가 |
| --- | --- | --- |
| `~/Library/LaunchAgents` | 내 계정에만 적용되는 서드파티 에이전트 | 예, 신중하게 |
| `/Library/LaunchAgents` | 모든 사용자에게 적용되는 서드파티 에이전트 | 예, 관리자 암호가 필요합니다 |
| `/Library/LaunchDaemons` | 서드파티 시스템 데몬 | 예, 관리자 암호가 필요합니다 |
| `/System/Library/LaunchAgents` | Apple의 에이전트 | 아니요 |
| `/System/Library/LaunchDaemons` | Apple의 데몬 | 아니요 |

`man launchd` 페이지는 구분선을 이렇게 긋습니다. 데몬은 모든 클라이언트가 하나의 인스턴스를 쓰는 시스템 전체 서비스이며 사용자 인터페이스를 표시하지 않아야 합니다. 에이전트는 사용자별로 실행되며, 사용자와 상호작용하는 작업은 여기에 속합니다. 실제로 메뉴 막대 도우미나 업데이터는 에이전트인 경우가 많고, VPN 서비스, 오디오 드라이버 도우미, 백업 엔진은 데몬인 경우가 많습니다.

모든 백그라운드 항목이 여기에 파일을 두는 것은 아닙니다. 앱은 plist를 자신의 번들 안에 둘 수 있으므로 **시스템 설정 › 일반 › 로그인 항목 및 확장 프로그램**에는 이 폴더에 없는 항목이 나올 수 있습니다. 이 화면은 [Mac에서 앱이 시작 때 열리지 않게 하는 방법](https://mole.fit/ko/blog/how-to-disable-startup-programs-on-mac)에서 다룹니다.

## 판단하기 전에 읽어 보기

```bash
ls -la ~/Library/LaunchAgents /Library/LaunchAgents /Library/LaunchDaemons
plutil -p ~/Library/LaunchAgents/com.example.helper.plist
```

네 개의 키만 보아도 대부분의 사정을 알 수 있습니다.

| 키 | 의미 |
| --- | --- |
| `Label` | 작업의 이름이며 `launchctl`이 쓰는 값 |
| `Program` 또는 `ProgramArguments` | 실행하는 것. 확인해야 할 경로가 바로 이것 |
| `RunAtLoad` | 작업이 로드되자마자 시작됨, 보통 로그인이나 부팅 때 |
| `KeepAlive` | 멈추면 `launchd`가 다시 시작하므로 종료해도 오래 가지 않음 |

위의 `com.example.helper`는 자리 표시자이므로 본인 파일의 이름을 쓰세요. `ProgramArguments`가 이미 지운 앱을 가리킨다면 그 파일은 남은 찌꺼기이니 제거해도 안전합니다. 아직 쓰는 앱을 가리킨다면 제거했을 때 그 앱의 업데이트, 동기화, 라이선스, VPN, 오디오가 고장 날 수 있습니다.

## 제거하는 방법

먼저 작업을 중지하세요. 파일을 옮겨도 이미 실행 중인 작업은 멈추지 않으며, 로그아웃이나 재시동 전까지 로드된 상태로 남습니다.

내 계정의 에이전트는 다음과 같이 합니다.

```bash
launchctl bootout gui/$(id -u)/com.example.helper
mv ~/Library/LaunchAgents/com.example.helper.plist ~/.Trash/
```

`/Library/LaunchDaemons`의 데몬은 다음과 같이 합니다.

```bash
sudo launchctl bootout system/com.example.helper
sudo mv /Library/LaunchDaemons/com.example.helper.plist ~/.Trash/
```

`/Library/LaunchAgents`의 에이전트는 각 사용자의 세션에 로드되므로 `gui/$(id -u)/` 형식으로 중지하고 `sudo mv`로 파일을 옮기세요. 이 명령들에는 `Label` 값을 쓰며, 파일 이름과 다를 수 있습니다.

`launchctl print gui/$(id -u)/com.example.helper` 또는 `sudo launchctl print system/com.example.helper`로 사라졌는지 확인하면 서비스를 찾을 수 없다고 나와야 합니다. 그런 다음 하루 동안 앱을 사용해 보세요. 무언가 고장 났다면 파일을 되돌려 놓고 재시동하세요.

파일은 두고 작업이 로드되지 않게만 하려면 다음과 같이 합니다.

```bash
launchctl disable gui/$(id -u)/com.example.helper
launchctl print-disabled gui/$(id -u)
```

같은 대상으로 `launchctl enable`을 실행하면 되돌릴 수 있습니다.

## 하지 말아야 할 것

- `/System/Library/LaunchAgents`나 `/System/Library/LaunchDaemons`는 건드리지 마세요. 읽기 전용 시스템 볼륨에 있고 macOS에 속한 것입니다.
- 회사 이름만 보고 지우지 마세요. 보안 제품이나 장치 드라이버의 이름을 딴 파일은 그 제품이 계속 동작하는 방식일 수 있고, 관리되는 Mac에서는 회사 정책일 수도 있습니다.
- 아직 쓰는 앱의 plist를 제거하면서 업데이트 알림만 사라지기를 기대하지 마세요. 먼저 앱 자체의 설정을 확인하세요.
- `launchctl unload`라고 쓴 오래된 안내를 따르지 마세요. Apple의 매뉴얼은 이를 레거시 하위 명령으로 분류하며, 현재 형식은 `bootout`입니다.

## Mole은 어디에 쓰이나

[Mole](https://mole.fit/ko/)의 **앱** 탭에는 이 항목들을 나열하는 **시작** 세그먼트가 있습니다. 각 plist의 `Label`을 읽고 도우미를 소유한 앱의 이름으로 표시하며, **로그인 항목**과 **백그라운드 서비스** 같은 제목 아래로 묶고, 작업이 더는 존재하지 않는 것을 가리키면 **프로그램 없음**으로 표시하는데, 이는 남은 찌꺼기라는 흔한 신호입니다. `~/Library/LaunchAgents`, `/Library/LaunchAgents`, `/Library/LaunchDaemons`에서 확인된 launchd plist는 행의 스위치로 끄고 다시 켜거나 휴지통으로 옮길 수 있으며, Mole은 먼저 작업을 중지합니다. 보안 및 관리 제품은 잠겨 있고, 안전하게 바꿀 수 없는 항목은 대신 시스템 설정을 엽니다. **상태**에서 낯선 프로세스가 보일 때 **왜 실행 중인가요?**는 launchd 서비스와 그 plist를 알려 줍니다. Mole로 앱을 제거할 때도 그 앱의 실행 항목을 검토하도록 보여 줍니다.

## 자주 묻는 질문

### LaunchAgents의 파일을 지워도 안전한가요?

이미 지운 앱의 찌꺼기라면 예, 아직 쓰는 앱이라면 아닐 수 있습니다. 먼저 `plutil -p`로 `ProgramArguments`를 읽고, 파일을 휴지통으로 옮기기 전에 `launchctl bootout`으로 작업을 중지하면 되돌릴 수 있습니다.

### LaunchAgent와 LaunchDaemon은 어떻게 다른가요?

에이전트는 로그인한 사용자마다 실행되며 그 사용자와 상호작용할 수 있습니다. 데몬은 시스템 전체에서 하나의 인스턴스로 실행되고, 보통 누군가 로그인하기 전에 시작되며 사용자 인터페이스가 없습니다.

### 제거한 LaunchAgent가 다시 생긴 이유는 무엇인가요?

그것을 설치한 앱이 아직 Mac에 있고, 다음에 열리거나 업데이트될 때 다시 썼기 때문입니다. 파일만 지우면 오래 가지 않으니 앱에서 해당 기능을 끄거나 앱을 제거하세요.

### LaunchAgent가 악성코드일 수도 있나요?

그렇습니다. 끈질긴 애드웨어는 재시동 후에도 살아남기 때문에 이곳에 자주 설치됩니다. 낯선 `Label`이 숨김 폴더나 임시 경로의 무언가를 실행한다면 자세히 살펴볼 만하니, 정확한 경로를 검색하고 프로그램에 누가 서명했는지 확인하세요.

### 제거한 뒤 재시동해야 하나요?

`launchctl bootout`을 썼다면 필요 없습니다. 즉시 중지됩니다. 파일만 옮겼다면 작업은 로그아웃하거나 재시동할 때까지 로드된 채로 남습니다.

---

Canonical HTML page: https://mole.fit/ko/blog/launchagents-launchdaemons-mac
Blog index for agents: https://mole.fit/ko/blog/llms.txt
Site index for agents: https://mole.fit/llms.txt
