용어집/자주 보이는 프로세스

tccd

다른 이름: 개인정보 보호 권한

간단한 답

tccd는 개인정보 보호 권한을 관리하는 macOS 프로세스입니다. 어떤 앱이 카메라, 마이크, 화면 기록, 파일 및 폴더, 연락처, 전체 디스크 접근 권한, 손쉬운 사용을 쓸 수 있는지 정합니다. TCC는 Transparency, Consent and Control(투명성, 동의, 제어)의 약자로, “접근하려고 합니다”라는 모든 요청 뒤에 있는 시스템입니다.

앱이 보호된 무언가에 접근하려 할 때마다 macOS는 tccd에 허용되는지 묻습니다. tccd는 응답을 데이터베이스에 보관하고, 아직 응답이 없으면 권한 요청 창을 보여 줍니다. 시스템 설정 → 개인정보 보호 및 보안에서 켜고 끄는 것이 바로 tccd의 데이터베이스입니다.

인스턴스는 두 개입니다. 하나는 사용자 계정용, 하나는 시스템용입니다. 둘 다 평소에는 유휴 상태이며 거의 아무것도 쓰지 않습니다.

tccd가 CPU를 많이 쓰는 이유

어떤 앱이 권한을 계속 요청하고 있는 것입니다. 거부당했는데 계속 시도하거나, 업데이트되어 서명이 tccd가 승인한 것과 더 이상 일치하지 않는 경우가 많습니다. 화면 기록과 손쉬운 사용 권한이 흔합니다.

드물게는 마이그레이션이나 중단된 업데이트 후 권한 데이터베이스가 잘못된 상태가 되어 tccd가 계속 읽기에 실패하기도 합니다.

해결 방법

시스템 설정 → 개인정보 보호 및 보안을 열고 앱에 필요한 권한을 찾아 껐다가 다시 켜거나, 빼기 버튼으로 목록에서 앱을 제거한 뒤 앱이 다시 요청하게 하세요.

모든 앱에 대해 한 가지 권한을 재설정하려면 터미널에서 tccutil reset 명령 뒤에 서비스 이름을 붙여 실행합니다. 예: tccutil reset ScreenCapture. 앱은 다음에 그 권한이 필요할 때 다시 묻습니다.

어떤 앱이 tccd에 계속 요청하는지 보는 방법

tccd가 바쁠 때 알아야 할 것은 누가 무엇을 요청하느냐입니다. tccd 자체의 로그에 둘 다 나옵니다.

  1. 활성 상태 보기를 열고 보기 → 모든 프로세스를 선택한 다음 검색 필드에 tccd를 입력합니다. 사용자 열에는 시스템 인스턴스는 root로, 내 인스턴스는 사용자 이름으로 표시됩니다. 어느 쪽이 CPU를 쓰는지 확인합니다.
  2. 터미널을 열고 log stream --predicate 'process == "tccd" AND eventMessage CONTAINS "AUTHREQ"' 명령을 실행합니다. 멈추려면 Control-C를 누르세요.
  3. 반복되는 줄을 읽습니다. service=는 kTCCServiceScreenCapture 같은 권한 이름이고, identifier=는 com.example.app 같은 앱 이름입니다.
  4. 결과 줄의 authValue=를 봅니다. 0은 거부, 2는 허용입니다. 0을 계속 받는 앱이 바로 루프의 주인공입니다.
  5. 그 앱의 그 권한 하나만 재설정합니다. 서비스 이름에서 kTCCService 뒤의 부분이 tccutil 명령이 받는 값이므로, tccutil reset ScreenCapture com.example.app 명령은 그 앱의 응답만 지웁니다. tccutil reset All com.example.app 명령은 그 앱의 모든 권한을 지웁니다.
  6. 앱을 다시 열어 요청에 응답하거나, 시스템 설정 → 개인정보 보호 및 보안에서 권한을 허용하세요.

정상적인 tccd 사용량과 문제 상황

정상: 0 근처이며, 앱이 보호된 무언가를 요청할 때마다 살짝 올라갑니다. 앱은 자주 요청하지만 대부분의 응답은 데이터베이스에서 순식간에 나옵니다.

살펴볼 만한 경우: tccd가 몇 분씩 CPU 목록에 머물거나, 허용한 권한을 계속 다시 묻습니다. 흔한 원인은 다음과 같습니다.

  • 업데이트되거나 다시 서명된 앱. tccd가 더 이상 사용자가 승인한 그 앱으로 보지 않습니다.
  • 거부했는데도 요청을 멈추지 않는 앱.
  • 마이그레이션 중 제대로 옮겨지지 않은 권한 데이터베이스.

허용한 권한이 작동하지 않는 이유

일부 권한은 앱이 시작될 때만 적용됩니다. 화면 기록과 전체 디스크 접근 권한이 대표적입니다. 이를 켜면 macOS가 앱을 종료하고 다시 열지 묻습니다. 나중에를 선택하면 앱을 직접 종료할 때까지 접근 권한이 없는 것처럼 계속 실행됩니다.

스위치가 켜져 있는데 앱을 다시 시작한 뒤에도 기능을 쓸 수 없다면, 스위치를 끄고 빼기 버튼으로 목록에서 앱을 제거한 다음 다시 추가하세요. 그러면 tccd 데이터베이스의 오래된 기록이 지금의 앱과 일치하는 기록으로 바뀝니다.

자주 묻는 질문

Mac의 tccd, 무엇인가요?

카메라, 마이크, 화면 기록, 파일 접근 같은 개인정보 보호 권한을 관리하는 macOS 프로세스입니다. 권한 요청 창을 보여 주고 사용자의 응답을 기억합니다.

tccd의 CPU 사용량이 높은 이유는 무엇인가요?

대개 어떤 앱이 권한을 반복해서 요청하고 있으며, 업데이트로 서명이 바뀐 뒤인 경우가 많습니다. 개인정보 보호 및 보안에서 권한을 다시 허용하거나 tccutil로 재설정하면 루프가 멈춥니다.

tccutil로 개인정보 보호 권한을 재설정해도 괜찮나요?

네. 그 권한에 저장된 응답만 지우므로 앱이 다시 묻게 됩니다. 다른 것은 지우지 않지만, 그 권한이 필요한 앱은 다시 승인해야 합니다.

tccd를 끌 수 있나요?

아닙니다. macOS의 일부로 시스템 무결성 보호로 보호되며, tccd가 없으면 어떤 앱에도 카메라, 마이크, 파일에 대한 접근을 허용하거나 거부할 수 없습니다. 요청을 멈추려면 응답하거나 시스템 설정 → 개인정보 보호 및 보안에서 앱의 권한을 바꾸세요.

Mac의 TCC 데이터베이스는 어디에 있나요?

사용자 자신의 권한은 ~/Library/Application Support/com.apple.TCC/TCC.db에 있고, 시스템 전체의 권한은 /Library 아래의 같은 경로에 있습니다. macOS가 두 파일을 모두 보호하므로, 파일을 직접 편집하지 말고 시스템 설정이나 tccutil 명령으로 권한을 바꾸세요.

관련 항목

활성 상태 보기보다 나은 것을 찾고 있나요? Mac용 활성 상태 보기 대체 앱 추천을 확인하거나 용어집의 모든 용어를 둘러보세요.